Ep 1: Continuous Delivery - What does deployable mean?
Welcome to OpsBR Magazine! We’ll publish short newsletters regularly to talk about various topics around operations on software systems and organizations.
This is the first newsletter and we’d like to talk about the first topic about Continuous Delivery.
Continuous Delivery is the center of operations
Continuous Delivery a.k.a. CD is the concept and practice to make a new code change deployable to production continuously. With CD process i.e. CD pipeline, you are confident to deploy the new changes to production because it is ensured by CD.
The more confident of deployments you are, the better your operations become because the likelihood of failure caused by the deployment should be lower ideally. Without CD pipeline, you don’t know what would happen after deployment.
What does deployable mean?
But, what does deployable mean? If the new code is built into a new Docker image automatically, is it deployable? No. The artifacts must be verified deeply to make it deployable.
Actually, preparing such deployment artifacts is one of Continuous Integration a.k.a. CI process. It is usually triggered by code merge and builds the artifacts as well as runs unit tests to ensure the new code works as expected.
However, that doesn’t automatically mean it’s deployable to production. Unit test can only verify the code without integrations. It is useful to test business logic implementations but typically omits interactions with unmanaged dependencies e.g. other microservices.
Before production deployments, such integrations must be also verified to capture any failures caused by these interactions. Therefore, CD pipeline would have automatic deployment process to pre-production environments like staging and run integrations tests there, for example. Once all the integration tests pass, you have better confidence of the new artifacts when deploying to production. This means the new code is deployable.
Summary
Continuous Delivery a.k.a. CD is the center of operations because it ensures the new code is deployable to production automatically. Continuous Integration a.k.a. CI isn’t sufficient to make the new code deployable because it usually run only unit tests. To make it deployable, CD pipeline would run integrations tests by using the new artifacts built by CI process.
We’ll keep talking about Continuous Delivery in the following newsletters. Subscribe this newsletter from the button below: