This section contains four code contribution patterns for continuous delivery. You can pick a pattern, add test layers, and start releasing frequently.
The centralized pattern is the traditional pattern popularized by Jez Humble. You put all of your changes together into one central code version, and continuously run automated tests on them. The goal is to integrate as early as possible, find problems as early as possible, and train your team to avoid them. It is easy to set up, and scales to support complex centralized build and test systems.
The distributed pattern is used by many SaaS companies that want to release every change. Each change is tested in a separate branch, and then released before it hits problems from integration with other changes.
The review branch system allows you to produce more reliable code from bigger teams, by testing and reviewing each change before it goes into a centralized shared version. This is a best practice.
The MAXOS pattern organizes continuous delivery of complex systems, which are built from multiple servers and services that communicate with each other. The team maintaining one service builds and releases changes, often using a review branch system. Before a service is promoted into production, it gets tested in a centralized continuous integration system to make sure that it works with the pre-release version of all of the other services.