What is DevOps?
DevOps can be best explained as people working together to build, deliver, and run resilient software at the speed of their particular business. DevOps enables software development (Dev) and operations (Ops) teams to accelerate delivery through automation, collaboration, fast feedback, and iterative improvement.
Stemming from an Agile approach to software development, DevOps expands on the cross-functional approach of building and shipping applications in a faster and more iterative manner. In adopting DevOps, one is making a decision to improve the flow and value delivery of their application by encouraging a more collaborative environment at all stages of the development cycle.
DevOps is a combination of software development (Dev) and operations (Ops). It is defined as a software engineering methodology which aims to integrate the work of software development and software operations teams by facilitating a culture of collaboration and shared responsibility.
DevOps represents a change in mindset for IT culture. In building on top of Agile, lean practices, and systems theory, DevOps focuses on incremental development and rapid delivery of software. Success relies on the ability to create a culture of accountability, collaboration, empathy, and joint responsibility for business outcomes.
Why adopt a DevOps model?
Adopting a DevOps model breaks down barriers so that development and operations teams are no longer siloed and have a more efficient way to work across the entire development lifecycle. Without DevOps, organizations experience handoff friction, which delays delivery and negatively impacts business results.
The DevOps model is an organization’s answer to increasing operational efficiency, accelerating delivery, and innovating products. Organizations that have implemented DevOps experience the benefits of increased collaboration, fluid responsiveness, and shorter cycle times.
Benefits of DevOps
The business value of DevOps lies in the ability to deliver software faster with continuous improvement. You need the ability to anticipate and respond to industry disruptors without delay. This becomes possible when teams are empowered to be autonomous and deliver faster, reducing work in progress. Once this occurs, teams are able to respond to demands at the speed of the market.
There are some fundamental concepts that need to be put into action in order for DevOps to function as designed, including the need to:
- Remove institutionalized silos and handoffs that lead to road blocks and constraints, particularly in instances where the measurements of success for one team is in direct odds with another team’s key performance indicators (KPIs).
- For example, Team A is tasked with preventing outages. In order to reach that goal, they create processes that are prohibitive to rapid changes in the application’s development; thereby creating a bottleneck that negatively impacts Team B’s KPI of frequent software updates.
- Implement a unified tool chain using a single application that allows multiple teams to share and collaborate. This will enable teams to accelerate delivery and provide fast feedback to one another.
Ok, now you know what DevOps is, but what’s next? Learn about Concurrent DevOps or take a deeper dive with these helpful articles.
Looking for Auto DevOps? Go to the documentation.
Here’s a list of resources on DevOps that we find to be particularly helpful in understanding DevOps and implementation. We would love to get your recommendations on books, blogs, videos, podcasts and other resources that tell a great DevOps story or offer valuable insight on the definition or implementation of the practice.
Please share your favorites with us by tweeting us @GitLab!