software master at the intersection of technology, science and art




DevOps is "a set of practices intended to reduce the time between committing a change to a system and the change being placed into normal production, while ensuring high quality" as defined by Bass, Weber, and Zhu. The first major DevOps conference was held in 2009 at Ghent, Belgium named devopsdays. DevOps is now an industry standard approach and there is an annual State of DevOps report

DevOps is a cross-functional mode of working using different sets fo tools, referred to as 'toolchains". Each one of these toolchains fit into on or more of the following categories:

  • 1. Coding - code development and review, source code management tools, code merging.
  • 2. Building - continuous integration tools. build status.
  • 3. Testing - contniuous testing tools that provide quick and timely feedback on business risks.
  • 4. Packaging - artifact repository, application pre-deployment staging
  • 5, Releasing - change management, release approvals, release automation.
  • 6. Configuring - infrastructure configuration and managment, infrastructure as code tools
  • 7. Monitoring - applications performance monitoring, end-user experience.

The goals of DevOps span the entire delivery process -

  • * Improved deployment frequency.
  • * Faster time to market.
  • * Lower failure rate of new releases.
  • * Shortened lead time between fixes.
  • * Faster mean time to recovery.

There are many tools and methods for each of the above toolchain categories - please see the references for further discussions.