What is required to operate microservices at scale? Beyond containers, schedulers, and frameworks, what is actually required to turn hundreds of services, tens of thousands of machines, and millions of requests per second into a unified, performant application? Oliver Gould explores the evolution of Twitter’s stack from monolith to highly distributed microservices and the surprising glue that held it all together: layer 5 in the OSI model, the oft-overlooked session layer.
Oliver offers an overview of Finagle, the high-scale RPC library developed at Twitter and adopted by Pinterest, SoundCloud, ING Bank, and other companies, tracing Finagle’s evolution from a simple library into something much more: a unified, global mechanism for operability and control over a highly disaggregated application architecture. Oliver explains how this mechanism provides Twitter with higher-level, service-based semantics around scalability, reliability, and fault tolerance and how the control over layer 5 afforded by Finagle allowed Twitter to solve some of the most surprising and difficult problems with its highly distributed architecture—when the software architecture diagram and the org chart intersected.
Oliver concludes by introducing linkerd, an open source proxy form of Finagle, which extends Finagle’s operational model to non-JVM or polyglot microservices, and demonstrates how linkerd can be used to “wrap” multiservice applications, independent of application language(s) or infrastructure, to obtain many of the benefits that Finagle provides for Twitter.