The DevOps engineer's handbook The DevOps engineer's handbook

Tools for Continuous Delivery

Though its principles and capabilities are Continuous Delivery’s most important elements, tools are still vital in its adoption. Tooling can help you manage, automate, and continually improve your most complex processes.

It’s best to approach tooling by focusing on the needs of each phase in your deployment pipeline. Each phase has its own priorities and purpose, and your choice of tools should support those.

Let’s look at some popular tooling options for each phase of a typical pipeline.

This is part of an extensive series of guides about Continuous Delivery.

Planning

The planning stages are the most important for the direction and future of your product. Effective planning helps you focus on the improvements and features users get at the end of the next lifecycle.

Given a lot of that process can get pretty conceptual, there’s a range of tools that allow collaboration and project management.

Slack and Zoom are our main tools at Octopus, but other popular options include:

Code repositories and source control

Source control is important to every development team. Source control tracks and checks every new piece of code and file change.

Most developers use Git for source control. Git is both a system and philosophy, allowing for distributed development and helping avoid risk through branching.

Code repositories are hosting services for Git-managed code.

Popular options include:

Build and test

The most important tool for Continuous Integration, build servers (also known as CI platforms) can save time by automating:

  • Code compiling
  • Code validation tests
  • Package creation

Popular options include:

Databases

There are many challenges with managing persistent storage. Applications are easy to deploy and roll back, but database changes are more complex. As well as managing schema changes and test data, database deployments could also conflict with application versions.

We wrote about database management in a series of articles on database deployment automation.

Many established patterns and tools can help you decouple your database deployments and data migrations.

Popular options include:

You can also use database-specific, integrated development environments against many database options, like JetBrains DataGrip or Visual Studio Code with database extensions.

Package

Packaging is another key part of Continuous Integration. Software packaging tools turn your code into deployable artifacts. You host and deploy these artifacts from package registries and repositories.

Popular options include:

Release and deployment

Release management and deployment tools help you get your software to environments where people can access it.

Though most code repositories and build servers let you manage releases and deploy to targets in some fashion, they don’t solve the same problems a dedicated deployment tool does.

Of course, Octopus is our deployment tool and we think it’s pretty great, but other popular options include:

Learn more in our detailed guide to Continuous Delivery vs Continuous Integration.

Operations

Operations relates to the setup, running, and maintenance of infrastructure for all your processes.

Popular options include:

Octopus Runbooks can also help you with your operations tasks.

Monitoring

Monitoring tools scrape your product and related systems for important data. This can inform decisions about performance and customer usage.

Popular options include:

Learn more in our detailed guide to the benefits of Continuous Delivery.

Help us continuously improve

Please let us know if you have any feedback about this page.

Send feedback

Categories:

Next article
Adopting CD