Serverless computing platforms, like AWS Lambda and Google Cloud Functions, are popular among app developers. Likewise, platform-as-a-service -- a collection of tools that allow developers to deploy applications without handling the underlying hardware that powers them -- is also gaining traction.
For organizations looking toward a hardware refresh, adopting PaaS middleware is a relatively easy step to modernizing IT deployments. Serverless computing, however, requires rearchitecting existing applications, or building entirely new applications, to gain the full value and promise that serverless platforms offer.
What's the difference between serverless computing and PaaS?
Serverless platforms and PaaS fundamentally exist to enable developers to spend time writing code, rather than focusing on the platform on which that code is run. There are three primary differences between the two models, however. For PaaS, scaling is more manual, while "in a serverless environment, scaling is a lot more automated and automatic," Arun Chandrasekaran, a Gartner analyst for technology innovation, told ZDNet. "The second is when does an application really spin up ... I think, in a serverless environment, the function can be evoked in a much more agile manner than in a compatible PaaS environment. The final difference really is the control. In a PaaS environment you have a lot more control over the development environment, whereas in serverless it's a little bit of a black box."
SEE: Serverless computing: A guide for IT leaders (Tech Pro Research)
How should you decide between serverless computing and PaaS?
For event-driven programs, which have specific, delineated events that can be used to trigger specific actions, "serverless is going to be a great fit for that," Chandrasekaran said. "However, if you're doing much more conventional application development and you want a very prescriptive way of doing application development as a platform, you would want to have a lot more control over the underlying environment -- if any of these factors is true, you'll most likely want to be using a PaaS environment."
Conversely, Jeffery Hammond, principal CIO analyst at Forrester, sees the two as being on a collision course. "Look at where Pivotal is going with Pivotal Cloud Foundry. They've got the Pivotal applications service, which is a PaaS, and then they've got the Pivotal Functional Service ... at the core of their serverless efforts. But there are going to be applications that are built on PaaS that may call functions in PFS. So integration is certainly something that's on the radar."
SEE: AWS Lambda: A guide to the serverless computing framework (free TechRepublic PDF)
Yes, you can deploy serverless using an on-premises server
As zany as the prospect may seem, the release of Google's Knative serverless platform middleware for Kubernetes, combined with GKE On-Prem or another Kubernetes platform, theoretically allows serverless applications to be deployed using servers that live on-premises. "So the idea of grafting a serverless platform onto Kubernetes and wrapping it with a service fabric is something which is starting to get a lot of traction," Hammond said, pointing to Kubeless and OpenFaaS as other frameworks that enable this deployment model.
There are use cases for which this makes sense, such as financial services and healthcare. "Their expectations from a scalability standpoint are not so high, but they do want to run something that is closer to where the internet is happening. They probably want to do image processing, where they really want to run this close to where the data has been generated," Chandrasekaran said. "You may lose some benefits of serverless by running it in a private IP environment, particularly the scalability aspect of it, and to a lesser extent even integration of data has not really been etched out at this point in time. Serverless platforms do not integrate with data at on-premises environments, so these things have to mature, in my opinion."
What public cloud provider should I use?
Buoyed by first-mover advantage, AWS Lambda is used more frequently for serverless application deployment. Lambda also has a richer development ecosystem of third-party services and integrations. While those third parties are extending their reach to Google Cloud Functions and Microsoft Azure Functions, to cover more of the market, third-party integrations typically come first to AWS.
Likewise, different vendors have different trigger types that can be used to execute functions, with AWS offering more event sources than other serverless platforms from public cloud providers. When additional use cases and scenarios are devised, these are likely to expand as serverless functionality from public cloud providers matures.
- Hybrid cloud: A cheat sheet (TechRepublic)
- Hybrid cloud: A guide for IT pros (TechRepublic download)
- Top cloud providers 2019: AWS, Microsoft, Azure, Google Cloud; IBM makes hybrid move; Salesforce dominates SaaS (ZDNet)
- Best cloud services for small businesses (CNET)
- Microsoft Office vs Google Docs Suite vs LibreOffice (Download.com)
- Cloud computing: More must-read coverage (TechRepublic on Flipboard)