Configure a Symphony Distributed Environment
This applies to: Visual Data Discovery
The Symphony platform is architected as a set of loosely coupled Java microservices. They can be subdivided into the following categories when considering application availability:
- Core microservices - application components of Symphony. These services provide key functionality in the application.
- Platform microservices - services that facilitate the operation and coordination between Symphony's core microservices.
- Management microservices - services that provide views and controls for administration and troubleshooting of Symphony's core microservices.
The communication protocols used by the microservices include WebSockets (for realtime bidirectional communication) and HTTP/HTTPS.
A metadata store is also needed to store Symphony's metadata, application configuration data, and application trace data. Symphony centralizes its metadata store in a relational database and includes an internal messaging queue.
The microservices and metadata store are depicted in the following diagram:
You have two options for setting up a distributed Symphony environment:
-
Load balancing: Load balancing helps you scale Symphony for hundreds of users. You can use load balancing both on-premises and with cloud deployments. A single set of microservices communicate with each other in a monolithic flow.
For more information, see Configure the Symphony Server Behind a Load Balancer.
-
High Availability: A high availability environment includes multiple Symphony nodes, each with its own set of microservices. This ensures that a microservice is available at all times, somewhere in the cluster. Each microservice communicates with others using service discovery.
Different numbers of different types of microservices can be defined for the Symphony nodes, although at least two of each must be installed.
A high-availability load balancer is required to distribute the network traffic across your user-facing Symphony nodes. If only a single load balancer is deployed in a high availability environment, you will not be able to access any of the Symphony nodes behind it if the load balancer should fail. Microservice load balancing and failover occur automatically within the Symphony nodes themselves.
Both load balancing and high availability require a centralized metadata store and a multi-node license. In a high availability environment, the metadata store can be clustered.
The configuration of load balancing and high availability are similar, but the high availability configuration is more complex in regards to its Consul configuration. To configure either, select one of the links above.
Comments
0 comments
Please sign in to leave a comment.