Huabing Zhao

Huabing Zhao works as a senior engineer at Tencent Cloud. He has solid experience in the information and telecommunication technology industry for more than 10 years. Throughout his career, he has built a number of large-scale, cross-country software systems, most of which are still running in production. He loves open source and has contributed to various open-source projects. He is a member of Istio, a previous project team leader of ONAP, and the author of the Hugo clean-white theme and the open-source project Aeraki. He has strong interests in various technical areas including cloud native, artificial intelligence, cryptocurrency, and smart home. He loves sharing his thoughts on his blog. Currently, his main focus is building a managed service mesh platform on the cloud.

projects by Huabing Zhao

Distributed Tracing with Jaeger, Kubernetes, and Istio

4 weeks · 4-6 hours per week average · BEGINNER

In this series of liveProjects, you’ll deploy distributed tracing to help an eCommerce company manage its new microservices infrastructure. You’ve just been hired by eShop, a rapidly growing company that adopted microservices due to the flexibility they provide developers. eShop is finding that managing and troubleshooting its ever-increasing number of microservices is a challenge, and so your task is to use distributed tracing to develop a high-level picture of requests across these microservices. You’ll implement distributed tracing using Jaeger, Kubernetes, and Istio. Each liveProject in this series can be tackled individually, or as part of an extended learning experience.

Distributed Tracing with Istio

1 week · 6-8 hours per week · BEGINNER

In this liveProject, you’ll use the Istio service mesh to automatically generate tracing spans for the microservices in the eCommerce application. Istio installs a sidecar proxy for each microservice that runs in the service mesh. That proxy intercepts the HTTP requests between microservices, generating a span for each request. This method avoids the need to write large amounts of tracing code, and is an excellent choice when working with legacy systems or small development teams.

Tracing for Several Microservices

1 week · 4-6 hours per week · BEGINNER

In this liveProject, you’ll restructure the demo application as multiple microservices and instrument distributed tracing for each of them. You’ll combine spans from those microservices to create an end-to-end trace of the system—perfect for monitoring your app activity. Finally, you’ll explore using baggage to pass context data through the call graph.

Tracing for Several Functions

1 week · 2-4 hours per week · BEGINNER

In this liveProject, you’ll instrument tracing in multiple functions of a call flow inside a single microservice. By instrumenting multiple trace functions, the generated traces are far more meaningful than just a single function. Once you’ve established your tracing code, you’ll use a thread-local mechanism to pass the current active span to the next function so that the spans can be pieced together. Finally, you’ll generate a trace having spans in it representing each function the request goes through.

Tracing in a Single Microservice

1 week · 2-4 hours per week · BEGINNER

In this liveProject, you’ll instrument tracing inside a single microservice. You’ll use Spring Boot to first construct your microservice, and then use the OpenTracing API and Jaeger client library to generate traces and send data to the backend Jaeger server. What we create in this project will form a foundation for later projects in the series.