The term "serverless computing" sounds almost magical. After all, how can you run applications without a server?
Actually, serverless computing isn't really serverless. The approach aims to free enterprises from the care and feeding of on-site servers, transferring the responsibility to a cloud provider that will run the server and dynamically manage the allocation of machine resources.
A significant benefit of serverless computing is that it allows engineers to focus more on coding and less on operations, noted Mike Duensing, CTO of cloud application platform provider Skuid. "Instead of planning, monitoring, and managing the backend application infrastructure required to run your code, these functions are essentially owned by someone else to manage and operate," he explained.
Microsoft, AWS, Google, and many other cloud service providers are more than eager to take over the responsibility of running an organization's backend infrastructure. "Really hard to implement operational architectures, like auto-scaling, high availability, concurrency and even edge compute, are taken care of by serverless cloud providers," Duensing observed. Pricing by consumption means that customers only pay for productive metrics, such as the number of times a code runs, memory consumption and execution duration, without wasting money on idle time.
Serverless at work
Serverless computing is gaining a rapidly growing number of adopters. Dynatrace, a software intelligence platform provider, has used serverless technology for the last couple of years. "One of the biggest benefits of serverless computing is the low cost in terms of both [operational] costs and maintenance costs," explained Dynatrace software engineer Daniel Dyla. The promise of being able to scale up and down quickly, as well as the availability of event-driven invocations, also helped drive the company toward serverless. "These capabilities have really been instrumental in our ability to develop software intelligence that helps us internally manage and monitor our cloud environment and also provide the same kind of support for our customers," he noted.
Liberty Mutual Insurance is another serverless supporter. Numerous Liberty Mutual development teams are leveraging the approach to build applications, websites, and APIs. "This seems to be the current sweet spot for our teams," said Michael O’Reilly, technical architect at Liberty IT, the company's technology arm. "We also have teams that are adopting serverless for building out business capabilities on other customer channels, such as voice."
O'Reilly noted that serverless was instrumental in allowing Liberty to successfully develop a virtual assistant capable of handling many types of phone queries and other common interactions. "This implementation uses serverless technology that provides us with natural language processing (NLP) capabilities that we can use to design digital interactive conversations with our customers," he said.
While serverless offers many benefits, it also possesses some significant drawbacks. "Since there are no performance SLAs in serverless functions, they aren't typically used for high-performance, stateful applications," said Amir Jerbi, co-founder and CTO of serverless and container software provider Aqua Security. Also, breaking code into small pieces "creates an architectural and design overhead that requires both effort and knowledge that not all developers possess," he added.
Eliminating on-site servers doesn't mean that developers no longer have to pay close attention to application performance. "Some might assume that in the absence of servers to manage, there would be no concerns around application performance management or traffic steering," said Jonathan Sullivan, CTO of traffic and DNS management firm NS1. "In reality, these things are still critical to monitor and manage."
Starting with serverless is easy, Jerbi advised. He suggested identifying a specific portion of an application that requires quick, event-driven execution, and implement that code as a function. "Once you start, you’ll find additional areas where using functions will be beneficial," he said. "It's recommended to choose the cloud provider you prefer since there will be dependencies that will be difficult to port later."
Rapid prototyping can provide an excellent entry point into serverless computing—a chance to get started in a promising new technology. "Serverless computing, like cloud computing, can support agile development in new and transformative ways that give companies additional options for cost-effectively iterating and scaling from early development all the way to production," Sullivan noted.
Before transitioning to serverless, operations teams and engineers should thoroughly research and gain a solid understanding of what is and isn't possible in the new environment. "Any solution architecture must leverage serverless for what it's strongest for and not try to jump to the conclusion that it's a silver bullet for all backends because it's not," Duensing said.
Calculating the expense of transitioning to serverless, as well as estimating ongoing costs, is also important. "In many cases, serverless will save you money," Duensing advised. "However, using it in an inappropriate architecture may not."