Defining the Problem
What is DevOps? Ask five different people for a definition of DevOps and you’ll likely get five different answers. You might hear a description of processes and workflows. Maybe you’d get an explanation of job titles ranging from software developers to other IT professionals. As is evident from the wide range of answers, there is no industry-standard definition or definitive step-by-step “how-to guide” for DevOps. Just like every company is different, every DevOps system is different. Each organization will likely have varying implementations specific to their own organizational needs. Start-ups may be as small as a single developer, but many organizations have teams of people working together in the product development and deployment process.
Although we may not know exactly what it looks like, we know what can happen when DevOps breaks down. Projects get delayed, product performance suffers, and innovation stalls. In an industry that moves at breakneck speed, any failure in product workflow or performance can lead to unhappy clients and losses in revenue.
The lack of a shared definition of DevOps can be problematic as it can inhibit coordination of DevOps-related activities across digital business. Gartner states:
“DevOps represents a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach. DevOps emphasizes people (and culture), and seeks to improve collaboration between operations and development teams. DevOps implementations utilize technology — especially automation tools that can leverage an increasingly programmable and dynamic infrastructure from a life cycle perspective.”
What can we take away from Gartner’s approach to defining DevOps?
Keep It Moving
To keep pace with evolving technology and industry trends, it’s clear that DevOps needs to be nimble and able to evolve processes and products rapidly. Development must deliver applications quickly, while keeping product quality and innovation intact. Operations must respond to fluctuations in usage before performance becomes an issue.
Digital businesses must continuously optimize workflow, architecture, and infrastructure to deliver high-quality applications as end users demand more bang for their buck. In the technology industry, there are no prizes for second place. Outdated approaches to development and deployment simply won’t do.
Gartner mentions that DevOps requires the use of a systems-oriented approach. As technology becomes more complex, traditional problem-solving approaches fail to resolve the intricacies inherent in product design and performance.
A typical development-deployment scenario may go something like this: A developer produces some code and tests it in a pre-production environment. Operations then pushes the updated code into the production environment. As a result, something breaks in the production environment, and the operations team reports a bug to the developer. The developer tests the bug in the pre-production environment and cannot reproduce it. The developer sends the bug back to operations, thinking it’s an operational issue. The issue then goes back and forth between teams, wasting valuable time and creating the potential for end-user frustration. Sound familiar?
Rather than focusing on specific project tasks (goal-oriented approach), organizations must examine their overarching DevOps processes and workflows in an effort to eliminate potential bottlenecks and miscommunication between development and operations teams. But these workflow issues are often less of a people problem and more of a process problem.
Organizations must examine where processes can be organized and streamlined to help prevent scenarios like the one described above. Effectively, they must identify how the two separate workflows of development (plan, create, verify, package) and operations (release, configure, monitor) can be more aligned in process and purpose.
The Role of Technology as a Solution
How can organizations integrate workflows and create efficiencies between development and operations? This question leads us to the last takeaway from Gartner.
Use Tools to Automate
DevOps benefits from the use of technology to streamline processes and prevent barriers within the delivery process. More specifically, Gartner mentions the use of automation tools to create a more desirable and “increasingly programmable and dynamic infrastructure.”
Just like each organization has its own expression of DevOps, within different organizations there exist different toolchain architectures. Each with its own pros and cons. And, much like the lack of clear and consistent definition for DevOps, there’s a lack of DevOps toolchain architecture planning. This can lead to operational issues and create tool decision and usage challenges for organizations looking to automate and optimize their DevOps projects. In fact, development and operations often have access to completely different toolsets. Imagine what might have happened in the scenario above if the development and operations team had access to the same testing tools and environment.
Moreover, tool collaboration and integration is one of the largest barriers for digital businesses trying to create a more streamlined DevOps process. Developing a toolchain architecture without a plan encompassing the entire DevOps process results in disparate, overlapping tools that can be difficult to integrate and automate throughout the workflow process.
Understand the Challenges
Why do some of these process challenges exist in the first place? Outside of disparate toolsets, development and operations teams are often measured against different metrics. Development and engineering teams are often measured on the number of new features they release and the speed with which they deploy those new features.
In contrast, operations teams are measured on reliability metrics, such as uptime and page timings (page load time, time to first byte, etc.). These differences in key performance indicators (KPIs) can create friction between development and operations as the ability of new deployments benefitting development can negatively affect the reliability metrics for operations.
Resolving the Disconnect
How can organizations resolve the disconnect between development and operations to improve workflow processes, while remaining agile and innovative? Organizations must take a long hard look their current DevOps processes to find ways to alleviate the ongoing tension between development and operations and to create a more harmonious and effective workflow. Here are three easy fixes for some of the main problems plaguing DevOps processes:
- Equalize the KPIs: Today’s status quo is that most businesses collect reliability metrics with tools measuring the production environments. Clearly this approach isn’t working, and it creates tension between development and operations teams. How can an organization expect DevOps to be a dynamic and cohesive unit if they evaluate the two parts separately? To improve workflow and overall product performance, organizations should move away from this two-party KPI system to evaluate DevOps as a whole using the same set of KPIs. Performance and optimization can be evaluated at the development stage, just as it is at the operations stage.
- Automate Testing and Monitoring: To find that “programmable and dynamic architecture” that digital businesses strive for, they must be willing to integrate automated monitoring into their toolsets. Additionally, moving testing and monitoring of performance to a stage earlier on in the development process (for example, into the verify stage of development), can help alleviate problems of performance down the road – helping to eliminate the constant passing back and forth of issues between development and operations.
- Streamline Environments: As in the earlier example, problems can arise when development and operations try to reproduce issues in different environments. To help cut down on the mysterious disappearing bugs, teams should use the same system to test pre-production environment that they use for production. Additionally, development teams need access to the same toolset as operations.
DevOps doesn’t have to be complicated – in fact, it shouldn’t be. By taking a systems-oriented approach with a view toward creating a more unified DevOps process and by implementing unified evaluation metrics and integrated toolsets, organizations can speed the evolution of their products to meet consumer demands and industry trends.
Rigor is the first end-to-end web performance management platform for digital organizations. Our platform programmatically identifies, prioritizes and remediates the root causes of poor site performance and reliability, including ad tech.