As Serverless Computing gain traction in the industry, the industry conversation has moved towards whether Serverless is the NoOps nirvana we were expecting to happen in the cloud. When Platform as a Service (PaaS) gained traction in circa 2011, there was a talk of PaaS ushering in an era of NoOps, a result of the marketing campaign by a PaaS vendor. There was quite a bit of push back from people in IT operations, pointing out the operational overhead that comes with deploying applications on IaaS or, even, PaaS. The conversation eventually died down to resurface again in some blogs after Serverless gained traction. Do NoOps make any sense? Is Serverless the NoOps nirvana we have been waiting for so long?
Hosted Serverless & NoOps
When Serverless is offered as a hosted offering like AWS Lambda, Catalyst, and others, the cloud provider is responsible for all the operational complexities associated with running the service. Developers need not worry about managing the underlying infrastructure or even the middleware stack needed to run the applications. They just focus on business logic, package their code, and deploy to the service. In this sense, we can say that hosted service provides a NoOps experience for developers. If you are an organization that is all in with hosted Serverless offerings, your entire organization gets the NoOps nirvana. The key point here is to go all-in on Serverless computing.
If your organization deploys Serverless platforms on-premises, say using open-source software like OpenWhisk, then the developers may get a Serverless user experience but you need an IT team to deploy the on-premises platform and handle all Day 2 tasks. With the on-premises deployment, there is significant overhead with even the Serverless abstraction. While certain Serverless platforms like Nimbella provide one-click deployment and integrated monitoring, most on-premises Serverless offerings require significant operational overhead.
Hosted Serverless & DevOps
Not all hosted Serverless offerings provide the same kind of developer experience. Some like AWS Lambda and others require developers to put together all the services needed for the applications including backend services, storage services, etc… This adds considerable DevOps overhead for developers. They need to understand how to set up the environment needed for their applications. Without proper operational knowledge, misconfigurations could lead to application downtimes and improper scaling. The operational complexity increases with complex stateful applications and the context of NoOps doesn’t apply in such cases even with a hosted Serverless offering.
However, there are other Serverless offerings like Catalyst that provide integrations with backend services, storage, etc., removing the DevOps complexity associated with putting together various services needed for the applications. In the context of these hosted offerings, the NoOps experience makes sense.
To lower the barriers for developers and give them a seamless developer experience, Serverless providers must remove or minimize the operational overhead. When this experience is provided by the hosted Serverless service provider, NoOps nirvana becomes relevant. But it makes very little sense if there is a DevOps overhead with the hosted offering or the Serverless platform is deployed on-premises.