The sections below list certain best practices and key terminologies that may be needed for optimal use of the Fiorano platform. The first in the list is the Fiorano Architecture to help the administrator familiarize the Fiorano platform, as a better understanding of the platform architecture will help the administrator plan better and achieve an optimal deployment of the same. Rest in the sections consist of various runtime aspects of the platform and optimizing the message flows and resource utilization. Finally, the most important practice that needs to be kept in mind, that is, disaster recovery. Since disasters are not planned, the disaster recovery section lists certain features of the product that may be kept active at all times to help recover from nearly all types of failures.

Icon

Best Practices may not be fixed for everyone, it depends from environment to environment and also as per the need of the client

Icon

 At any point of time, if you feel that you are not able to understand any part of this document clearly, please contact Fiorano Support at support@fiorano.com

Deployment

Deployment Architecture

Fiorano Architecture comprises of Fiorano Enterprise Server, Peer Service Containers installed across the network together with the centralized Management and Repository Server as well as Management tools. A typical Fioranom Deployment Architecture looks as in the figure below. Click the figure to know more.

The FES is the central controller of the Fiorano Network, acting as a monitoring agent for all the other Peers while ensuring information coherence. The FES is primarily a JMS Server (FioranoMQ Messaging Server) wrapped with additional role specific functionalities. The FES communicates with the FPS using the underlying JMS server and expose well defined JMX and Java API to communicate with the tools. Click the below image to read more.

 

Cloud

While using cloud environment to run Fiorano, you may require to make some changes to setup different modules in Fiorano. Refer the Cloud Setup section to go through the various changes required. 

Document Tracking

It is recommended to use an external database for Document Tracking; refer the  Document Tracking section to utilize the database availability options.


Memory Management

Optimize Memory

Although Fiorano ESB architecture scales very well in a distributed environment, adopt the strategies mentioned in the Optimizing Memory section to manage memory more effectively.

Tune Component Memory

To achieve stable, high throughput, and highly optimized memory usage of the Fiorano Environment, it is very important to tune the heap memory allocated to each service component and the Fiorano servers. Refer Tuning Component Memory section.

Also refer Component Configuration to restrict or expand memory used by a component based on the requirement by appending appropriate Maximum Heap Size (-Xms) and Initial Heap Size (-Xmx) values as JVM parameters. This section also covers the below sections:

  • Using same JVM settings in Multiple Microservice Instances
  • Using same JVM settings in Multiple Environments
  • Change Default JVM Configurations for Separate Process Components

Manage Peer Server Memory

To avoid a class of serious problems that could occur because of improper configurations of the Virtual Machine (VM) on which the Server is running memory, tuning and management need to be done at the server. Problems of this nature are very hard to reproduce and can create a lot of confusion with regards to the server behavior. Refer the Managing Peer Server Memory section to manage peer server memory.

Icon

Do refer the Recommendations section for recommended JVM parameters in the Managing Peer Server Memory page.

Use In-Memory Launch Mode

Use In Memory execution mode for components with less memory footprint such as XSLT and CBR. Server JVM will be used while using components in this mode. Refer the Using 'In Memory' Launch Mode section to understand how to use this mode.

Deleting Document Tracking (SBW documents) data

To create some disk space, you may schedule a deletion task for the old SBW documents that are tracked; refer How to schedule Deletion of SBW Documents section. This helps in avoiding issues like Low Disk Space error.

 events are temporarily stored in persistent database that are created during runtime data of the Enterprise Server. After an event has been processed, it gets deleted from the temporary store. If these events are not able to be processed, the temporary datastore may grow to occupy a large amount of disk-space. To delete the data present in various profiles of Enterprise Server, clear Clearing ESB Server Database

 

Environment Management

Use Named Configuration

Configuration set for a particular service instance can be stored by a name to reuse the configuration in other service instances in future. Using named configuration support, configurations can be predefined and the name of the predefined configuration can be linked/transferred to all Service Instances. Though the actual configuration has only one location, as it is referred to by multiple Service Instances, making changes to the named configuration will affect all Service Instances automatically. So, to advance the process of Event Process Orchestration and Change Management within the Fiorano Event Processes, refer the Named configurations section.

Automate Migration process

When migrating from one environment to other, it is better to use CLI tools to automate the process. Refer Work with Command Line Interface (CLI)

Change Resources based on Environment property

To make changes to resource URLs (like URL in HTTPAdapters) based on environment in such scenarios, the environment value is provided as a JMS property in the message. It can be used in scripts/if-then-else funclets to adapt to the URL based on the environment. Refer Change Resources based on Environment property section to check how to do this.

 

Development

Event Process

Use Service Launch Order

To launch and/or stop microservices, present in an event process, in a predefined order use Service Launch Order.

Load Balancing

Used Load Balancing to distribute the messages to multiple business services for processing. To enable service-level load balancing on a service, run multiple instances of the service on the different ESB Peers and routes incoming data to the multiple running instances via a Distribution Service. Refer the Load Balancing section where an example is mentioned.

Scaling

It is critical to ensure that the platform scales both with current projects (likely in themselves to be highly distributed, probably across company boundaries) and with future growth. To address scalability issues refer the Scaling section


Components

Changing Business Logic

Customize Business logic of new components by modifying the logic. Refer the Modifying Business Logic section.

Samples

Fiorano provides an extensive set of samples which provide best practices to affect certain changes to the components generated using Fiorano SDK, like providing multiple ports, generating user defined CPS. Each of the samples are accompanied by a readme.txt which lists out the steps to make changes.

 

Security

Web Service Security

It is critical that web services which are exposed in Fiorano are secured properly. Security can be different for different types of web services and can be enforced at different levels.

Jetty Security

All SOAP and REST based web services in Fiorano are hosted in a Jetty Server. Jetty Server provides the baseline security for the web applications hosted.  Refer Manage Jetty Security section to understand the best practices with respect securing Web Services hosted on Jetty.

SOAP Web Services

SOAP web services are hosted using the WSStub component. It is a good practice to secure these web services using WS Security standards. Refer Web Service Security example and components documentation 

REST Services

In case of REST services, API keys can be used to restrict access to certain users. Configuration and usage of API keys are explained in Additional configuration section in RESTStub.

Application Security

Always define user permissions on Applications to control unauthorized access to sensitive information. To perform this, refer the Access Control List (ACL) based security section.

Improve the security of messages that flow between components through an active flow by adding Port or Route Encryption to the messages. Refer the Message Encryption section.

Server Security

Establish secure communication between Enterprise server and Peer server by configuring the protocol parameters in the server profiles; refer the Enable Server Level Security section.

 

Monitoring

Monitor using Event Process

Handle Errors using Exception Listener microservice

Utilize the capability of ExceptionListener component which acts as a global exception listener subscribing to exception messages occurring in any service component of any running event process. The Perform Error Handling section gives a brief description of its working.

Publish report in Windows Event Viewer

Windows users can enable to write Fiorano logs to Windows Event Viewer for convenience. Refer the Write Fiorano Logs to Windows Event Viewer section.


Monitor using Callouts

For more fine-grained monitoring of events happening in a flow, it is possible to define callouts at the port level. Refer the Configure SBW Callout section.

Document Tracking

The entire activities of microservices can be tracked using the Dashboard by enabling Document Tracking option.

Refer to the Document Tracking page to know how to

  • enable Document Tracking in a Workflow of an Event Process
  • create SBW Tables Manually (if the servers lack permissions to create SBW tables)

Refer Document Tracking in Dashboard to track them in the Dashboard.


System Management

Linux Level Configuration

Refer the Manage Linux System-level Configuration section.

Clone VM

For Virtual Machine (VM) users, use cloning to make copies of a virtual machine from an already configured machine; these copies reflect the entire file system (with the installation files etc), configuration and settings of the VM from which it is copied.  Refer the Clone a Virtual Machine section.

 

Disaster Recovery

Re-inject Failed Documents

In case a component fails to process a message, doc tracking helps to re-inject this message into the system to make sure we do not lose content that needed processing; refer the Re-injecting Failed Documents section to perform this.

High Availability

The importance of 24X7 service availability and the growing importance of conducting real-time business are driving the demand for High Availability Enterprise Systems. The goal is to maximize system availability and eliminate any single point of failure. The High Availability section discusses the High Availability (HA) features provided by the Fiorano Platform.


Adaptavist ThemeBuilder EngineAtlassian Confluence