2022-03-29 · 1 min read
- Consul is a service mesh.
- Service Discovery: services can register themselves with Consul, like
mysql. Other services can discover providers by querying Consul.
- Health Checking: Consul clients can provide simple health checks like HTTP 200 OK or platform metrics like memory or CPU utilization below 90%. These health checks can then be used by the service discovery and service routing to route around unhealthy nodes.
- KV Store: Consul provides a centralized KV store, which can be used for dynamic configuration, feature flags, coordination, leader election, etc...
- Secure Service Communication: Consul can generate and distribute TLS certs to each service to establish mTLS connections with other cluster services. Services can be segmented dynamically to allow only specific services to communicate.
- Multi Datacenter: Consul supports multiple regions / data centers.
- Distributed, highly available system.
- Maintains centralized Registry of services in cluster.
- Maintains centralized KV Store.
- Each service has a sidecar which transparently proxies all inbound and outbound requests.
- Configures each service with TLS certificates from our cluster CA. Services connect to each other through sidecar proxies, which do mTLS to guarantee authentication and integrity within the cluster.
- Maintain service dependency graph.