Serverless computing not only benefits software teams by removing the need to think about hardware, but can also dramatically reduce costs. In the world of managing VMs directly, there is nearly always excess capacity in the system, which has a direct cost. Moreover, most IaaS vendors offer a discount for teams that enter into a contract to buy “reserved” capacity.
In the world of managing machines, this imposes an unwelcome burden on software teams: they must not only manage the machines, but also make bets about the kinds of capacity they will need for the next year and enter into long-term contracts with their IaaS vendor. If a team over-estimates the need, it wastes money buying reserved capacity that won’t be used. Conversely, if a team under-estimates the need, it has to pay full “retail” price to add capacity outside the contract. This financial gamesmanship is a well-known and unpleasant reality for people managing IaaS spend.
Serverless computing eliminates the need for such gamesmanship. In the serverless world, the team just uploads code, and there is no need to think in advance about capacity or make years-long server reservation contracts.
The cost savings here can be dramatic. In our own experience, we’ve seen projects costing $5,000 a month on reserved VM instances go down to closer to $200 a month in fees for the serverless computing model.
Another area of cost savings and increased efficiency is scale. Returning to the redeye removal application: with a standard IaaS, a developer codes the application, tests it on a local computer, rents a server from an IaaS provider, makes sure the server has all the recent patches (an ongoing requirement), and then starts planning strategically, fiscally, and contractually for scale. With serverless computing, the vendor publishes an API that allows the developer to upload the function, and the vendor handles all the server maintenance and scaling. The vendor then provides a URL for the user to access the application. That’s it.
Given its simplicity and cost savings, serverless computing would seem to be the ideal development environment, but there are some important considerations to note. First, you need to place a lot of trust in the vendor. The benefit of serverless computing is that you don’t have to sweat the details; the downside is that you don’t know anything about the details. You must have confidence the vendor can instantly scale as needed without degrading performance.
So today, most organizations offering an enterprise-class, low-latency, high availability service may still prefer to manage their own servers, or at most reserve servers from an IaaS. For applications that don’t have such stringent requirements, serverless computing may already be a terrific, lower cost alternative.
Sign up for CIO Asia eNewsletters.