Configuring a High Availability Environment
A high availability environment includes multiple Zoomdata nodes, each with its own set of microservices. This ensures that a microservice is available at all times, somewhere in the cluster.
Zoomdata 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 Zoomdata. These services provide key functionality in the application.
- Platform microservices - services that facilitate the operation and coordination between Zoomdata's core microservices.
- Management microservices - services that provide views and controls for administration and troubleshooting of Zoomdata's core microservices.
A data store is also needed to store Zoomdata's metadata, application configuration data, and application trace data.
The microservices and data store are depicted in the following diagram:
In a high availability Zoomdata environment, you can deploy multiple instances of Zoomdata 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 Zoomdata nodes. Microservice load balancing and failover occur automatically within the Zoomdata 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 Zoomdata 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 Zoomdata nodes behind it if the load balancer should fail.
To ensure there is no single point of failure, Zoomdata recommends that the Consul instance (
zoomdata-consul) and the metadata repository (
zoomdata-postgres) be configured as clusters external to the Zoomdata nodes. For information, see https://www.consul.io/docs/commands/join.html and https://www.postgresql.org/docs/9.5/high-availability.html.
Different numbers of different types of microservices can be defined for the Zoomdata nodes, although at least two of each must be installed. See Determining How Many Nodes to Deploy.
For additional information, see: