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!
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
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 MoreNot 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 LessCourse review
Rick Devaney
Outstanding content and examples
Outstanding content and examples
Read LessFruitful 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 Lessvery 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 LessA 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 MoreThis 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