logo

Emissary + Linkerd Resilience Patterns: Rate Limits, Retries & Timeouts

2022-10-28

Authors:   Flynn, Daniel Bryant


Summary

The presentation discusses how to deliver reliable software to users by using API Gateway and service mesh to mitigate the effects of badly behaving code.
  • Users want reliable software, but they don't necessarily care about the internal details.
  • API Gateway and service mesh can be used to mitigate the effects of badly behaving code and give users a better experience.
  • Retry, timeout, and rate limit are simple yet effective tools to use in the API Gateway and service mesh.
  • Developers, QA, and platform engineers need to think about the end-to-end solution, but they should ideally start with the services and communications.
  • Observability and debugging tools can be helpful in identifying and fixing issues.
  • Documentation and contribution to open-source projects are important for developer-focused and self-service solutions.
The speaker shares an anecdote about a terrible application with hard-coded failures and long response times. Despite the terrible metrics, they were still able to deliver a decent user experience by using API Gateway and service mesh to mitigate the effects of the badly behaving code.

Abstract

In this talk, members of the Emissary-Ingress and Linkerd teams will show the painless way to get four CNCF projects (Emissary, Linkerd, Kubernetes, and Envoy) running smoothly together to provide resilience and reliability for both end user requests and service-to-service application calls. They'll guide you through the best practices for using Linkerd and Emissary to give you capabilities like rate limiting, retries, and timeouts. Join the talk for 1) A tour of each project and discussion of how they complement each other and make a great addition to your production infrastructure stack; 2) an overview of best practices and antipatterns related to resilience. For example, retry budgets are essential within a deep microservice call chain, and 3) live demonstration of a reliability-focused reference architecture for running Linkerd and Emissary together.

Materials: