PaaS and DevOps are much discussed topics these days in meetups and conferences around the world. The ambiguity around the very definition of DevOps is pushing people to wonder if there is any connection between DevOps and PaaS. I want to briefly touch on this topic in the hopes of generating a conversation on the role of DevOps and PaaS.
Putting the discussion in context
From my vantage point (as someone who was an analyst up until four months ago, viewing the industry from 30,000 feet), I see two schools of thought inside the DevOps movement.
Hosted “NoOps” PaaS – This school insists that operations ceases to exist on the side of enterprise IT and defines DevOps narrowly as developers using code to manipulate the underlying infrastructure. For example, analyzing application performance and performing on-the-fly optomizations to underlying components for delivering a more seamless end user experience. From this perspective of DevOps, operations in enterprise IT is unnecessary.
Hybrid “DevOps” PaaS – This group consists of enterprise PaaS vendors and many in enterprise IT (including enterprise developers). They argue that DevOps is about Developers and Operations collaborating effectively to remove any barriers or silos between developers and the operations team.
This post digs a bit more into the second school of thought which has found widespread adoption inside the enterprises.
PaaS and DevOps in the enterprise
The following diagram explains the spectrum between IaaS and PaaS in the enterprise context. If we show the spectrum with complete infrastructure control on the right side and complete abstraction for developers on the left, a spectrum of DevOps emerges. PaaS offerings like OpenShift are on left side of this spectrum and OpenStack based infrastructure services, and others, on the right.
With infrastructure services, the operations team sets up the underlying infrastructure services and enables touchpoints for developers through APIs. These APIs enable developers to treat infrastructure as code and lets them manipulate the infrastructure programatically. DevOps in this context could be as narrow as the Hosted “NoOps” definition or it can go all the way to autonomic management of underlying infrastructure though application code. In this case, the silos and barriers between the developers and operations teams are completely broken down as developers are expected to have operations knowledge and ops people are expected to be coders. Enterprise IT in this case requires a complete reorganization which may include expensive new hires with both development and operations knowledge.
With Modern PaaS offerings like OpenShift, the enterprise IT operations team can offer an abstraction that allows developers to focus on their applications without any need to worry about the underlying operations. Enterprises can keep the existing demarcations between the operations team and developer teams while enabling an environment that makes the collaboration between them seamless and efficient. It also helps IT Operations work efficiently and at scale while removing the need for developers to have any operations knowledge. This is more in-tune with the enterprise centric DevOps definition in the industry which respects and keeps the role of Operations team while also offering a seamless collaborative environment with developers.
Whether your organization uses IaaS or PaaS, DevOps is key. Depending on whether you are using pure play IaaS or PaaS or a combination of infrastructure and platform services, you will set the culture, process and tools for DevOps.