Service discovery and configuration with Consul
A typical architecture consists of many clients communicating to many servers. Whether it is Internet users going to multiple public web servers through a hardware load balancer, or internal systems talking to other internal systems via haproxy, the "many to many" service load balancing model is everywhere. How do you manage the membership and health of services at scale? Are you tired of submitting tickets to update the membership of a service pool in a load balancer? Does a central configuration management tool seem monolithic and still subject to manual effort? There is a better way. This talk will discuss Consul as an alternative method for publishing and using service membership, health, and metadata. We will also briefly review competing tools such as etcd, Serf, SkyDNS, etc.
Consul is a tool for discovering and configuring services in your infrastructure. It has several main features:
- Service discovery (via HTTP, DNS, or dynamic configuration)
- Health checking
- Key/value store
- Multi-datacenter awareness
- Distributed and highly available (masterless)
Each of these features will be explained in detail along with practical use cases. Consul's abstraction of services will also be emphasized as the primary reason it is preferable to alternative solutions.