There’s a new buzzword in town: serverless computing. To the untrained reader, this can sound like an oxymoron. How can you do computing without a server? I am one of many who think they could have devised a better name. That said, it’s a hot topic among technology professionals and getting a lot of attention. This article will explain in simple terms what serverless computing is, how it works, and the benefits and drawbacks to your organization.
What is serverless computing?
Yes, another new acronym, FaaS, or Function-as-a-Service. The first clarification is that servers are a part of this technology. Second, yes this is a cloud offering vs. on-premises. The reason we use the term serverless, is the cloud vendor provides all of the management and capacity planning functions behind the black curtain. This frees up your internal resources to work on other initiatives.
The cloud provider will automatically add, remove, and adjust your server resources based upon demand, then bill you for actual usage. Using this pay-as-you-go method alleviates the need to pre-pay for server resources that may go underutilized for extended periods of time. The cost savings using this model could be significant.
Amazon’s Werner Vogels said, "Before, your servers were like pets. If they became ill you had to nurture them back to health. Then with cloud they were cattle, you put them out to pasture and got yourself a new one. In serverless computing there is no cattle, only your application. You don’t even have to think about nurturing back to health or getting new ones, all the execution is taken care of.”
How does it work?
Working in a serverless environment does require some changes to your applications to run on this new platform service. Therefore, the best place to initially deploy this technology is for new applications. Existing enterprise applications will need to be retrofitted to benefit. Like any other new technology, start small and simple and get that first win.
The big players in this space are Amazon, Google, and Microsoft. Once the relationship is established with these vendors, when a new serverless function needs to be created, it happens automatically in usually a few seconds, sometimes milliseconds.
Benefits
Your CFO will like this. Serverless computing could dramatically lower your operational costs. With an on-premises technology footprint, you are required to expend large corporate resources on hardware, software, support, and staffing resources. In a cloud environment (Infrastructure-as-a-Service or IAAS) these CapEx costs are driven down significantly as you are basically “renting” your platform from the cloud provider. You still need to specify what and how much resource is needed. Serverless computing takes it to the next level by allowing you to take advantage of the cloud platform and resources, but on a pay-what-you-use model. It takes the guesswork and risk out of over- or under-allocating cloud resources at the start.
Another area of savings is operations staffing. With the task of server setup, configuration and tuning from a cloud provider, your internal resources can be redirected to more value-added activities.
There is also increased benefit and resource savings from your development team. Your developers can focus on their code functionality and not worry about competing hardware resources. This could lead to higher quality products in a shorter period of time, not to mention reduced development costs. Think speed to market.
Drawbacks
Performance may take a hit in this environment for long-running applications. The reason is, with serverless computing the latency times are greater.
Debugging your applications in this environment can be more difficult. This in turn may drive up your development costs and add burden to your developers. I believe these are offset by the benefits.
There have been reported issues with API’s from some third parties. As this is a fairly new deployment model, not all vendors have made the necessary enhancements to ensure their products work on this platform.
Your development and operations staff will need training on this platform in terms of how it works, how to deploy, and how to sustain an optimum environment. Yes, I believe this is a cost-efficient option but it is not totally hands-off.
Summary
Serverless computing has tremendous potential not only for operations and infrastructure, but the cost savings in asset acquisition and resource savings could easily justify the move. My recommendation is to start small with a minimal viable product (MVP) and see how it performs. From this you will be able to project potential savings for larger deployments.