Microservices, orchestrators, containers — these are the technologies that help deliver changes to production in a few minutes. Approaches which allow to organize such process are combined under the term Continuous Delivery. The core part of it is Continuous Integration — practice of merging changes to prevent integration problems as soon as possible.
Unfortunately, real large distributed systems have some peculiarities which complicate implementing of Continuous Integration. Release cycles last for months, hundred of services are developed in different languages and technologies, testing requires tens of thousands end-to-end tests which are executed on several production-like environments.
In this talk we’ll show how Multi-Stage Continuous Integration approach helps to resolve such issues. We are going to analyze different approaches for back-end testing, how to combine them into a single process and scale to the entire system.