Continuous Delivery (CD)
Continuous delivery’s ultimate goal is to get infrastructure and application resources into a state, ready for receiving production workload.
GitOps is a new trend in continuous delivery where automation is put in place to ensure the desired state of the world matches the perceived state of the world. This is achieved by connecting the source of truth (usually a git repository holding definition of application and infrastructure resources) to a reconciling controller that ensures consistency of the spun up resource to what is stored in Git. ArgoCD and FluxCD are two prominent implementations of these CD practices. While very similar in nature, ArgoCD and FluxCD and the likes could work in tandem and are not mutually exclusive.
Under the CD category, the CNOE community can help users evaluate which personas (e.g operator, developer) would be the most likely beneficiaries from each category of tooling. It is also worth noting that while GitOps is the dominant CD strategy in the CNCF space, it does not need to be the one or the only practice adopted by the CNOE users. Pluggability aspects of CNOE should ensure that customers have enough freedom in choosing their alternative.
- Automation to build, test and release software upon every successful merge to a mainline branch
- Allows for fully automated deployments when “Continuous Deployment” is enabled
- Facilitates testing that goes beyond simple unit or integration tests. Frequently used in conjunction with end to end (E2E) or functional tests.
- Can be used in conjunction with safe production deployment methods like Blue/Green or Canary deployments
- Can also make use of feature flags to allow for “soft” or “dark launches” of features and functionality not yet ready for broad consumption
- Generally gets code in the hands of consumers faster, surfacing bugs quicker and shortening product feedback loops.