Configure a High Availability Environment
A high availability environment includes multiple Composer nodes, each with its own set of microservices. This ensures that a microservice is available at all times, somewhere in the cluster.
Composer is made up of a set of microservices that can be subdivided into the following categories when considering application availability:
- Core microservices - application components of Composer. These services provide key functionality in the application.
- Platform microservices - services that facilitate the operation and coordination between Composer's core microservices.
- Management microservices - services that provide views and controls for administration and troubleshooting of Composer's core microservices.
A data store is also needed to store Composer's metadata, application configuration data, and application trace data.
The microservices and data store are depicted in the following diagram:
In a high availability Composer environment, you can deploy multiple instances of Composer to ensure that at least one instance of its microservices operates continuously. A load balancer is required to distribute the network traffic across your user-facing Composer nodes. Microservice load balancing and failover occur automatically within the Composer nodes themselves. In addition, you can monitor all microservices and collect diagnostic trace information for them using the Service Monitor in conjunction with the Tracing microservice.
You can maintain properties for microservices of a given type in a single location in the Service Monitor. For example, if you have two query engine microservices running in your high availability environment, you can change the properties for both microservices in a single location, ensuring that the query engine microservices operate in the same manner across the product nodes.
The following diagram depicts a high availability Composer environment.
A high availability load balancer is required. If only a single load balancer is deployed, you will not be able to access any of the Composer nodes behind it if the load balancer should fail.
At least one configuration server (
config-server) and one Service Monitor (
admin-server) must be installed and started in the HA environment.
To ensure there is no single point of failure, Composer recommends that the Consul instance (
zoomdata-consul) and the PostgreSQL metadata repository be configured as clusters external to the Composer nodes. For information, see https://www.consul.io/docs/commands/join.html (
zoomdata-consul join <ip-address>) and https://www.postgresql.org/docs/12/high-availability.html.
Different numbers of different types of microservices can be defined for the Composer nodes, although at least two of each must be installed. See Determining How Many Nodes to Deploy.
Intra-service communication must be enabled by making any necessary networking (ports) and firewall changes.
For additional information, see: