Build a DevOps Pipeline
More customer value with DevOps
How to build a DevOps pipeline. And what’s DevOps anyway?
Today we’re going to answer these questions.
The term DevOps is simply a concatenation of two words Development and Operations, and this actually happens to convey the main essence of the term. DevOps is a set of practices that link development and operations into a single, seamless flow of effort. DevOps primarily aims at optimizing everything that happens once a developer committed the new code... to the point where it is released, deployed, and is ready to be used by the customer. The goal here is to make this process as fast and as reliable as possible. And DevOps—if implemented right—can really improve both reliability and speed by orders of magnitude.
So, how is this achieved?
There are a couple of important enablers of DevOps.
Clear understanding of goals
This is the foundational step for any organization, and it lies in embracing the simple idea that delivering value more often actually creates more value altogether. And, of course, the implementation of DevOps practices takes effort and gets the organization out of the comfort zone, as quite a few changes have to be made including technology, mindset, structure of groups and so on. And to push toward this goal requires leadership support, healthy sense of urgency, and clear understanding of the benefit.
DevOps pipeline is essentially a sequence of steps that are executed quickly and repeated many times over. For this to happen the teams must learn to continuously integrate their work, continuously test, continuously deploy. This, of course, hugely benefits from automation. So, different aspects of integration are automated. Testing gets automated, and so does the deployment. This is a challenging process to many, especially when the group comes from a different mindset that favors large batch processing: late integration, testing in the end, releasing only after lots of functionality has been implemented. So, a big shift is required that incorporates the right mentality and the right technology. There is a common saying in DevOps: If it hurts, do it more often, and bring the pain forward. (The statement originates from Jez Humble.) If the organization is persistent, they will find opportunities to streamline those processes that are causing much pain today.
You can’t just buy and install DevOps; it has to grow into the most fundamental behaviors that the organization has. But if the organization is structured in a way that creates strong separation between the different functions involved—in particular, developers and deployment operations—it will be impossible to establish a continuous pipeline across them.
Many solutions are designed in a way that makes adoption of DevOps quite difficult. This often happens as a result of tight coupling between various components or services within the system but also the coupling between the system and the rest of the environment. Very many organizations can’t properly integrate or test their systems at all simply because the system is tightly coupled with the rest of the ecosystem and the teams are unable to reproduce that context in the integration and testing environment which means that every deployment is gamble, often with dire consequences. So, a gradual improvement of the system design is needed towards a more loosely coupled and therefore more flexible and easier-to-manage, systems.
Deep feedback from operations
The goal of the system is to operate and help the customer achieve their goals with the help of the system. That is why instrumenting the solution and the environment with certain measurement and monitoring capabilities is vital. Without this, you operate in an open loop, not knowing what’s really happening.
Continuous improvement culture
DevOps pipeline is achieved as a combination of disruptive and incremental change. Yes, some changes in architectures, tooling, etc., may be disruptive. But you cannot successfully adopt DevOps as a one carefully planned big-bang project. It simply won’t work that way. Disruptive changes must go hand-in-hand with the daily focus on how the work is done and constant search of improvement opportunities. DevOps culture is the continuous improvement culture.
So, ask yourself, how frequently do your teams deliver value to the customer today and how successful are they in so doing? Think of a concrete action item that would help your organization improve the delivery pipeline.
Gene Kim, et al. The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations.
DevOps. Scaled Agile Framework. https://www.scaledagileframework.com/devops/.