We’ve been working with dozens of customers who come up to us with unique problems: and we often help them in unique and effective ways whether it has to do with building a platform or migrating applications to the cloud. A common misconception with most organizations we come across is that migrating to the cloud makes them agile. While a significant selling point for the cloud is the agility angle, simply being on the cloud won’t make you so.
Organizations want to bring applications to the cloud and manage them in the cloud
In our previous post, we spoke at length about the DevOps movement which has enabled organizations to shrink months-long procurement cycles and develop the infrastructure they need in a matter of hours, or even minutes. At first glance, we can all agree that some traditional ops activities are starting to fade away:
- With IaaS in the picture, we no longer need to rack servers in house or swap hard drives ever.
- PaaS does away with configuring firewalls, installing databases or web server software.
- Configuration management and automation frees us of manually installing applications, patches or publishing ssh keys.
While many organizations have benefited from this automation, greater gains can be realized when the application development and hosting platform provides capabilities further up the stack. In other words, more abstraction is essential to derive more value out of cloud computing.
The way to do that, thereby making the lives of developers easier is through PaaS – decoupling applications form the operating system. In essence, DevOps and PaaS represent two different paradigms for delivering applications to the cloud.
- DevOps – DevOps takes an automation approach – the process of installation, configuration and deployment of the application stack are scripted
- PaaS – PaaS works by abstracting the details of the cloud infrastructure from the developers
While this may seem like developers could do away with Sysadmins once and for all, typical Sysadmins argue that they can grow up to 75% of PaaS functionality with DevOps tools like Chef without giving up any systems architecture flexibility.
The NoOps Movement
“[With PaaS,] instead of having one hundred different problems, now you can have one hundred times the same problem,” said Jérôme Petazzoni (@jpetazzo), Tinkerer Extraordinaire for Docker.
In his blog post, Adrian Cockcroft, director of cloud systems architecture for Netflix, detailed having little need for operations staff, partly because the company shifted to the cloud, thus automating former functions. In another instance, PaaS provider AppFog, has argued that the emergence of PaaS offerings eliminates the need for most operations within the organization, thus enabling a NoOps culture. AppFog’s infographic regarding this stance was published on GigaOm.
It is pretty obvious now that NoOps often gets linked with PaaS. However, we have already established that PaaS cannot and will not “solve all problems” and “enable blissful ignorance”. Several experts including James Urquhart and John Allspaw have agreed that cloud hides certain kinds of problems, only to replace them with new and more interesting ones. AWS, Heroku or Azure could have outages. The PaaS platform can’t magically scale applications if there is IaaS congestion. If another SaaS service is leveraged for an app, we’d still be constrained by the operational excellence of said service.
Melding DevOps and PaaS Together
However, the answer isn’t choosing between once of these seemingly competing paradigms. We don’t need to. Simply make DevOps the foundation of your PaaS infrastructure. This way, Sysadmins can provision any services – choose their stack, pick their cloud and package the entire thing as an environment for the developers to work with as a black box. Handing up a significant part of the operational responsibility to developers makes it even more imperative that the PaaS is infused with operational tools pre-baked by the Sysadmins. Thus the Control of DevOps and the productivity of PaaS, rolled into one is critical to business agility and operational efficiency.
DevOps + PaaS
In fact, with cloud computing, the role of the Ops is not going away but it stays in the background offering an interface which developers can manage themselves. The symbiotic relationship between DevOps and PaaS only serves to transform infrastructure into an abstracted application layer that stands ready to initiate services on demand.