This chapter covers
- Publishing modules to private registries
- Reducing maintenance burdens with semantic versioning
- Deploying infrastructure
- Continuous delivery platforms
- GitOps
- Terragrunt
- Secret management
As the software industry has evolved, so have the tools that we use for it. Continuous integration (CI) and continuous delivery (CD) have been so entwined that most people refer to them together as CI/CD, and until recently it was common to use CI systems as delivery and deployment tools. If this book was written 10 years ago, it’s very likely that CI/CD would be a single chapter.
The industry has moved on to the point where it’s recognized that CI is not CD (see figure 8.1). CI systems are focused around source code and making sure there is always a workable copy of the program available. This is why so many source control management (SCM) tools 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 CI possible, but it doesn’t actually build our infrastructure.