Envoy Proxy 101: What it is, and why it matters?
Envoy Proxy is a modern, high performance, small footprint edge and service proxy. Envoy is most comparable to software load balancers such as NGINX and HAProxy. Originally written and deployed at Lyft, Envoy now has a vibrant contributor base and is an official Cloud Native Computing Foundation project.
Background
As organizations have adopted microservices, a crucial component of deploying and managing microservices is a state-of-the-art L7 proxy. A L7 proxy provides observability, resilience, and routing in a way that’s transparent to your actual service.
Introduction to modern Network load balancing and proxying
Matt Klein - An excellent primer on load balancing in today's world, covering essential capabilites and why they're important
Lyft's Envoy: From Monolith to Service Mesh
Matt Klein - Watch Matt Klein cover Lyft's architectural migration from monolith to a fully distributed service mesh, the origins of Envoy, a high level architectural overview, and future directiosn.
API versioning and evolution with proxies
Cindy Sridharan - A L7 proxy is a powerful tool to help you iterate your APIs, while minimizing and user impact. This article discusses one such use case.
Using API Gateways to Facilitate Your transition from Monolith to Microservices
Daniel Bryant - An API Gateway is a proxy deployed at your edge, and is frequently used to faciliate a migration from monolith to microservices.
Tutorials on Using Envoy
Envoy has a highly sophisticated configuration system. For basic configuration, Envoy supports static configuration via YAML files. For more advanced configuration, Envoy has a set of gRPC-based APIs. These tutorials walk through the basics of configuring Envoy.
Getting started with Envoy Proxy for microservices resilience
A basic introduction to using the Envoy Proxy and configuring it.
Deploying Envoy with a Python Flask webapp and Kubernetes
Deploy a real application using Kubernetes, Postgres, Flask, and Envoy
Deploying Envoy as an API Gateway for Microservices
Learn how you can deploy Envoy as an edge service in Kubernetes
Service Mesh
A service mesh is a transparent layer that adds resilience, observability, and security to your service-to-service communication. Example service meshes include Istio and Linkerd. Istio is closely associated with Envoy because Istio relies on Envoy to do the actual Layer 7 traffic management. Istio itself is a control plane for a fleet of Envoy Proxies that are deployed next to your microservices.
What is a service mesh and do I need one when developing microservices?
Daniel Bryant - this talk from MicroXchg covers what service meshes are, why they're well-suited for microservice deployments, and how to use a service mesh when you're deploying microservices
Service mesh data plane vs. control plane
Matt Klein - As the idea of the "service mesh" has become increasingly popular over the last two years and as the number of entrants into the space has swelled
The Mechanics of Deploying Envoy at Lyft
Matt Klein - This talk covers the logistical details of how Envoy was developed and deployed icnrementally at Lyft, focusing primarily on the evolution of service mesh configuration management.
Additional Links
Ambassador API Gateway
Ambassador is an open source, Kubernetes-native API Gateway built on the Envoy Proxy.
Envoy Proxy GitHub
The official Envoy GitHub repository. Envoy APIs are defined in the data-plane-api repository; while the code is in the envoy repository.