Continuous Delivery: Difference between revisions
No edit summary |
|||
Line 6: | Line 6: | ||
* [[CI/CD#Subjects|CI/CD]] | * [[CI/CD#Subjects|CI/CD]] | ||
=Overview= | =Overview= | ||
'''Continuous Delivery''' is an [[Agile Software Development#CD|agile software development]] practice where you build software in such a way that it can be released in production at any time. Because of the safety mesh provided by CD, the system is released in production often. Before releasing in production, the system is deployed in an environment similar to production and tested there. As such, Continuous Delivery extends the unit testing performed by Continuous Integration, ensuring full production readiness through integration testing. The CD pipeline deploys the artifacts produced by the CI pipeline. Continuous Delivery is some times referred to as '''Continuous Deployment'''. | |||
CD best practices: | |||
* version code and configuration | |||
* version environment | |||
* build binaries once | |||
* automate everthing | |||
* smoke test deployments | |||
* deploy to all environments the same way | |||
* create disposable environments | |||
Amazon take on Continuous Delivery: https://aws.amazon.com/devops/continuous-delivery/ | |||
=Continuous Delivery Pipeline= | |||
A '''continuous delivery pipeline''' is the automated expression of the process for getting software from version control through building, testing and deployment to the end users, in production. | |||
Every change to the software being built, committed in source control, goest through a complex process on its way of being released. This process involves building the software in a reliable and repeatable manner, as well as progressing the built software (called the "build") through multiple stages of testing and deployment. | |||
One tool that provides continuous delivery pipeline functionality is [[Jenkins_Concepts#Pipeline|Jenkins]]. Another is [[AWS_CodePipeline_Concepts#Pipeline|AWS CodePipeline]]. | |||
==Infrastructure Delivery Pipeline== | |||
<font color=darkkhaki> | |||
TO INTEGRATE: | |||
* [[Infrastructure_as_Code_Concepts#Pipeline_Stack_Parameters|Pipeline Stack Parameters]] | |||
</font> | |||
=Deployment Pipeline= | |||
Commit, Acceptance, UAT, Production. | |||
=CD Tools= | |||
* [[Jenkins_Concepts#Overview|Jenkins]] | |||
* [[GoCD_Concepts#Overview|GoCD]] | |||
* [[ConcourseCI_Concepts#Overview|ConcourseCI]] | |||
=GitOps= | |||
{{Internal|GitOps#Overview| GitOps}} | |||
=Blue-Green Deployments= | =Blue-Green Deployments= | ||
{{Internal|Blue-Green Deployments#Overview|Blue-Green Deployments}} | {{Internal|Blue-Green Deployments#Overview|Blue-Green Deployments}} |
Revision as of 01:57, 1 January 2022
External
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation by Jez Humble, David Farley
- Infrastructure as Code: Dynamic Systems for the Cloud Age by Kief Morris
Internal
Overview
Continuous Delivery is an agile software development practice where you build software in such a way that it can be released in production at any time. Because of the safety mesh provided by CD, the system is released in production often. Before releasing in production, the system is deployed in an environment similar to production and tested there. As such, Continuous Delivery extends the unit testing performed by Continuous Integration, ensuring full production readiness through integration testing. The CD pipeline deploys the artifacts produced by the CI pipeline. Continuous Delivery is some times referred to as Continuous Deployment.
CD best practices:
- version code and configuration
- version environment
- build binaries once
- automate everthing
- smoke test deployments
- deploy to all environments the same way
- create disposable environments
Amazon take on Continuous Delivery: https://aws.amazon.com/devops/continuous-delivery/
Continuous Delivery Pipeline
A continuous delivery pipeline is the automated expression of the process for getting software from version control through building, testing and deployment to the end users, in production.
Every change to the software being built, committed in source control, goest through a complex process on its way of being released. This process involves building the software in a reliable and repeatable manner, as well as progressing the built software (called the "build") through multiple stages of testing and deployment.
One tool that provides continuous delivery pipeline functionality is Jenkins. Another is AWS CodePipeline.
Infrastructure Delivery Pipeline
TO INTEGRATE:
Deployment Pipeline
Commit, Acceptance, UAT, Production.