Stripe's continuous integration system is responsible for orchestrating build pipelines and executing tens of thousands of test suites. To meet our exceptionally high security bar, we lean on a combination of open-source tech and novel engineering.
Overview
The article discusses the challenges and solutions Stripe engineers face in maintaining a continuous integration (CI) system that balances speed and security. It highlights the use of Bazel for managing build pipelines and the implementation of remote caching and execution to optimize performance while ensuring the integrity of builds.
What You'll Learn
How to implement Bazel for multi-language build pipelines
Why remote caching and execution are crucial for CI performance
How to use Firecracker for efficient microVM management
Prerequisites & Requirements
- Understanding of CI/CD principles and practices
- Familiarity with Bazel and its build rules(optional)
Key Questions Answered
How does Bazel improve build and test pipelines at Stripe?
What are the benefits of remote caching and execution in CI?
What security measures are taken to protect the CI system?
Why did Stripe move from gVisor to Firecracker for sandboxing?
Key Statistics & Figures
Technologies & Tools
Some links below are affiliate links. We may earn a commission if you make a purchase.
Key Actionable Insights
1Implementing Bazel can streamline your build processes across multiple languages.By using Bazel, teams can define clear rules for building and testing, which can lead to faster development cycles and improved collaboration among engineers working with different programming languages.
2Utilizing remote caching can drastically reduce build times.By caching outputs from previous builds, teams can avoid redundant work, allowing for quicker feedback on changes and enhancing overall productivity.
3Adopting Firecracker can enhance the performance of CI systems that require sandboxing.Firecracker's microVMs provide a lightweight and efficient environment for executing builds, which can be particularly beneficial for applications with high I/O demands.