logo

Reproducing Production Issues in your CI Pipeline Using eBPF

2022-05-19

Authors:   Omid Azizi, Matthew LeRay


Summary

The presentation discusses the use of Pixie and Kubernetes in DevOps to improve pipeline management and prevent production app failures.
  • Pixie and Kubernetes can be used to extract traffic data and generate curl scripts for testing and load testing.
  • GitHub actions can be used to automate the deployment of services and run curl commands against them to prevent production app failures.
  • Pixie and Kubernetes can also be used to monitor and optimize service performance.
  • The presentation provides anecdotes and examples to illustrate the use of Pixie and Kubernetes in DevOps.
The presenter discusses a scenario where a developer makes a minor change to the API without understanding how it works, causing the production app to break. By using Pixie and Kubernetes to generate curl scripts and automate deployment, the pipeline can be managed more effectively and production app failures can be prevented.

Abstract

Observing production workloads with enough detail to find real problems is difficult, but it's getting easier with the community adoption of eBPF. As the technology becomes better understood, tools like Falco, Cilium and Pixie are increasingly appearing in production clusters. But have you ever considered using eBPF data to help with unit tests, Continuous Integration and load testing? This talk will explain the basic technology behind eBPF while presenting some examples of how to use data collected via eBPF for a variety of software quality use cases. We'll use the Pixie CNCF sandbox project to pull data and replicate production issues on the developer desktop for debugging. You'll also get some ideas on using those calls in your Continuous Integration pipeline to sanity check builds before they are deployed. Included in that discussion will be handling some common issues like timestamp skew and authentication. All examples are open source and available after the talk.Click here to view captioning/translation in the MeetingPlay platform!

Materials: