As already mentioned, within Jenkins X, each team gets their own environment. An environment is a place to de- ploy code and each environment maps to a separate namespace in Kubernetes so that they are isolated from each other and can be managed independently. GitOps manages the environments and performs the promotion. What does promotion mean? Each environment gets its own Git Repository to store the entire environment-spe- cific configuration together with a list of all the applica- tions and their version and configuration. Promotion of new application versions results in the following: ▪ Pull Request is created for the configuration change that triggers the CI pipeline tests on the Environment along with code review and ap- proval. ▪ The Pull Request is merged with the release pipe- line for the environment that updates the appli- cations running in that environment by applying the helm chart metadata from the git repository. Streamlining software development while improving quality Businesses and the developers supporting changing busi- ness needs want to adopt lean practices and processes so that development is streamlined. The emergence of the cloud means that development processes must be fast and practical. While at the outset this may sound straightfor- ward, in a highly distributed multi-cloud computing en- vironment there are many moving parts. 60

Building Cloud Native Apps Painlessly - Page 67 Building Cloud Native Apps Painlessly Page 66 Page 68