The Best Tools and Documentation for Automating Deployements

The Continuous Delivery and Devops landscape can be a bit intimidating. At all ends, new techniques and tools are advertised, and there seems to be a steady influx of new material.

To make it easier, I've collected a few resources that I use regularly (or in the case of books and articles, derived practical value from), which I like to use, and which are universal enough to be useful for others as well.

The Amazon links on this page are affiliate links, which means that if you purchase an article through that, I will earn a small commission, at no extra cost to you.

Literature on Continuous Delivery

The book on Continuous Delivery is from Jez Humble (blog) David Farley, called Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (amazon US) (amazon Germany).

It gives a solid overview of the challenges and foundations of Continuous Delivery. It's not specific to a concrete choice of tooling, which on one side makes it pretty universal and an evergreen, but on the other hand it doesn't lend a helping hand for getting started. Which is why I decided to write my own book with a more practical focus.

Go Continuous Delivery: Open Source that Powers your Pipeline

Automated deployment solutions are structured as pipelines, where the success of each stage triggers the next stage.

Go Continuous Delivery is an Open Source software that coordinates these pipelines for you. It

  • polls source code repository and other sources of new software versions
  • distributes the work to worker machines (called /agents/)
  • collects build artifacts, and makes them available in later stages and pipelines
  • offers reporting, facilities for manual approval, and notifications
  • gives you graphical overview of your pipeline graph
  • gives you a web UI for managing and observing your builds and deployments

Once you get stated, my FAQ page for GoCD might save you some time.

Ansible: Easy Deployments and Configuration Management

Deploying a software can be as simple as running the install command of the appropriate package manager, or it can be a much more complicated process spanning multiple servers in different roles, like web, backend and database servers.

Ansible is an Open Source software that can handle those deployment tasks for you, but also can be used for configuration management. And the best part: it's very easy to get started with Ansible.

The Ansible Quick Start Guide can help you with your first steps. For a more in-dpeth treatment I recommend the book Ansible: Up and Running by Lorin Hochstein (amazon US) (amazon Germany).