As Serverless offerings like Functions as a Service gain traction among developers, they are faced with questions about the role of DevOps in Serverless environments. With so much hype surrounding these technologies and DevOps, there is very little clarity on the relationship between Serverless and DevOps. We can talk about DevOps and Serverless in couple of contexts and, in this post, we will briefly discuss the relationship.
Using Serverless to manage the DevOps: Serverless technologies can be tapped for DevOps automation across the pipeline. Whether it is running build process on check in or running cron jobs or chatops or generating reports or log processing, Functions as a Service can help establish seamless DevOps. By tapping into FaaS for automation, organizations can build DevOps pipelines at low cost without any operational overhead. Using FaaS to handle the automation needs of DevOps is a more straightforward choice.
However, the use of DevOps in deploying Serverless application is a more interesting topic for developers. When they deploy applications to the cloud using either virtual machines or containers, most organizations expect developers to understand the operational aspects of deploying applications and, in some cases, deploy directly to production. There is a steep learning curve for developers and the key question in their minds is whether Serverless can reduce some of the operational burden from their shoulders. The abstraction provided by Functions as a Service should be help in reducing the operational burden for developers. However, we find that there are two different approaches to how these services are abstracted and this determines the operational load developers incur as they push their code to production.
- Barebones approach spearheaded by AWS, Google and others where compute is offered as Functions as a Service and it is the responsibility of the developer to put together various pieces needed for their application like object storage, database, etc.. Developers should ensure that storage, database, etc. scales like how the compute scales using automation. As the code moves from development environment to testing to production, the developers are tasked with getting the configuration files needed to automate the dependencies. This makes application more complex than what many of the developers prefer
- On the other end of the spectrum, we have offerings like Zoho Catalyst which provides database, event sources, AI kits, etc. so that the onus is not on the developers to set up these services and manage them. This approach is much suitable for developers in small organizations who can’t afford operational talent to handle the application deployment needs. Zoho Catalyst also provides a sandbox environment where the developers can test their application before deploying it in production. This greatly simplifies the DevOps pipeline for developers in smaller organizations. However, they will also be providing various integrations with various DevOps tools for larger organizations to use their service as a part of their existing DevOps pipeline. Nimbella also belongs to the same bucket
As organizations evaluate various Functions as a Service offerings, they should take into account if their developers have the necessary expertise to handle the DevOps needs. Based on the available expertise, they can pick a DIY approach to DevOps using services like AWS Lambda, Google Cloud Functions, etc. or a more comprehensive platform like Zoho Catalyst. Understanding the DevOps responsibilities is key to maximizing the benefits of any Serverless platform.