Reliable Software Releases through Build, Test, and Deployment Automation
1234567

Getting software released to users is often a painful, risky, and time-consuming process. This groundbreaking new book sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers, and operations, delivery teams can get changes released in a matter of hours— sometimes even minutes–no matter what the size of a project or the complexity of its code base.

Jez Humble and David Farley begin by presenting the foundations of a rapid, reliable, low-risk delivery process. Next, they introduce the “deployment pipeline,” an automated process for managing all changes, from check-in to release. Finally, they discuss the “ecosystem” needed to support continuous delivery, from infrastructure, data and configuration management to governance.

The authors introduce state-of-the-art techniques, including automated infrastructure management and data migration, and the use of virtualization. For each, they review key issues, identify best practices, and demonstrate how to mitigate risks. Coverage includes

  • Automating all facets of building, integrating, testing, and deploying software
  • Implementing deployment pipelines at team and organizational levels
  • Improving collaboration between developers, testers, and operations
  • Developing features incrementally on large and distributed teams
  • Implementing an effective configuration management strategy
  • Automating acceptance testing, from analysis to implementation
  • Testing capacity and other non-functional requirements
  • Implementing continuous deployment and zero-downtime releases
  • Managing infrastructure, data, components and dependencies
  • Navigating risk management, compliance, and auditing

Whether you’re a developer, systems administrator, tester, or manager, this book will help your organization move from idea to release faster than ever—so you can deliver value to your business rapidly and reliably.

Jez Humble

Jez Humble is an award-winning author and researcher on software who has spent his career tinkering with code, infrastructure, and product development in organizations of varying sizes across three continents, most recently working for the US government at 18F. He teaches at UC Berkeley, and is CTO of DevOps Research and Assessment LLC.

David Farley

I have been having fun with computers for over 30 years. During that period I have worked on most types of software, from firmware, through tinkering with operating systems and device drivers, to writing games, and commercial applications of all shapes and sizes. I started working on large scale distributed systems about 25 years ago, doing research into the development of loose-coupled, message-based systems – a forerunner of SOA and Microservices in a product called NeWI.

I have been lucky to have had a wide range of experience leading the development of complex software in teams, both large and small, in the UK and USA. I was an early adopter of agile development techniques, employing iterative development, continuous integration and significant levels of automated testing on commercial projects from the early 1990s.

I did a four and a half year stint at ThoughtWorks as a technical principal working on some of TW’s biggest and most challenging projects. I was Head of Software Development for the London Multi Asset Exchange (LMAX) an organization that built one of the highest performance financial exchanges in the world, is well known for the excellence of its software development team, architecture and development process.

I now the founder and managing director of Continuous Delivery Ltd, where I work as an independent Software Consultant, advising companies around the world on the topics of Continuous Delivery, Team organisation, Software Development process, automated testing, software design for high-performance and software design in general.

I intend to use this weblog to discuss some of my ideas on continuous delivery, agile development, domain driven design, high-performance computing, TDD, BDD and my experiences.

Similar Books