GitHub Actions in Action: Continuous integration and delivery for DevOps cover
welcome to this free extract from
an online version of the Manning book.
to read more
or

9 Continuous delivery

 

This chapter covers

  • Determining the basic steps of continuous delivery
  • Deploying the sample application to production
  • Using environments to guard deployments
  • Implementing various deployment strategies
  • Separating infrastructure and application code

Continuous delivery (CD) is a DevOps practice in which we deploy our software to production fully automated. In DevOps, we strive for a continuous flow of value to the end customer, which also means into production. The “holy grail” here is that every commit to the version control repository will end up in production in the shortest time possible with as few human interactions as possible, while delivering a stable, high-quality product.

9.1 CD workflow steps

The steps involved in moving to production vary greatly, depending on the product you build and the technologies you use. But, in general, you can state there are a set of generic steps you always want to take before users are exposed to new functionality. There are situations where everything is done in production, including testing the software. Although this is technically production, they keep the same safety measures in place as when you would go through a set of environments that are not exposed to the users. In general, the steps to move your software to production are as follows:

9.1.1 Steps to deploy our GloboTicket application

9.1.2 Triggering the deployment

9.1.3 Getting the deployment artifacts

9.1.4 Deployment

9.1.5 Verifying the deployment

9.2 Using environments

9.2.1 What is an environment?

9.2.2 Manual approval

9.2.3 Environment variables

9.2.4 Dealing with secrets

9.3 Deployment strategies

9.3.1 Deploying on premises

9.3.2 Deploying to cloud

9.3.3 OpenID Connect (OIDC)

9.3.4 Using health endpoints

9.3.5 Deployment vs. release

9.3.6 Zero-downtime deployments

9.3.7 Red–green deployments

9.3.8 Ring-based deployments

Summary