Deploying

Deploying refers to the process of delivering completed software features, updates, or fixes to the production environment where they can be accessed by end-users. It encompasses all the activities, practices, and technologies used to transition code from development to production.

Purpose

After going through all of the effort of building software we need to get it into the hands of our users.

Context

Industry Context

In traditional applications, deploying software to production environments was a manual, time-consuming process, often requiring a lot of coordination between different teams. Often a system would need to be taken offline to deploy new code, leading to downtime and user disruption. Given the disruption releases would often be infrequent, would take place out of normal business hours and would be expensive to perform. The need to release more frequently to get feedback from users and to keep up with the competition has led to the development of new deployment strategies and technologies that enable fast, repeatable, automated deployments without downtime.

ZeroBlockers Context

Teams are accountable for the outcomes that they achieve so they need control over the ability to release their code at any time. Any handovers and blockers can lead to lower quality products, given the larger batch sizes between releases as well as teams abdicating responsibility for outcomes.

Methods

MethodDescriptionBenefits
Continuous DeploymentAn extension of CD where every change that passes the pipeline is released to customers automatically, without manual intervention.Enables real-time feedback on releases, aligning closely with customer needs.
Automatic RollbacksAutomatically reverting an application to a previous stable version if certain criteria are met, such as failed deployments or detected anomalies after a new release.Reduces the impact of faulty deployments on users and system stability, ensuring service continuity.

Anti-patterns

  • Overlooking Rollback Strategies: Failing to plan for quick rollback in case of deployment issues can lead to extended downtime.
  • Infrequent Deployments: Allowing changes to accumulate and deploying infrequently increases the risk and complexity of each release.
  • Manual Deployment Processes: Relying on manual steps in the deployment process introduces the potential for errors and delays.
  • Ignoring Post-Deployment Verification: Not verifying the health and functionality of the application after deployment can lead to undetected issues affecting users.

Case Studies

Was this page helpful?

Previous
Continuous Delivery
© ZeroBlockers, 2024. All rights reserved.