Need advice about which tool to choose?Ask the StackShare community!

Consul

1.1K
1.5K
+ 1
212
Envoy

292
537
+ 1
9
Add tool

Consul vs Envoy: What are the differences?

Introduction

Consul and Envoy are two popular tools used in modern software architectures to manage service discovery, load balancing, and network infrastructure. While both serve similar purposes, they have key differences that set them apart from each other.

  1. Service Mesh vs Service Discovery: Consul primarily focuses on providing service discovery and health checking capabilities. It acts as a central registry for services in a distributed system, allowing services to locate and communicate with each other. In contrast, Envoy is built with a broader service mesh architecture in mind. Along with service discovery, Envoy also offers additional features like load balancing, traffic management, and observability.

  2. Protocol Support: Consul offers support for multiple service discovery mechanisms, including DNS, HTTP JSON APIs, and built-in native support for gRPC and Envoy proxy. It can be seamlessly integrated into various application protocols. On the other hand, Envoy is primarily designed as a high-performance L7 proxy and supports a wide range of protocols such as HTTP/2, gRPC, WebSocket, and MongoDB. It provides advanced features like protocol-aware routing and filtering.

  3. Multitenancy and Platform Agnosticism: Consul is a standalone service discovery system that can be used in any infrastructure environment. It provides multi-tenancy support, allowing different organizations or teams to use separate namespaces within the same Consul cluster. Envoy, on the other hand, is often deployed as a sidecar proxy alongside each service instance within a service mesh architecture. This allows for more fine-grained control and observability of the traffic between services.

  4. Configuration and Management: Consul offers a simple configuration model where users can define services, health checks, and associated metadata using a declarative configuration file. It provides a web UI and a powerful CLI for configuration management and monitoring. Envoy, on the other hand, supports a dynamic configuration model using an API server. It can be dynamically updated and controlled in real-time, allowing for granular control over routing and configuration without needing a restart.

  5. Community and Ecosystem: Consul is developed by HashiCorp, a company known for its popular infrastructure toolset. It has a strong community support and a wide range of integrations with other HashiCorp products like Terraform. Envoy, on the other hand, was originally developed by Lyft but is now part of the Cloud Native Computing Foundation (CNCF). It has gained significant traction and has a growing ecosystem with support from various companies and organizations.

  6. Observability and Security: Consul provides health checking and monitoring capabilities out-of-the-box, allowing users to check the availability and responsiveness of services. It also supports secure communication between services using TLS encryption. Envoy, on the other hand, provides more advanced observability features like distributed tracing and metrics collection. It integrates with popular observability tools like Prometheus and Jaeger. Envoy also offers advanced security features like mutual TLS authentication and rate limiting.

In summary, Consul primarily focuses on service discovery while Envoy provides a more comprehensive service mesh architecture with additional features like load balancing, traffic management, and observability. Consul is platform agnostic and supports multiple service discovery mechanisms, while Envoy is often deployed as a sidecar proxy and offers more fine-grained control over traffic. Consul has a simpler configuration model and is developed by HashiCorp, while Envoy has a more dynamic configuration model and is part of the CNCF ecosystem. Consul provides basic observability and security features, while Envoy offers more advanced observability and security capabilities.

Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Consul
Pros of Envoy
  • 61
    Great service discovery infrastructure
  • 35
    Health checking
  • 29
    Distributed key-value store
  • 26
    Monitoring
  • 23
    High-availability
  • 12
    Web-UI
  • 10
    Token-based acls
  • 6
    Gossip clustering
  • 5
    Dns server
  • 4
    Not Java
  • 1
    Docker integration
  • 9
    GRPC-Web

Sign up to add or upvote prosMake informed product decisions

What is Consul?

Consul is a tool for service discovery and configuration. Consul is distributed, highly available, and extremely scalable.

What is Envoy?

Originally built at Lyft, Envoy is a high performance C++ distributed proxy designed for single services and applications, as well as a communication bus and “universal data plane” designed for large microservice “service mesh” architectures.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Consul?
What companies use Envoy?
See which teams inside your own company are using Consul or Envoy.
Sign up for StackShare EnterpriseLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Consul?
What tools integrate with Envoy?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

May 6 2020 at 6:34AM

Pinterest

JavaScriptC++Varnish+6
5
3366
What are some alternatives to Consul and Envoy?
etcd
etcd is a distributed key value store that provides a reliable way to store data across a cluster of machines. It’s open-source and available on GitHub. etcd gracefully handles master elections during network partitions and will tolerate machine failure, including the master.
Zookeeper
A centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. All of these kinds of services are used in some form or another by distributed applications.
SkyDNS
SkyDNS is a distributed service for announcement and discovery of services. It leverages Raft for high-availability and consensus, and utilizes DNS queries to discover available services. This is done by leveraging SRV records in DNS, with special meaning given to subdomains, priorities and weights (more info here: http://blog.gopheracademy.com/skydns).
Ambassador
Map services to arbitrary URLs in a single, declarative YAML file. Configure routes with CORS support, circuit breakers, timeouts, and more. Replace your Kubernetes ingress controller. Route gRPC, WebSockets, or HTTP.
Kubernetes
Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the users declared intentions.
See all alternatives