Security Testing Agent
Continuous Delivery & GitOps
Runtime Configuration
eBook
eBook

Continuous Delivery in the Wild | Harness Resource

Continuous Delivery in the Wild by Pete Hodgson takes you behind the scenes of real-world organizations using Continuous Delivery (CD) to accelerate software deployment while maintaining high-quality standards. This book provides practical insights from a wide range of companies, from startups to large enterprises, showcasing how they handle branch strategies, code reviews, and deployment processes.

Hodgson dives into key practices like GitHub Flow, Trunk-Based Development, and feature flagging, all while stressing the importance of minimizing batch sizes to reduce integration pain and speed up releases. The book also emphasizes the critical role of automated CI/CD pipelines, the shift away from long-lived branches, and the need for strong testing strategies in integrated systems.

A central theme throughout is the empowerment of engineers through self-service deployment platforms, which promote autonomy and accountability. Hodgson categorizes organizations into two modes—Branch-Based and Trunk-Based Continuous Delivery—and highlights how smaller, modular systems allow for faster, independent deployments.Ultimately, Continuous Delivery in the Wild shows how CD can serve as a powerful competitive advantage, driving both engineering efficiency and business success.

Published
January 1, 2024

Guide on its way

Check your inbox — your playbook is ready.

You're all set

Check your inbox — your download is on the way.

Redirect link
Redirect link

What you'll learn

Key Takeaways

Continuous Delivery Uses Manual Release Gates

Continuous Delivery differs from Continuous Deployment by requiring a human operator to explicitly promote changes into production. This manual gate ensures safety while maintaining a rapid deployment pace.

Avoid Long-Lived Feature Branches

Organizations practicing Continuous Delivery rely on short-lived feature branches or trunk-based development. Long-lived branches complicate integration and hinder the continuous flow of code.

Replace Release Branches With Delivery Pipelines

Modern systems use delivery pipelines to orchestrate releases against a static snapshot of code. This automates the release process and reduces the human error associated with manual release branches.

Reduce Batch Sizes for Safer Deployments

Breaking large features into smaller independent changes allows teams to easily inspect and validate code. This steady flow of small updates is essential for successful software delivery.

Hide Unfinished Features With Latent Code

Teams safely deploy incomplete features into production by using latent code and feature flags. This allows backend systems to be tested in production before the user interface is exposed.