
Isolation between build, release, and run
This principle advocates strong isolation between the build stage, the release stage, and the run stage. The build stage refers to compiling and producing binaries by including all assets required. The release stage refers to combining binaries with environment-specific configuration parameters. The run stage refers to running applications on a specific execution environment. The pipeline is unidirectional. Hence, it is not possible to propagate changes from run stages back to the build stage. Essentially, it also means that it is not recommended to do specific builds for production; rather, it has to go through the pipeline:

In microservices, the build will create executable jar files, including the service runtime, such as the HTTP listener. During the release phase, these executables will be combined with release configurations, such as production URLs, and so on, and create a release version, most probably as a container like Docker. In the run stage, these containers will be deployed on production via a container scheduler.