Deployment & Delivery
CI/CD pipelines, release strategies, artifact management, and rollbacks.
12 topics in this category.
CI/CD pipeline architecture
RequiredContinuous Integration and Continuous Deployment (CI/CD) pipelines automate the testing, building, and release of software. They enforce parity between environments and remove manual intervention from the release path.
Blue-green deployment
RequiredBlue-green deployment runs two identical production environments simultaneously. Only one serves live traffic at a time, allowing instant rollbacks by routing traffic back to the previous environment.
Canary releases
RequiredA canary release deploys a new version to a small subset of users before rolling it out to the entire infrastructure. This limits the blast radius of unexpected failures.
Rolling updates
RequiredA rolling update replaces instances of an application incrementally. This allows deployments to proceed without taking the entire service offline, maintaining capacity while transitioning to a new version.
Feature flags and progressive delivery
RequiredFeature flags decouple deployment from release. They allow code to ship to production in a dormant state, and enable teams to turn features on or off dynamically without redeploying the application.
Docker Compose specification
RequiredThe Compose specification defines a developer-centric model for multi-container applications. It standardizes how services, networks, and volumes are declared in YAML.
Zero-downtime database migrations
RequiredThe strategy of decoupling schema changes from application deployments, allowing databases to be restructured without locking tables or interrupting live customer traffic.
GitOps as a deployment model
RecommendedAn operational framework where a Git repository acts as the single source of truth for declarative infrastructure and applications, relying on software agents to continuously pull and synchronize the desired state.
OCI image specification
RequiredThe Open Container Initiative (OCI) Image Format Specification standardizes how container images are built, packed, and signed. It ensures interoperability between different container engines and registries.
Semantic Versioning (SemVer) in release pipelines
RequiredSemantic Versioning (SemVer) is a formal convention for assigning version numbers to software releases. It dictates how version numbers reflect the nature of underlying code changes, enabling automated dependency resolution.
Artifact registries and immutable builds
RequiredArtifact registries store compiled software components. Immutable builds guarantee that a compiled artifact never changes once pushed, ensuring the exact code tested is the exact code deployed.
Rollback strategies
RequiredA rollback strategy defines how a system reverts to a previous stable state after a failed deployment. Automated and tested rollbacks are essential for maintaining service level objectives.