Envoy, Kubernetes, Docker
In the first post in this series, Getting Started with Lyft Envoy for microservice resilience, we explored Envoy a bit, dug into how it worked and deployed an application using Kubernetes, Postgres, Flask, and Envoy.
The Application
In this tutorial, we will deploy a straightforward REST-based user service: it can create users, read information about a user, and process simple logins. Obviously, this isn’t terribly interesting by itself, but it brings several real-world concerns together:
December 15, 2017 | 17 min read
Edge Stack API Gateway
An API Gateway is a façade that sits between the consumers and producers of an API. Cross-cutting functionality such as authentication, monitoring, and traffic management is implemented in your API Gateway so that your services can remain unaware of these details. In addition, when multiple services are responsible for different APIs (e.g., in a microservices architecture), an API Gateway hides this abstraction detail from the consumer.
There are dozens of different options for API Gateways, depending on your requirements. The Amazon API Gateway is a hosted Gateway that runs in Amazon. You could build your own on top of a Layer 7 proxy such as Traefik, NGINX, HAProxy, or Envoy. These all have their various strengths and weaknesses.
In general, though, you want to pick an API gateway that can accelerate your development workflow. Traditional API gateways focus on the challenges of API management, so using an Kubernetes API gateway that enables rapid development of services is essential.
November 8, 2017 | 8 min read
Envoy, Microservices
Using microservices to solve real-world problems always involves more than simply writing the code. You need to test your services. You need to figure out how to do continuous deployment. You need to work out clean, elegant, resilient ways for them to talk to each other.
A really interesting tool that can help with the “talk to each other” bit is the Envoy Proxy from Lyft.
Envoy Proxy Overview
October 17, 2017 | 14 min read
Shared Development
So far, we've talked about a single developer / single service workflow. But developers work as part of a larger application team that consists of multiple services. This presents two common scenarios:
How do multiple developers simultaneously develop the same service
How do you develop services that are used by other services?
September 14, 2017 | 3 min read
Cloud Native, Kubernetes, GitOps
The biggest change when adopting Kubernetes
Much of the discussion about Kubernetes and microservices focuses on the changes in architecture: gRPC vs HTTP, service mesh (or not), observability, and so on. The official CNCF Cloud-Native definition echoes this bias:
Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.
September 7, 2017 | 9 min read
Envoy
Deep Dive into Envoy Deployment at Lyft
The idea of the "service mesh" is becoming very popular in microservice design circles. However, the mechanics of deploying one into an existing infrastructure are far from simple. In this talk we will cover the logistical details of how Envoy was developed and deployed incrementally at Lyft, focusing primarily on the evolution of service mesh configuration management. We will also discuss why high level systems such as Istio are likely to be the main mechanism by which most customers ultimately get access to service mesh technology.
July 27, 2017 | 4 min read