A DevOps toolchain is a collection of tools, often from a variety of vendors, that operate as an integrated unit to design, build, test, manage, measure, and operate software and systems. It enables development and operations teams to collaborate across the entire product lifecycle and tackles key DevOps fundamentals including continuous integration, continuous delivery, automation, and collaboration.
From agile to DevOps
When agile principles gained widespread adoption, they revolutionized the way we create products. We embraced small, cross-functional teams and one to two week sprints that produced artifacts ready for production. We had tight feedback cycles and continuous improvement. We delivered products faster and with fewer headaches.
It’s amazing how quickly things change. Now with cloud, SaaS, and always-on services, the development lifecycle is much faster. It’s common for multiple development and testing stages to happen simultaneously. While agile typically had one to two week sprints, teams in today’s cloud native environments iterate and deploy multiple times a day. Workflows and codebases evolve constantly. Teams use feature flags, progressive roll-outs and A/B tests to ensure clean, quality code deploys continuously.
This has spawned an evolution from agile to DevOps, a set of practices that works to automate and integrate the processes between software development and IT teams, allowing them to build, test, and release software faster and more reliably. DevOps teams are measured by how quickly they push code into production. They are defined by the number of iterations shipped each day and how long it takes for a code change to go from testing through deployment and into production. Typical projects on my team see up to 20 changes per day. Some larger projects see up to 100 changes per day.
This accelerated workflow is enabled by, and relies on, new tools that allow teams to collaborate across development, testing, and deployment. In particular, a DevOps toolchain helps teams tackle each stage of the development lifecycle, very, very quickly.