DevOps & CI/CD

Chapter 7
Continuous Delivery, Deployment and Release Engineering

Advance Diploma in Cloud Computing
DevOps & CI/CD   •   Advance Diploma

Continuous Delivery, Deployment and Release Engineering

Introduction and Context

Software delivery is the organisational and technical process through which a change moves from a developer’s workstation to a user-facing environment. In traditional delivery, development, testing, operations and business approval are separated by hand-offs. Releases are infrequent, large and difficult to predict. Continuous integration, infrastructure automation, automated testing and observability have changed this model by enabling small, repeatable and evidence-based releases.

This chapter examines the part of DevOps concerned with making software releasable and releasing it safely. It distinguishes continuous delivery from continuous deployment, explains environment promotion and release approvals, and develops practical strategies including feature flags, blue-green deployment, canary deployment, rolling deployment and rollback. It also considers release orchestration, governance, security, reliability and the organisational implications of delivery automation.

A central principle is that deployment is not merely a technical event. It is a controlled change to a production system, with consequences for customers, data, availability, compliance and business operations. Effective release engineering therefore combines automation with risk management and disciplined decision-making.

Learning Objectives

By the end of this chapter, a learner should be able to:

  1. Distinguish continuous integration, continuous delivery and continuous deployment.
  2. Design a delivery pipeline with quality gates, environment promotion and approvals.
  3. Explain the roles of artefacts, configuration, infrastructure as code and provenance.
  4. Select an appropriate deployment strategy for a stated risk and availability context.
  5. Apply feature flags, release orchestration, rollback and recovery techniques.
  6. Evaluate delivery performance using technical and operational metrics.
  7. Identify governance, security, compliance and ethical issues in automated release systems.

1. Core Concepts and Terminology

1.1 Continuous integration

Continuous integration (CI) is the practice of frequently integrating small code changes into a shared repository and validating them through automated builds and tests. CI reduces integration risk, but it does not necessarily release software to users. A CI pipeline may compile source code, run unit tests, perform static analysis, scan dependencies and package an artefact.

1.2 Continuous delivery

Continuous delivery is the capability of keeping software in a releasable state through every change. A successful pipeline produces a tested, versioned and deployable artefact. Release to production may still require a deliberate human decision, such as product approval, a change-management approval or a scheduled business event.

The important property is release readiness, not automatic production deployment. If an organisation says that it practises continuous delivery, it should be able to answer: “Can we release this version safely now?” with evidence rather than speculation.

1.3 Continuous deployment

Continuous deployment extends continuous delivery by automatically releasing every change that passes the defined controls. No routine manual production approval is required. It is appropriate where automated tests, monitoring, rollback and organisational confidence are sufficiently mature.

The distinction can be expressed as follows:

PracticeProduction release decisionTypical outcome
Continuous integrationNot necessarily addressedIntegrated and validated code
Continuous deliveryUsually explicit or manualEvery successful change is releasable
Continuous deploymentAutomated after controls passEvery qualifying change is released

Continuous deployment is not inherently superior. A regulated medical, financial or safety-critical service may require human review even when its technical pipeline is highly automated. Automation should remove unnecessary delay, not eliminate accountability.

1.4 Deployment, release and promotion

A deployment places a software version in an environment. A release makes functionality available to users, which may happen immediately or later. A version can therefore be deployed but not released. For example, new code may be deployed behind a disabled feature flag.

Promotion is the controlled movement of the same immutable artefact between environments, such as development, test, staging and production. Rebuilding the software separately for each environment can create differences that undermine test evidence. Configuration should vary by environment, but the application artefact should normally remain identical.

1.5 Release engineering

Release engineering is the discipline of designing, automating and governing the path from source code to an operational release. It includes:

  • build reproducibility and dependency management;
  • artefact versioning and storage;
  • deployment automation;
  • environment configuration;
  • release sequencing and coordination;
  • validation, observability and rollback;
  • security, auditability and compliance.

Release engineering treats delivery as a product capability. A delivery pipeline requires owners, documentation, testing, maintenance and measurable service quality.

2. The Delivery Pipeline as a Control System

A delivery pipeline is a sequence of automated and human-controlled stages. A representative pipeline is:

Commit → Build → Unit tests → Security analysis → Package
       → Deploy to test → Integration tests → Promote to staging
       → Acceptance/performance tests → Approval or policy gate
       → Production deployment → Verification → Release monitoring

Each stage should answer a specific question. The build asks whether the source can be transformed into an artefact. Tests ask whether expected behaviour is preserved. Security analysis asks whether known vulnerabilities or policy violations exist. Deployment validation asks whether the artefact operates correctly in its target environment. Production verification asks whether real service behaviour remains acceptable.

A pipeline should fail early for inexpensive defects and reserve expensive environments for changes that have already passed basic controls. This is sometimes called a left-shift in testing, although production-like testing must still occur near the end of the pipeline.

2.1 Pipeline stages and quality gates

A quality gate is a condition that must be satisfied before progression. Examples include:

  • all mandatory unit tests pass;
  • code coverage is above an agreed threshold, where coverage is used appropriately;
  • no critical dependency vulnerability is present;
  • database migration compatibility checks pass;
  • deployment health checks succeed;
  • performance remains within an agreed tolerance;
  • an authorised person approves a regulated release.

Gates must be meaningful. A high code-coverage percentage does not prove that tests are useful, and a green build does not prove that the system meets business needs. Gates should be tied to risks and supported by reliable evidence.

2.2 Artefacts and provenance

An artefact is a deployable output such as a container image, package, binary or infrastructure module. A mature pipeline records provenance: the source commit, dependencies, compiler or builder version, test results, security results, authorisation events and destination environments.

An immutable artefact is not modified after publication. If a defect is found, a new version is built. Immutability supports reproducibility and makes rollback more predictable. Artefact repositories should apply access control, retention policies, integrity checks and vulnerability scanning.

A useful version identifier should be unique and traceable. It may combine a semantic version, build number, source revision or content digest. For container images, a cryptographic digest is more precise than a mutable tag such as latest.

2.3 Environment promotion

Common environments include:

EnvironmentPrimary purposeTypical controls
DevelopmentRapid engineering feedbackLightweight automated tests
Integration/testVerify component interactionsService, contract and integration tests
Staging/pre-productionRehearse production behaviourProduction-like configuration and data controls
ProductionServe real usersStrong access, monitoring and change controls

Environment parity is desirable but not absolute. Staging should resemble production in architecture, runtime, deployment method and critical configuration. It may differ in scale, data volume or external integrations. Differences should be documented because they weaken the strength of pre-production evidence.

Promotion can be automatic between low-risk environments and controlled by approval or policy in higher-risk environments. The approval should reference evidence, not merely request that someone “looks at the release.”

2.4 Approvals and separation of duties

An approval gate can provide governance, but it can also become a queue that hides weak automation. Good approval design specifies:

  • who may approve;
  • what evidence must be reviewed;
  • which risks require approval;
  • how the decision is recorded;
  • what happens when approval expires;
  • whether emergency procedures exist.

Separation of duties may require that the person who authors a change cannot be the sole person who authorises its production release. However, excessive separation can slow recovery during incidents. Organisations should use risk-based controls, emergency access with retrospective review, and least privilege rather than blanket manual intervention.

3. Release Strategies

No deployment strategy is universally best. Selection depends on traffic, statefulness, infrastructure cost, rollback speed, user impact, regulatory constraints and the quality of observability.

3.1 Recreate deployment

In a recreate deployment, the old version is stopped and the new version is started. It is simple and inexpensive, but it normally causes downtime and creates a large interruption window. It may be acceptable for internal tools with low availability requirements.

3.2 Rolling deployment

A rolling deployment replaces instances gradually. For example, an orchestrator may update a subset of application instances, wait for health checks, and continue until all instances run the new version.

Advantages include lower infrastructure cost and limited immediate exposure. Risks include version coexistence, compatibility problems and a gradual spread of a defective release. The application must tolerate mixed versions during the transition. This is especially important for APIs, message consumers and database schemas.

A rolling deployment should define:

  • batch size or maximum unavailable instances;
  • readiness and liveness criteria;
  • pause intervals and observation windows;
  • automatic halt conditions;
  • maximum deployment duration;
  • rollback or forward-fix procedures.

3.3 Blue-green deployment

Blue-green deployment maintains two production-capable environments. One, such as blue, serves users; the other, green, receives the new version. After validation, traffic is switched to green.

The main advantage is a rapid traffic switch and relatively simple rollback: traffic can be returned to blue if it remains healthy. The disadvantages are the cost of maintaining duplicate capacity, the need to manage external state, and the possibility that a defect is discovered only after all traffic is switched.

Blue-green deployment works best when sessions, database schemas, caches and queues are handled deliberately. A database change that is incompatible with the old application can prevent safe reversal even when application traffic can be switched back.

3.4 Canary deployment

Canary deployment exposes a new version to a small, controlled proportion of traffic before wider release. Traffic may be selected randomly or by attributes such as region, customer group, device type or internal users.

A canary requires statistically and operationally meaningful comparison. The team should define success criteria before deployment, such as error rate, latency, conversion rate, resource consumption and support incidents. A canary that receives too little representative traffic may provide false confidence.

A simple error-rate metric is:

Error rate = Ne ÷ Nr × 100%

where Ne is the number of failed requests and Nr is the total number of requests in the observation period. Both counts must refer to the same service, time window and definition of failure. The metric is meaningful only when traffic volume and request mix are comparable between the canary and baseline.

For example, if a canary records 18 failed requests out of 12,000 requests:

Error rate = 18 ÷ 12,000 × 100% = 0.15%

A team should not interpret 0.15% in isolation. It must compare it with the baseline, service-level objective, confidence in the sample and the business impact of the failures.

3.5 Feature flags

A feature flag separates code deployment from feature release. The code can be present in production while the feature remains disabled, restricted to employees, enabled for a cohort or gradually exposed.

Common flag types include:

  • release flags for incomplete functionality;
  • experiment flags for controlled product experiments;
  • operational kill switches for rapid deactivation;
  • permission flags for entitlement or role-based access.

Flags introduce technical debt and governance risk. Every flag should have an owner, purpose, default state, expiry date, audit trail and removal plan. Flag evaluation must be secure: client-side flags must not be treated as a reliable authorisation mechanism for protected operations.

Feature flags are especially valuable for decoupling deployment from release, but they do not replace testing. Both flag-on and flag-off paths may require validation, and combinations of many flags can create a configuration space that is difficult to test.

4. Database Changes and Backward Compatibility

Many failed releases are caused not by application code but by incompatible state changes. A safe migration usually follows an expand-and-contract pattern:

  1. Expand the schema by adding backward-compatible structures.
  2. Deploy code that can work with both old and new structures.
  3. Migrate or backfill data gradually.
  4. Move reads and writes to the new structure.
  5. Remove obsolete structures only after rollback is no longer required.

For example, to rename a database field, add the new field first, write both fields temporarily, migrate existing records, switch reads to the new field, and remove the old field in a later change. Directly renaming the field may make the previous application version unable to start, preventing safe rollback.

Backward compatibility should also be considered for APIs, event schemas, message queues, caches and mobile clients that cannot be upgraded simultaneously. A deployment plan must identify consumers, compatibility periods and data recovery procedures.

5. Release Orchestration

Release orchestration coordinates multiple services, teams and infrastructure changes. A release may involve an API, web client, mobile application, database migration, message consumer, feature flag and operational documentation. These components may have different release frequencies and rollback capabilities.

Orchestration should define:

  • dependency order;
  • preconditions and health checks;
  • parallel and sequential activities;
  • approval points;
  • observation windows;
  • communication responsibilities;
  • stop, rollback and forward-fix decisions;
  • ownership after release.

A release manifest can provide a machine-readable description of versions, configuration references, migration steps, flags and verification tests. It should not contain plaintext secrets. Secrets belong in an approved secret-management system and should be injected at runtime or through controlled configuration mechanisms.

A useful distinction is between rollback and roll forward. Rollback returns to a previous version or state. Roll forward fixes the defect through a new release. Rollback is not always safe, particularly after irreversible data transformations. The release plan should state which actions are reversible and which require a corrective migration.

6. Verification, Observability and Recovery

Deployment completion is not the same as service health. Post-deployment verification should examine:

  • availability and error rates;
  • latency and throughput;
  • saturation of CPU, memory, storage or connection pools;
  • business indicators such as orders, payments or successful searches;
  • logs, traces and application exceptions;
  • queue depth and processing delay;
  • security alerts and unusual access patterns.

Health checks should be layered. A process health check asks whether the process is running. A readiness check asks whether it can serve traffic. A deeper synthetic or transaction check asks whether a critical user journey works. Health checks that merely return HTTP 200 while the application cannot perform useful work provide false assurance.

Rollback decisions should be based on predefined thresholds and a clear authority model. For instance, a release may be paused if the error rate exceeds the service objective for a defined observation period, if a critical business transaction fails, or if a security control is violated. Automatic rollback is valuable for predictable technical failures, but human assessment may be needed where data integrity or customer harm is involved.

7. Measuring Delivery Performance

The widely used DORA measures help organisations assess delivery performance:

  • deployment frequency;
  • lead time for changes;
  • change failure rate;
  • time to restore service.

These measures should be interpreted together. Increasing deployment frequency while increasing change failure rate may indicate harmful optimisation. Metrics should support learning rather than punish teams, because punitive measurement encourages concealment and gaming.

A basic change failure rate can be calculated as:

Change failure rate = Nf ÷ Nd × 100%

where Nf is the number of deployments causing a production incident, rollback or urgent remediation according to the organisation’s agreed definition, and Nd is the total number of deployments in the same reporting period. The numerator and denominator must use the same scope and period. Routine changes and emergency changes should be classified consistently.

A pipeline may also be evaluated through queue time, execution time, flaky-test rate, percentage of automated stages, rollback duration and approval waiting time. Measurement must not reduce quality to speed alone; safety, reliability, security and customer outcomes remain essential.

8. Security, Governance and Ethics

A delivery pipeline is a privileged system. It can build software, access repositories, modify infrastructure and deploy to production. Compromise of the pipeline can therefore become a supply-chain attack.

Important controls include:

  • least-privilege identities for pipeline stages;
  • short-lived credentials and secret rotation;
  • protected branches and signed commits or artefacts where appropriate;
  • dependency and container scanning;
  • isolation of build workers;
  • approval and audit records;
  • tamper-evident logs;
  • controlled access to production;
  • policy as code for repeatable compliance checks.

Compliance evidence should be generated as a by-product of normal delivery rather than assembled manually after the event. Nonetheless, automated evidence must be reviewed for correctness.

Ethical considerations include the effect of releases on accessibility, privacy, vulnerable users and service availability. A deployment that improves average performance but excludes users with assistive technologies is not a successful release. Feature experiments should respect informed consent, data minimisation and applicable privacy obligations. Automated rollback decisions should be explainable when they affect critical services.

9. Applied Case: Illustrative Online Retail Release

Background

An illustrative online retailer operates a checkout service, inventory service and payment integration. Releases currently occur once every two weeks. A failed release two months earlier caused duplicate orders because the new checkout service and an older message consumer interpreted an event differently.

Problem

The retailer wants more frequent releases but cannot tolerate duplicate payments or extended checkout outages. Its staging environment is smaller than production, and the payment provider cannot support a complete test transaction for every build.

Analysis

The principal risks are incompatible event schemas, insufficient production-like testing, and weak recovery after a partial deployment. A simple all-at-once deployment would expose every customer to these risks. A feature flag alone would not solve the message compatibility problem because both versions may consume events.

Approach and solution

The team adopts the following plan:

  1. Every build produces an immutable container image identified by source revision and digest.
  2. Contract tests verify that old and new consumers can interpret the event schema.
  3. The event schema is expanded with an optional field; the old consumer continues to function.
  4. The new checkout code is deployed using a rolling strategy while the feature remains disabled.
  5. Synthetic checkout tests use a payment-provider sandbox and verify idempotency keys.
  6. A canary flag enables the new checkout for employees and one low-risk customer cohort.
  7. Dashboards compare payment failures, duplicate-order alerts, latency and inventory reservation errors with the baseline.
  8. If predefined thresholds are exceeded, the flag is disabled and traffic returns to the old path.
  9. After the new path is stable, data is migrated and the old event interpretation is retired in a later release.

The release manager records evidence, the service owner approves the canary, and the security team verifies that payment data is not written to application logs.

Outcome

The retailer can release the application code without immediately exposing the feature. The compatibility design prevents the previous failure mode, while the canary provides representative evidence before broad release. The company does not claim that rollback can undo every data change; instead, it combines rapid feature disablement with idempotent processing, reconciliation and forward-fix procedures.

Learning points

The case demonstrates that delivery strategy must match system architecture. Deployment, release and data migration are separate decisions. Feature flags reduce exposure but require lifecycle management. Safe releases depend on compatibility, observability and rehearsed recovery, not on a deployment tool alone.

10. Contemporary Developments and Best Practices

Modern platforms increasingly express delivery workflows as code and combine application, infrastructure and policy changes in version-controlled repositories. GitOps approaches use a declared desired state and an agent or controller to reconcile environments. This can improve auditability, but it also requires careful control of repository access and reconciliation failures.

Progressive delivery combines canary analysis, feature flags, automated policy and observability to adjust exposure gradually. Service-mesh and platform capabilities can route traffic by percentage or identity, although they add operational complexity.

Artificial intelligence can assist with test generation, anomaly detection, release-risk classification and incident summarisation. It should not be treated as an unquestionable release authority. AI-generated tests may miss important cases, anomaly models can produce false alarms, and sensitive source code or logs may create privacy and confidentiality risks. Human accountability, evidence review and clear escalation remain necessary.

Recommended practices are:

  1. Build once and promote the same immutable artefact.
  2. Keep environments sufficiently similar and document unavoidable differences.
  3. Automate repeatable checks before adding manual approvals.
  4. Define release and rollback criteria before deployment.
  5. Design database and API changes for compatibility.
  6. Use progressive exposure for high-risk changes.
  7. Instrument technical and business outcomes.
  8. Treat feature flags, pipeline credentials and configuration as governed assets.
  9. Rehearse recovery and test the rollback path rather than assuming it works.
  10. Remove obsolete flags, temporary permissions and migration code.
  11. Measure both delivery speed and change safety.
  12. Make production access auditable and least-privileged.

Challenges and Limitations

Continuous delivery does not remove complexity; it changes where complexity is managed. Automated pipelines can accelerate the delivery of defects if tests are weak. Staging environments can create false confidence when they differ materially from production. Progressive delivery can be difficult for low-volume services because a canary may not receive enough representative traffic. Blue-green deployment can be expensive, and rollback can be impossible after destructive data changes.

Organisational constraints also matter. Teams may lack ownership of shared services, product decisions may arrive too late for automated release, or approval policies may be designed for a different risk profile. Delivery improvement therefore requires technical investment, clear ownership, platform reliability, appropriate governance and a culture in which incidents produce learning rather than blame.

Chapter Summary

Continuous delivery keeps every successful change in a releasable state; continuous deployment automatically releases qualifying changes after defined controls. A delivery pipeline transforms source into an immutable, traceable artefact, validates it through progressively stronger tests, promotes it through environments and verifies its behaviour after production deployment.

Release engineering coordinates artefacts, infrastructure, configuration, approvals, observability and recovery. Rolling deployments reduce immediate exposure but require compatibility. Blue-green deployments enable rapid traffic switching but often require duplicate capacity. Canary deployments provide progressive evidence but depend on representative traffic and meaningful metrics. Feature flags separate deployment from release, while expand-and-contract migrations support safe changes to persistent data.

Effective release practice balances speed, safety and accountability. Security controls, auditability, least privilege, privacy, accessibility and human oversight are essential. Metrics such as deployment frequency, lead time, change failure rate and time to restore service are useful only when interpreted together and aligned with customer outcomes.

Key Terms

Continuous integration: Frequent integration of code changes with automated validation.

Continuous delivery: The capability to keep every successful change ready for release.

Continuous deployment: Automatic production release of changes that pass defined controls.

Deployment: Placing a software version into an environment.

Release: Making functionality available to users.

Promotion: Moving the same artefact between environments.

Release engineering: The discipline of designing and governing reliable software delivery.

Artefact: A packaged, deployable output of a build.

Provenance: Evidence linking an artefact to its source, tools, tests and approvals.

Quality gate: A condition that must be satisfied before pipeline progression.

Feature flag: A control that changes feature availability independently of deployment.

Rolling deployment: Gradual replacement of instances running an old version.

Blue-green deployment: Switching traffic between two production-capable environments.

Canary deployment: Progressive exposure of a new version to a limited audience.

Rollback: Returning to a previous version or state.

Roll forward: Correcting a defect through a subsequent release.

Expand-and-contract: A compatibility pattern for safely changing schemas or interfaces.

Observability: The ability to understand system behaviour through telemetry.

Change failure rate: The proportion of deployments causing defined failure or remediation.

Progressive delivery: Controlled, incremental exposure supported by automated evidence.

Review Questions

5 Short Answer Questions

  1. What is the principal difference between continuous delivery and continuous deployment?
  2. Why is promoting an immutable artefact preferable to rebuilding separately for each environment?
  3. State two advantages and two risks of a rolling deployment.
  4. What is the purpose of a feature flag?
  5. Why should database changes often follow an expand-and-contract pattern?

5 Long Answer Questions

  1. Explain how a delivery pipeline can combine automated tests, security checks, environment promotion and human approvals without becoming an unnecessary bottleneck.
  2. Compare rolling, blue-green and canary deployment strategies in terms of cost, availability, exposure and rollback.
  3. Discuss why deployment, release and data migration should be treated as separate decisions.
  4. Explain the security risks of a delivery pipeline and propose appropriate controls.
  5. Describe how observability and predefined thresholds support safe production verification and recovery.

3 Analytical / Application Questions

  1. A payment service requires uninterrupted availability, has two compatible application versions, and can run duplicate capacity for short periods. Which deployment strategy would you recommend, and what additional checks would you require before switching traffic?
  2. A canary receives 2,000 requests with 8 failures, while the baseline receives 100,000 requests with 200 failures. Calculate both error rates using Error rate = Ne ÷ Nr × 100% and explain why the comparison should not be made without examining traffic representativeness and business impact.
  3. Design a release plan for a service that changes an API field consumed by old mobile applications. Include compatibility, feature release, monitoring, approval and recovery decisions.

Multiple Choice Questions with Answers

Question 1

Which statement best distinguishes continuous delivery from continuous deployment?

A. Continuous delivery integrates code, while continuous deployment only runs unit tests.

B. Continuous delivery keeps changes releasable, while continuous deployment automatically releases qualifying changes.

C. Continuous delivery requires no testing, while continuous deployment requires manual testing.

D. Continuous delivery is used only for infrastructure, while continuous deployment is used only for applications.

Correct Answer: B. Continuous delivery keeps changes releasable, while continuous deployment automatically releases qualifying changes.

Question 2

What is the main reason for promoting the same immutable artefact across environments?

A. It guarantees that all tests are unnecessary.

B. It prevents configuration from differing between environments.

C. It reduces differences caused by rebuilding and improves traceability.

D. It ensures that production has exactly the same scale as staging.

Correct Answer: C. It reduces differences caused by rebuilding and improves traceability.

Question 3

Which deployment strategy maintains two production-capable environments and switches traffic between them?

A. Rolling deployment

B. Recreate deployment

C. Blue-green deployment

D. Shadow deployment

Correct Answer: C. Blue-green deployment

Question 4

A service records 25 failed requests out of 5,000 total requests. What is its error rate?

A. 0.05%

B. 0.5%

C. 5%

D. 50%

Correct Answer: B. 0.5%

Question 5

What is the principal purpose of a feature flag?

A. To replace all automated tests

B. To separate deployment of code from release of functionality

C. To encrypt application traffic

D. To permanently remove unused code

Correct Answer: B. To separate deployment of code from release of functionality

Question 6

Which migration sequence best supports rollback compatibility?

A. Delete the old field, then deploy code that uses the new field.

B. Change the schema and application simultaneously with no compatibility period.

C. Expand compatibility, migrate usage, then contract by removing obsolete structures later.

D. Disable the database during every application deployment.

Correct Answer: C. Expand compatibility, migrate usage, then contract by removing obsolete structures later.

Question 7

In a canary deployment, why is representative traffic important?

A. It makes the new artefact immutable.

B. It ensures that observed results reflect relevant user behaviour and workloads.

C. It eliminates the need for monitoring.

D. It guarantees that rollback is always possible.

Correct Answer: B. It ensures that observed results reflect relevant user behaviour and workloads.

Question 8

Which measure is included among commonly used DORA delivery measures?

A. Number of lines of code written

B. Change failure rate

C. Number of meetings held

D. Average developer salary

Correct Answer: B. Change failure rate

Question 9

Which control most directly reduces the impact of compromised pipeline credentials?

A. Using one permanent administrator credential for all stages

B. Disabling audit logs

C. Applying least privilege and short-lived credentials

D. Using mutable artefact tags only

Correct Answer: C. Applying least privilege and short-lived credentials

Question 10

Which statement about rollback is most accurate?

A. Rollback always reverses all database changes automatically.

B. Rollback and roll forward are identical processes.

C. Rollback may be unsafe after irreversible data changes, so compatibility and recovery planning are required.

D. Rollback removes the need for post-deployment monitoring.

Correct Answer: C. Rollback may be unsafe after irreversible data changes, so compatibility and recovery planning are required.

DevOps & CI/CD
Chapter 7 of 15