Why Envoy?

The industry is moving toward microservice architectures and cloud-native solutions. With hundreds and thousands of microservices developed using different technologies, these systems can become complex and hard to debug.

What would make debugging these network issues easier is to push networking concerns out of the applications stack and have another component deal with the networking part. This is what Envoy can do.

Envoy is an open-source edge and service proxy, designed for cloud-native applications. Envoy runs alongside every application and abstracts the network by providing network-related features such as retries, timeouts, traffic routing and mirroring, TLS termination, and many more, in a platform-agnostic manner. As all network traffic flows through the mesh of Envoy proxies, it becomes easy to observe traffic and problem areas, tune the performance, and pinpoint latency sources-- everything in a single place!

  • 8 Modules
    A full survey of Envoy's major features and capabilities and working familiarity with a cornerstone of the modern, cloud-native technology stack
  • 17 Practical Labs & Quizzes
    Practical labs for hands-on experience with every concept in practice and quizzes to help you evaluate your knowledge at the end of each module
  • Community
    Expert Slack community to help you with any questions in case you get stuck

What will you learn?

  • 1

    Introduction

    • 1.0 Module Overview

    • 1.1 What is Envoy?

    • 1.2 Envoy Building Blocks

    • 1.3 Course Prerequisites

    • Quiz: Envoy introduction

  • 2

    HTTP Connection Manager (HCM)

    • 2.0 Module Overview

    • 2.1 HTTP Connection Manager (HCM) Introduction

    • 2.2 HTTP Routing

    • 2.3 Request Matching

    • 2.4 Traffic Splitting

    • 2.5 Header Manipulation

    • 2.6 Reply Modification

    • 2.7 Request ID Generation

    • 2.8 Timeouts

    • 2.9 Retries

    • 2.10 Request Mirroring

    • 2.11 Rate Limiting Introduction

    • 2.12 Global Rate Limiting

    • 2.13 Local Rate Limiting

    • 2.14 Rate Limiting Statistics

    • Lab 1: Request Matching

    • Lab 2: Traffic Splitting

    • Lab 3: Header Manipulation

    • Lab 4: Retries

    • Lab 5: Local Rate Limiter

    • Lab 6: Global rate Limiter

    • Quiz: HTTP Connection Manager

  • 3

    Clusters

    • 3.0 Module Overview

    • 3.1 Service Discovery

    • 3.2 Active Health Checking

    • 3.3 Outlier Detection

    • 3.4 Circuit Breakers

    • 3.5 Load Balancing

    • Lab 1: Circuit Breaker

    • Quiz: Clusters

  • 4

    Dynamic Configuration

    • 4.0 Module Overview

    • 4.1 Dynamic Configuration

    • 4.2 Dynamic Configuration: Filesystem

    • 4.3 Dynamic Configuration: Control Plane

    • Lab 1: Dynamic Configuration: Filesystem

    • Quiz: Dynamic Configuration

  • 5

    Listener Subsystem

    • 5.0 Module Overview

    • 5.1 Listener Filters

    • 5.2 Filter Chain Matching

    • 5.3 HTTP Inspector Listener Filter

    • 5.4 Original Destination Listener Filter

    • 5.5 Original Source Listener Filter

    • 5.6 Proxy Protocol Listener Filter

    • 5.7 TLS Inspector Listener Filter

    • Lab 1: Original Destination Filter

    • Lab 2: TLS Inspector Filter

    • Lab 3: Match Transport and Application Protocols

    • Quiz: Listener Subsystem

  • 6

    Logging

    • 6.0 Module Overview

    • 6.1 Access Logging

    • 6.2 Configuring Access Loggers

    • 6.3 Access Log Filtering

    • 6.4 Envoy Component Logs

    • Lab 1: Using Logging Filters

    • Lab 2: Logging to gRPC Access Log Service (ALS)

    • Lab 3: Sending Envoy logs to Google Cloud Logging

    • Quiz: Logging

  • 7

    Admin Interface

    • 7.0 Module Overview

    • 7.1 Enabling Admin Interface

    • 7.2 Configuration Dump

    • 7.3 Statistics

    • 7.4 Logging

    • 7.5 Clusters

    • 7.6 Listeners and Listener Draining

    • 7.7 Tap Filter

    • 7.8 Health checks

    • Lab 1: Use HTTP Tap Filter

    • Quiz: Admin Interface

  • 8

    Extending Envoy

    • 8.0 Module Overview

    • 8.1 Extensibility Overview

    • 8.2 Lua Filter

    • 8.3 WebAssembly (Wasm)

    • Lab 1: Extending Envoy using Lua script

    • Lab 2: Extending Envoy using Wasm and Go

    • Quiz: Extending Envoy

Reviews from learners

5 star rating

Comprehensive Envoy course with labs

Sergey Lipnevich

Not a novice in Envoy, I configured and used it as internal API proxy with some interesting options like health checks, OIDC authentication and a Lua filter....

Read More

Not a novice in Envoy, I configured and used it as internal API proxy with some interesting options like health checks, OIDC authentication and a Lua filter. This course was a very useful extension of my experience to Envoy functionality I never had a chance to try. I felt that appropriate amount of time was given to describe various subsystems and components, with emphasis on more popular parts. The course is broad enough to show how multifaceted and powerful this product is. A few words about prerequisites and gaps: 1. A listener should be familiar with concepts like HTTP protocol, load-balancing, etc. as they're not explained in the course but are required to understand functionality offered by Envoy. 2. Envoy is a substantial product by now and this course doesn't (and shouldn't) provide exhaustive coverage, but a quick tour of product documentation would be helpful. 3. They're certainly presented but pseudo-headers like ":authority," ":method" or ":path" are never explained 4. Except for a brief mention there's no coverage of metadata, and no mention of Envoy "programming" via internal-only headers There are also a few errors in the quizes, the one I caught was admin tap rule question that had two duplicate answers one of which was hiding the correct answer. I still give it five stars on the strength of the good parts.

Read Less
5 star rating

Course review

Rick Devaney

Outstanding content and examples

Outstanding content and examples

Read Less
5 star rating

Fruitful course for envoy

Billy Yip

Even worked with Envoy and Istio for some time, you can still find new knowledge in this course.

Even worked with Envoy and Istio for some time, you can still find new knowledge in this course.

Read Less
5 star rating

very thorough

Eitan Suez

lots of details are worked out here. lots of lessons and great choice of labs to demonstrate the concepts.

lots of details are worked out here. lots of lessons and great choice of labs to demonstrate the concepts.

Read Less
5 star rating

A good refresher and deep dive

Tejo Chenchu

This gave a good refresher and helped me understand all components of Envoy in much better way. Labs are very useful and examples are close to what we can us...

Read More

This gave a good refresher and helped me understand all components of Envoy in much better way. Labs are very useful and examples are close to what we can use for our applications.

Read Less