8 Continuous delivery and deployment

 

This chapter covers

  • Publishing Modules to Private Registries
  • Reducing Maintenance Burdens with Semantic Versioning
  • Deploying Infrastructure
  • Continuous Delivery (CD) Platforms
  • GitOps
  • Terragrunt
  • Secret Management

As the software industry has evolved so have the tools that we use for it. Continuous Integration and Continuous Delivery have been so entwined that most people refer to them together as CICD, and until recently it was common to use Continuous Integration systems as delivery and deployment tools. If this book was written 10 years ago it’s very likely that CICD would be a single chapter.

The industry has moved on to the point where it’s recognized that Continuous Integration is not Continuous Delivery. Continuous Integration systems are focused around source code and making sure there is always a workable copy of the program available. This is why so many SCMs have CI features built right into them. In the last chapter we discussed why this is important: it increases security, reduces errors, and makes developing new features easier. All of this is vital to make Continuous Delivery possible, but it doesn’t actually build our infrastructure.

8.1 Delivering Modules

8.1.1 Semantic Versioning and Constraints

8.1.2 SCM Based Module Delivery

8.1.3 Public Software Registries

8.1.4 Private Registries

8.1.5 Artifactory

8.2 Deploying Infrastructure

8.2.1 What is a Deployment?

8.2.2 Environments

8.2.3 Continuous Delivery

8.2.4 Deployment Requirements and Limitations

8.3 GitOps

8.3.1 GitOps Development Workflows

8.3.2 Continuous Reconciliation

8.3.3 GitOps and CD Platforms

8.4 Project Structures

8.4.1 Application as Root Module

8.4.2 Environment as Root Module

8.4.3 Terragrunt

8.5 Managing Secrets

8.5.1 OpenID Connect

8.5.2 Secret Managers

8.5.3 Orchestrator Settings

8.6 Continuous Delivery Platform Features

8.6.1 Common Features

8.6.2 Terraform versus OpenTofu

8.6.3 State Management and Private Registry

8.6.4 Drift Detection and Remediation

8.6.5 IaC Frameworks

8.6.6 Policy Enforcement

8.6.7 Infrastructure Cost Estimates

8.7 CD Platform Overview

8.7.1 HCP Terraform

8.7.2 Env0 and Spacelift

8.7.3 Scalr

8.7.4 Digger and Terrateam

8.7.5 Harness and Octopus Deploy

sitemap