What Is Continuous Delivery?

Continuous delivery is a software development practice where code changes are automatically prepared for a release to production.

Why use continuous delivery?

Continuous delivery ensures that every code change is ready to be deployed to production, adding significant safety and speed to DevOps organizations and shortening the time to get new features into the hands of users. Similarly, continuous integration makes it possible for multiple devs to work together on the same project by keeping the main code branch up-to-date and minimizing code conflicts. However, continuous integration has more limitations than continuous delivery. Check out our post about continuous delivery vs continuous integration to learn more.

What are the benefits of continuous delivery?

  • Built in functionality — this leads to being able to quickly create more robust and complex pipelines.
  • Reusability — with our microservice architecture where most services are usually deployed in the same fashion, pipeline-templates allow us to propagate the same pipeline workflow amongst all of our Spinnaker applications.
  • Visibility — the Spinnaker UI offers a lot of information about a pipeline execution as well as its deployed Kubernetes infrastructure.
  • Pipeline workflow — Spinnaker makes it a breeze to have stages in a pipeline rely on other stages, run in parallel, or be enabled/disabled upon certain conditionals, to name a few.
  • Lots of provider plugins — While we are only taking advantage of the Kubernetes provider, Spinnaker has a plethora of other provider plugins to run deployments to a multitude of platforms (AWS, GCP, Azure, Oracle, etc.)

What are the key elements of continuous delivery?

The goal of continuous delivery is the ability to rapidly introduce new features into the hands of users in a sustainable way. To that end, there are a few common elements that make up continuous delivery and its contribution to the SDLC.

  • Repeatable Reliable Processes — The ability to take manual lists of tasks and automate them with software tools and scripts for repeatability
  • Version Control —  A must-have for any serious project. Version control enables a team of developers to efficiently collaborate on a shared codebase. Git is the most widely used version control system and a great companion for CD.
  • Build in quality — In CD, quality is not an afterthought that is kicked to the QA team. Quality is baked into every step of the release pipeline.
  • Do the hardest parts first — Painful, time-consuming, or error-prone tasks compound over time. Painful tasks should be addressed as soon as possible to prevent a compounding loss of energy.
  • Everyone is responsible — The entire organization should be focused and incentivized to ensure the end-user deliverable is as high quality as possible. Product Managers should plan with attention to deployment and quality assurance. The Security team should be actively involved in the release process.

See how Armory makes continuous delivery solutions possible

Spinnaker is the world’s most powerful continuous delivery platform, developed and open-sourced by Netflix and Google, and battle-tested in production by hundreds of the world’s leading enterprises. Armory can help you scale Spinnaker for enterprise websites.

Armory brings the power of Spinnaker to your organization, along with mission-critical feature extensions, enterprise-grade stability, and 24/7 expert support from the leading independent member of the open-source community. Learn how scalable continuous delivery solutions can help your company and sign up for a free demo.

Commit. Deploy. Repeat.

Continuous Deployment at any scale, for all developers.