“DEVOPS is the union of people processes and products to enable continuous delivery of value to end user”
Donovan Brown Microsoft
Is DevOps Real
Definition of Terms: The phrase OODA loop mentioned in the video refers to the decision cycle, Observe, Orient, Decide, and Act, developed by military strategies and United States Air Force Colonel, John Boyd. Boyd applied the concept to the combat operations process, often at the strategic level, in military operations. It is now often applied to describe commercial operations and learning processes. This approach favors agility over raw power in dealing with human opponents in any endeavor.
Fast Delivery Cycles
One of the core values of DevOps is a shortened release cycle. John Allspaw, who was an employee at Flickr when he pioneered much of the DevOps thought process, and is now at Etsy, where he is a leading thinker, created the following visual to demonstrate the difference between a slow and faster delivery cadence:
The chart on the left shows the rate of change for a slow delivery cadence. If you look along the time vector, you see a long time between deliveries. Maybe this is three months. Maybe this is three weeks. Whatever the time frame, if we wait a long time and then deliver into production, we will deploy a massive amount of change, including many lines of code, lots of features, and lots of things that can go wrong.
Oftentimes, organizations will think that this is the right way to deliver because, when they stretch out their delivery times, they are able to perform a lot of regression testing and full testing, and ensure that everything is complete. It is considered safe when change does not occur too frequently. This is not the case. As you lengthen the delivery cycles and increase the amount of churn, it becomes very, very difficult for to go back and fix anything bad that happened in the release. There is so much change that it becomes difficult to identify where the problems occurred, resulting in a lot of dysfunction. When we spend more time in regression and testing, then we spend more time waiting and making sure the deployment is absolutely perfect.
If we move to a fast delivery cycle, where we deploy very frequently, the changes are smaller at each individual release. The goal is faster and faster release cycles with less and less change, so that we ensure that what goes into production has limited impact and we can test very specifically. Consequently, we can get things into production quickly, get feedback rapidly, and learn from our customers at a much faster cadence.
Over the past 15 years, agile software development has gained immense popularity among software development teams. The agile process accelerates the software development process and forced a faster release cadence.
Traditional IT operations teams struggle with a fast release cadence because their practices make the release and operations processes reliable, but not agile. Additionally, the disconnect between development and operations increases the likelihood of mistakes and lead time when issues occur.
Within a DevOps culture, all team members who are involved in creating, delivering, and monitoring software, work together closely to ensure high-quality releases at increasing frequencies.
Over the past 15 years, agile software development has gained immense popularity among software development teams. The agile process accelerates the software development process and forces a faster release cadence.
Traditional IT operations teams struggle with a faster release cadence because their practices make the release and operations processes reliable, but not agile. Additionally, the disconnect between development and operations increases the likelihood of mistakes and lead time when issues occur.
Within a DevOps culture, all team members who are involved in creating, delivering, and monitoring software, work closely together to ensure high quality releases at increasing frequencies.
State of DevOps Report
Puppet Labs publishes the State of DevOps Reports based on responses from over 20,000 tech professionals worldwide. They conclude that organizations embracing DevOps practices consistently outperform their peers. For example,
- Companies with high-performing IT organizations are twice as likely to exceed their profitability, market share, and productivity goals.
- High-performing IT organizations experience 3 times lower change failure rates and recover 24 times faster than their lower-performing peers. They also deploy 200 times more frequently with 2,555 faster lead times.
For more information, see the following video and the 2016 State of DevOps Report.
DevOps Practices and Habits
The video in the next unit provides further information about the following seven practices and habits of a successful DevOps culture. These include:
Seven Key DevOps Practices:
- Configuration Management
- Release Management
- Continuous Integration
- Continuous Deployment
- Infrastructure as Code
- Test Automation
- Application Performance Monitoring
Seven DevOps Habits:
- Team Autonomy and Enterprise Alignment
- Rigorous Management of Technical Debt
- Focus on Flow of Customer Value
- Hypothesis Driven Development
- Evidence Gathered in Production
- Live Site Culture
- Manage Infrastructure as a Flexible Resource