Consul vs Kong: What are the differences?
Developers describe Consul as "A tool for service discovery, monitoring and configuration". Consul is a tool for service discovery and configuration. Consul is distributed, highly available, and extremely scalable. On the other hand, Kong is detailed as "Open Source Microservice & API Management Layer". Kong is a scalable, open source API Layer (also known as an API Gateway, or API Middleware). Kong controls layer 4 and 7 traffic and is extended through Plugins, which provide extra functionality and services beyond the core platform.
Consul can be classified as a tool in the "Open Source Service Discovery" category, while Kong is grouped under "Microservices Tools".
Some of the features offered by Consul are:
- Service Discovery - Consul makes it simple for services to register themselves and to discover other services via a DNS or HTTP interface. External services such as SaaS providers can be registered as well.
- Health Checking - Health Checking enables Consul to quickly alert operators about any issues in a cluster. The integration with service discovery prevents routing traffic to unhealthy hosts and enables service level circuit breakers.
- Key/Value Storage - A flexible key/value store enables storing dynamic configuration, feature flagging, coordination, leader election and more. The simple HTTP API makes it easy to use anywhere.
On the other hand, Kong provides the following key features:
- Logging: Log requests and responses to your system over TCP, UDP or to disk
- OAuth2.0: Add easily an OAuth2.0 authentication to your APIs
- Monitoring: Live monitoring provides key load and performance server metrics
"Great service discovery infrastructure" is the top reason why over 49 developers like Consul, while over 28 developers mention "Easy to maintain" as the leading cause for choosing Kong.
Consul and Kong are both open source tools. It seems that Kong with 22.4K GitHub stars and 2.75K forks on GitHub has more adoption than Consul with 16.4K GitHub stars and 2.85K GitHub forks.
Slack, DigitalOcean, and Rainist are some of the popular companies that use Consul, whereas Kong is used by Checkr, Policygenius, and Cuemby. Consul has a broader approval, being mentioned in 134 company stacks & 55 developers stacks; compared to Kong, which is listed in 50 company stacks and 14 developer stacks.
Breaking a monolith into microservices and handling the scaling and health of new services as they come only. This should ideally help to reduce the overhead needed to get a service online. We have all of this being handled by custom URLs and health checks being done at the expense of infrastructure setup time and maintenance (VM sprawl). Initially, I am looking at Consul for the TLS proxy and security options as well as the KV store which may prove useful in cross datacenter environments.
Istio based on powerful Envoy whereas Kong based on Nginx. Istio is K8S native as well it's actively developed when k8s was successfully accepted with production-ready apps whereas Kong slowly migrated to start leveraging K8s. Istio has an inbuilt turn-keyIstio based on powerful Envoy whereas Kong based on Nginx. Istio is K8S native as well it's actively developed when k8s was successfully accepted with production-ready apps whereas Kong slowly migrated to start leveraging K8s. Istio has an inbuilt turn key solution with Rancher whereas Kong completely lacks here. Traffic distribution in Istio can be done via canary, a/b, shadowing, HTTP headers, ACL, whitelist whereas in Kong it's limited to canary, ACL, blue-green, proxy caching. Istio has amazing community support which is visible via Github stars or releases when comparing both.