How do you ensure that your application can be built, tested and deployed in an automated and standardized way?
Define a Pipeline of standard build and deployment stages.
A Pipeline allows code to flow through a consistent, automated sequence of stages where each stage tests the code from a different perspective. Each stage requires the necessary automation to not only run tests but also provision, deploy, setup, and configure the stage. Code should progress through the stages in an automated fashion with as little human intervention as possible.
The pipeline should employ a number of different strategies that make deploying the artifacts pushed through the pipeline simpler. One key strategy is the idea of a Red-Black Deploy that allows for easy rollback. Canary Testing is another useful approach that allows you to validate that your deployment will succeed at scale. Another strategy that is often helpful is the Feature Toggle which aids with the issue that you may want to push features out to different stages faster than you can certify them in that environnment.