What is serverless computing and should your enterprise be using it? We take a look.
For more than two decades vendors have been talking of providing computing as a utility, pretty much like we use electricity or cooking gas. With the advent of cloud computing we are inching closer to availing compute, storage and platforms as utilities for which we pay a subscription fee rather than commit huge monies upfront. Today, service providers are taking this one step further by offering serverless computing options where we are looking at Backend-as-a-Service (BaaS) and Function-as-a-Service (FaaS).
Serverless computing came into the spotlight when an American multinational technology company launched a serverless platform in 2014. This service allowed users to run code without having to provision or manage servers. Since then the number of players offering similar services has grown exponentially.
Serverless is type of software architecture where application logic is executed in a setting without visible operating systems, processes, virtual machines, or servers. While this environment actually runs operating systems hosted on servers or virtual machines, infrastructure provisioning and managing is done by the service provider. In such a scenario, the user or developer only needs to focus on writing code while not worrying about infrastructure. In essence serverless computing totally takes away infrastructure management issues that could include provisioning and managing servers, scalability, and security.
The advantages of serverless computing are many. As with most cloud services costs tend to be reduced, as it is a pay-as-you-go model wherein organisations don’t have to pay for idle server time. As the service provider is in charge of managing servers, tech teams don’t have to spend time on getting rid of bugs and updating patches. Security is taken care of by the service provider. Nor do organisations have to worry about having the latest OS versions or software platforms.
Serverless computing also helps organisations scale up with increasing traffic, saving them the trouble of having to build infrastructure that can scale up or down based on their requirements. Serverless computing supports agile development, allowing developers to focus on code and deliver products faster. It’s a good option to have when you are delivering microservices that can be implemented as functions. With server provisioning and administration headaches out of the way IT organisations can focus on product features and customer experience.
However, serverless computing comes with its drawbacks. It’s not cost effective for applications that run longer. In such cases a dedicated server or a virtual machine running the workload is a better option. As serverless computing forces organisations to get locked in with a vendor, they lose control over their application. Changing the platform or service provider becomes a challenge, as it requires significant changes to the application, which carries additional effort and costs.
While service providers maintain the workload of different customers in different silos, there is still scope for bugs to surface in FaaS offerings. This could lead to application security issues that will be hard to manage. Testing functions could become an issue as FaaS providers may not offer the kind of tools organisations deploy for testing in a local environment that’s under their control.
To sum up, FaaS or serverless computing is still evolving as a concept. It is possible that service providers will address some of its drawback in the days to come so that it becomes more viable for enterprises to invest in this emerging concept.
Photograph: BalticServers.com/Creative Commons