Automating Deployments, a practical approach (WIP)

Please visit the new website, deploybook.com. The contents of this page will likely not be updated, and/or slowly be migrated to the new page. Thanks!


You've developed your software, and now it's time to bring it into the production environment, and it's a big effort. And each time you have a new version (which happens a lot in the initial phase of the project), you have to go through the same hassle again.

If the deployment process becomes too much work, you start doing fewer releases and deployments, it takes longer to get feedback; the users start getting frustrated because they don't see results from their feedback soon.

Do you know this scenario, or parts of it? If yes, you might be interested in the solution: automating deployments. That's what programmers are good at, right? Once deployments are automated, they are less work, so you can do them much more often; you gain experience with them, and they stop being a big deal, and a big risk.

As a result, you can spend more time doing what you do best, and what you love: programming.

To help you get started with automating deployments, I am writing an ebook about it. It showcases practical examples using a certain set of technologies: Debian GNU/Linux as the operating system, where software is deployed as Debian packages, git for version control, ansible for installing new version of packages (and more), and Go CD for coordinating it all. There will also be notes on alternatives for some of these technologies.

Process: Blog first, then distill

I am blogging about the topics that I want to be in the book, and then distill the blog posts into book chapters, enriching and editing them in the process.

Blog posts so far:

Your interest and input matters!

If this sounds interesting, please sign up for the email list below. You will get occasional updates on the progress, as well as motivate me by signing up, and proving that the target audience for this book exists.

Subscribe to the Automating Deployments mailing list

* indicates required