What is DevOps?
DevOps is a set of practices, processes, and tools that improves an organization’s ability to deliver applications and services at high velocity and reliability. DevOps bridges the gap between development and operations, roles that were historically working in silos. The DevOps culture, along with new tools and processes, allows teams to collaborate better, and to deliver superior products and services.
DevOps is for practitioners, by practitioners. It’s not a product, spec, or job title, it’s an experience-based movement.
A framework that helps explain DevOps is CALMS. It stands for Culture, Automation, Lean, Measurement, and Sharing.
- Culture: DevOps is about fostering a high-trust, collaborative, experimental, and continuous learning culture. A culture where people own the quality of their work and get rewarded for taking risks.
- Automation: Automation creates consistency and reliability, it reduces dull, error-prone manual work by implementing Infrastructure as Code and CI/CD delivery pipelines.
- Lean: Lean focuses on continuous improvement, generating value for the customer, adopting scientific thinking, eliminating waste, and assuring quality at the source.
- Measurement: Continuous improvement cannot happen without measuring the key metrics that make sense to your business. The metrics can include development velocity, revenue, costs, active users, or customer churn rate, to name a few.
- Sharing: Sharing can be considered the thread that ties all the above together. Sharing information – knowledge, tools, techniques, lessons learned – is essential for high-performing teams.
What are the benefits of adopting a DevOps culture?
DevOps principles aren’t new, but they’re being adopted by an ever-increasing number of companies who want to better serve their customers and who know getting there requires internal collaboration and trust.
Organizations that adopt a DevOps culture are more agile and innovate at a faster rate. Their teams are able to increase deployment frequency and decrease the time to restore service, two important metrics in software delivery performance.
According to the 2022 State of DevOps Report, high-performing organizations deploy code into production multiple times per day, have a lead time for changes between one day and one week, take less than a day to restore service, and have a change failure rate of a maximum 15%. This enables them to respond quickly to their customer’s feedback and deliver better products.
In the end, the goal of DevOps is to add value to the organization. It is not just about increasing agility or being faster. It is about being fast while doing the right things and thus increasing the performance of the overall organization. From research, we know that if we increase the Software Delivery and Operational (SDO) performance, the organizational performance will also increase.
In turn, the SDO performance can be influenced by the four categories you can see in figure 1 below. Climate for learning, Lean and Agile practices, Leadership and Technical practices. These topics can be differentiated into smaller actionable items and can help you identify what action you can take in what category to maximize the impact on the organizational performance.
Figure 1: Four areas that influence the performance of Software Development and Operations (SDO) and again impact organizational performance
DevOps and Cloud for modern organizations
Cloud computing usage keeps growing, building on the momentum we have witnessed over the past few years. In 2022, 76% of users reported using public clouds, including multiple clouds, compared to 56% in 2021. The adoption of cloud computing improves the overall effectiveness of organizations. When compared to businesses that did not use the cloud, those who did were 14% more likely to surpass their goals and performance targets.
The benefits of DevOps and Cloud for modern organizations are immense. In the past, when a company needed to change its software, it would take months or even years from concept to implementation. Now, with the help of DevOps practices like continuous integration (CI), continuous delivery (CD), and infrastructure as code (IaC), developers can make changes quickly and easily. This enables organizations to innovate faster than ever before—and at a lower cost than former development models.
The ability to quickly spin up new environments benefits Ops since automation maintains consistency and reduces error-prone manual work. Dev benefits from being able to replicate every component of the production environment, so they can develop, run and test their code on their workstations.
The Cloud has all the tools built-in and ready to use: infrastructure, automation, APIs, telemetry, and security. Your team can focus on what matters – delivering the product your customers want – rather than spending time on creating platforms and services from scratch.
Where should you start with DevOps adoption?
A good way to start is by measuring your current software delivery performance. DORA ( DevOps Research and Assessment) has identified the following four key metrics:
- Deployment Frequency: how often your organization deploys code to production or releases it to end users.
- Lead Time for Changes: how long it takes to go from code committed to code successfully running in production.
- Time to Restore Services: how long it takes to restore service when a service incident or a defect that impacts users occurs (e.g., unplanned outage or service impairment)?
- Change Failure Rate: what percentage of changes to production or released to users result in degraded service and subsequently requires remediation (e.g., requires a hotfix, rollback, fix forward, patch).
For the last couple of years, we also like to include a 5th key metric: Availability. While there are lots of sources referencing four key metrics, we like to also add this one because it gives you information on the performance of your software delivery.
Figure 2: 5 Key Performance Indicators for the Software Delivery Life Cycle
Keep looking at the results and ask yourself: “Are we creating value faster?”
So where to start? In our experience, we see the following steps as a good approach to start improving your Software Delivery Life Cycle and thus your Organizational Performance. Of course, before starting to improve make sure that the measurements are in place. That allows you to see the effectiveness of your actions. And makes it possible to steer in the right direction.
- See the system
- Before you do anything, you need to get a clear view of the entire system and the value streams. In DevOps, a technology value stream is the process required to convert a business idea into a product or service that delivers value to the customer. Because value is created only when a service is running in production, teams have to deliver fast, and the deployments need to happen without disruptions such as outages, security, or compliance failures.
- Get all the silos (developers, operations, QA, security, product management, etc.) in one room and write down all the components in production, map core functionalities to end users, and list all the people that support your production.
- Focus on flow
- Look at any point of friction in your system.
- Analyze the technical and social debt.
- Try to eliminate as many bottlenecks as possible, in order to optimize time to production.
- Consider these 4 areas of improvement: extend delivery to production, extend operations feedback to project, embed project knowledge into operations, embed operations knowledge into project.
- Recognize feedback loops
- After you start changing things, you’ll get feedback loops, positive or negative.
- The goal is to create fast loops at every step in the value stream (product management, development, QA, security, operations).
- Feedback loops help us quickly identify and fix problems while also providing information on how to stop them from happening again. By doing so, we improve the standard and security of our systems and foster organizational learning.
- Look for continuous improvement opportunities
- Create a safe space for experimenting and learning.
- Test production failures to build resilience.
- Develop methods to enable sharing of any new knowledge gained in one area with the entire organization, so that local gains become global advancements.
- Choose technologies that help achieve business goals.
In conclusion
DevOps and Cloud are a match made in heaven. The Cloud-native way of working is very much aligned with the DevOps principles, enabling you to innovate at a faster pace and focus on achieving strategic goals. Cloud helps you to shift your focus to the effective use of infrastructure instead of how to build scalable infrastructure. That is done for you. Using the DevOps principles makes sure that you focus on the value you want to create. And having the right measurements helps you to mature while moving in the right direction.
Find this article interesting?
Check out our digital innovation with cloud e-book to learn more.