DevOps as an Appliance

By Sanjiv Chourasia, MBA

Talk Abstract

To promote enterprise-wide adoption and to drive higher efficiency, DevOps implementation could be simplified as an “Appliance”, with a set of standard features & components. This will enable business stakeholders to easily understand its utility and technical experts to optimize its components.

Talk Description

Are you struggling to simplify the utility, mechanics, and adoption of DevOps in your organization? Are your executive sponsors and key stakeholders overwhelmed with the gamut of technologies embedded in the CI/CD pipeline? Is your DevOps engineer expected to be a Ninja, who is a master of all the intertwined technologies that enable continuous integration & continuous delivery (CI/CD)? Very often we are faced with such challenges, which impede the adoption and implementation of DevOps in an organization. As a DevOps practitioner it is our responsibility to provide a simplistic view of DevOps to the outside world and at the same time enable the hardcore practitioners to build and manage a highly efficient CI/CD pipeline for the enterprise.

The lack of simplicity is one of the biggest impediments in the adoption of DevOps, particularly in large organizations where many stakeholders are involved in moving the needle. Very few of these stakeholders are technical experts who understand the engineering aspects of DevOps. When DevOps is explained to them, it feels like an engineer explaining the working of a refrigerator. The stakeholders are just interested in keeping their food fresh and making that perfect ice cubes, but the engineering details of how a compressor works are of little interest to them. They shouldn’t bother about opening the hood and comprehending the complexities of the underlying technical components. We could simplify the mechanics of the engineering aspects of DevOps by articulating them as an “Appliance”, a kind of a packaged product with features and components that the stakeholders could easily comprehend and appreciate its utility.

The overwhelming mechanics of DevOps implementation could be neatly packaged as an “Appliance” (the same way we think of a refrigerator) with a set of simple features and options that are easy to understand and work with. Through simplification, we will be able to address three problems. First, our executive sponsors and stakeholders will be able to comprehend the utility and mechanics of DevOps in terms of simple features and business values. Second, the tooling engineers and the software engineers that are responsible for building and utilizing the CI/CD pipeline will have a clear separation of responsibilities and a smooth handshake among them. Third, the DevOps tooling engineers, who generally are experts in certain tools, can focus on building and optimizing individual components of the Appliance and thereby contributing to an overall efficiency of the DevOps Appliance. For example, for the regression testing, a DevOps test engineer optimizes the testing component by provisioning a virtual machine with high I/O.

Executive sponsors and business stakeholder are continuously bombarded with technical details, which overwhelms them and thus stifling the adoption of DevOps. By simplification, we could avoid frustrating discussions and the need for spending time and educating them about the technical details of the CI/CD pipeline. This simplification will accelerate the adoption of DevOps in large organizations.

The maturity of DevOps implementations that the technical communities across the enterprises have achieved over the years is remarkable. However, the underlying complexity and a series of engineering skill set required to conceive, build and maintain the CI/CD pipeline is overwhelming. The interconnected CI/CD pipeline toolsets when dissected and exposed to various engineering teams is quite daunting. Not every engineer is conversant with every technology used in the pipeline. Specialized skillsets are required to build a part of the pipeline. For instance, a development engineer may not be conversant with Veracode security scan, and a security engineer may not know the usage of Selenium for regression test. A simpler view of the CI/CD pipeline that is conceptualized as an “Appliance” could solve this problem. An Appliance that comprises of individual components with neat interfaces that the respective engineering team is responsible for caring and sharing will enhance the simplicity and utility of the DevOps toolsets.

Further, componentization within the Appliance allows individual components to be highly optimized to create an efficient DevOps pipeline. For instance, the DevOps engineering team that specializes in regression test will design, provision and optimize the regression test components with high I/O; the Security Engineering team will pre-configure the firewall rules to be used by the application development team; etc. These components would expose a clear interface for the development teams so that they can use the CI/CD pipeline as an Appliance and have plug-n-play capabilities for the components.

In summary, an Appliance with standard plug-n-play interfaces will serve all the communities – both technical and non-technical. The non-technical communities can talk in terms of features, while the technical team talks in terms of underlying components and interfaces. This holistic approach will boost the comprehension and thus the adoption of DevOps in organizations.

Notes

I have been leading DevOps transformation in large organizations (currently in TD Bank) and observed that we have overcomplicated how we communicate about DevOps, particularly about the toolset that are utilized to enable CI/CD. While working with senior executives and engineers, and talking to peers in the industry, I am convinced that ‘simplicity’ is necessary to improve the adoption of DevOps in large organizations.

Understanding of technical implementation of DevOps is limited among stakeholders. Philosophically speaking, DevOps is more about culture and less about technology. However, in reality, DevOps is strongly associated with the engineering discipline in an organization and the implementation of DevOps toolset commands the spotlight. This is overwhelming and confusing for many stakeholders – both technical and non-technical.

When I experimented this concept by simplifying it as an Appliance, it was easy for everybody to comprehend and appreciate. I believe the DevOps community will tremendously benefit by adopting this concept and help their organization leap forward in their DevOps journey.

I look forward to the opportunity to share this idea and its implications with the DevOps community.