Deployments
"The biggest risk to any software effort is that you end up building something that isn't useful. The earlier and more frequently you get working software in front of real users, the quicker you get feedback to find out how valuable it really is." - Martin Fowler
Automatic deployments¶
Deployments to lower environments are like a dress rehearsal for going to production. The process to deploy to production should be the same process as all other environments. By using automated deployments, teams can experiment with different release strategies.
What gets deployed¶
Only artifacts that get built in the continuous integration pipeline should be deployed, from pre-production to production. These artifacts should live in the artifact repository. Well-architected application will ingest environment variables for configuration, following 12 factor app principals.
Promoting artifacts to release¶
When artifacts are built during the continuous integration pipeline, they are stored in the stage location in the artifact repository. The promotion pipeline copies artifacts into a release location within the artifact repository, enabling them to be deployed into the production environment. This separation ensures that only vetted artifacts that have gone through the continuous delivery pipeline can be released.