Ideally, our enterprise projects define a fully-automated Continuous Delivery pipeline, including end-to-end testing, database migrations, canarying, monitoring, and rollbacks. However, most real-world projects are not quite there yet. The excuses are mostly complexity, insufficient testing, discrepancies between environments, or database migrations. Cloud-native technologies such as Docker, Kubernetes, or Istio also brought new ways of running software in production that need to be addressed.
This session shows how to implement a fully-fledged Continuous Delivery pipeline for cloud-native environments using Jenkins X. We'll see how to run automated testing and how to handle data in test scenarios. In order to fully automate, we also need a way to evolve schemas, that reside in databases by implementing N-1 compatibility. Automated canarying approach enables us to step to advance to a full Progressive Delivery pipeline, that limit the blast radius of potential errors, and automatically rolls out or back to a working state.