HashiDays Talks

Consul for Multi-Cloud

Kameshwara Rao Marthy

Lead Engineer-Cloud & DevOps at Thomson Reuters

Infrastructure in cloud environments is very dynamic as we periodically shut down specific areas and introduce new infrastructure on the fly. This becomes more complex to manage in the modern multi-cloud environment, as each tool needs to be aware of the multi-cloud. Keeping track of running services and infrastructure configurations causes further challenge. We also need an automated mechanism to alert and stop bad nodes from serving requests.

For example, when hosting a web application on cloud, we may be setting up a load balancer like HAProxy with a pool of front-end and back-end servers for load balancing and high availability. We need to scale servers up and down based on traffic load. Yet, when a new server comes up, the infrastructure does not automatically know it exists or which service it provides. We also need to remove entries of the servers which are no longer needed from HAProxy, so that traffic does not get directed to them.

Imagine this happening in real time with hundreds of servers in multi-cloud environments. The role of administrators to manually manage and control all of these moving parts suddenly becomes extremely complex.

This calls for a service discovery system where we can query newly introduced nodes and services, and also get notified when a node or service become unavailable. We also need a configuration management system to update and validate the configurations of the servers and the infrastructure in multi-cloud.

HashiCorp Consul is the tool which solves the above use case by providing easy service discovery and configuration management for IT infrastructures. Consul is distributed, highly available and data center aware. Consul runs as a lightweight agent in servers (an agent can be either a server or a client). Consul supports DNS query lookup in addition to providing system-level and service-level health checks-- which provides a fine-grained monitoring and control of nodes and services. As cloud infrastructure is scattered in various zones, we can create Consul data centers distributed across these zones. Consul supports multiple data centers, which enables aggregating different zones or multiple cloud providers, to supervise them together while also creating a highly available and responsive cloud infrastructure.