Lyft's Envoy: Experiences Operating a Large Service Mesh

Tuesday, March 14, 2017 - 11:55am12:50pm

Matt Klein, Lyft

Abstract: 

Over the past several years Lyft has migrated from a monolith to a sophisticated "service mesh" powered by Envoy, a new high performance open source proxy which aims to make the network transparent to applications. Envoy's out of process architecture allows it to be used alongside any language or runtime. At its core, Envoy is an L4 proxy with a pluggable filter chain model. It also includes a full HTTP stack with a parallel pluggable L7 filter chain. This programming model allows Envoy to be used for a variety of different scenarios including HTTP/2 gRPC proxying, MongoDB filtering and rate limiting, etc. Envoy provides advanced load balancing support including eventually consistent service discovery, circuit breakers, retries, zone aware load balancing, etc. Envoy also has best in class observability using both statistics, logging, and distributed tracing.

In this talk we will discuss why we developed Envoy, focusing primarily on the operational agility that the burgeoning “service mesh” SoA paradigm provides as well as discussing lessons learned along the way.

For more information on Envoy see: https://lyft.github.io/envoy/

Matt Klein, Lyft

Matt Klein is a software engineer at Lyft and the architect of Envoy. He has been working on operating systems, virtualization, distributed systems, networking, and in general making systems easy to operate for 15 years across a variety of companies. Some highlights include leading the development of Twitter's C++ L7 edge proxy and working on high performance computing and networking in Amazon's EC2.

Open Access Media

USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.

BibTeX
@conference {201831,
author = {Matt Klein},
title = {Lyft{\textquoteright}s Envoy: Experiences Operating a Large Service Mesh},
year = {2017},
address = {San Francisco, CA},
publisher = {{USENIX} Association},
month = mar,
}

Presentation Video

Download Video

Presentation Audio