"Serverless" obviously doesn't mean that you don't need servers, so what DOES it mean?
Put simply, it means that you don't need CONSISTENT servers. You drop your code on the cloud, and the service hosting it will spin up resources on-demand and spin them right back down once your code is finished.
Trouble is, that comes with some pretty particular demands. Your app needs to be able to start from scratch and wind back down in an instant. You can't rely on the kind of storage or consistency that you might have on a traditional server - once execution's done, the application and all of its data are wiped out. All of this means extra planning and extra effort building your application. Worse than that, these kinds of applications have a tendency to spider out into other paid services - you may not need a consistent server to run the code, but that doesn't mean that you won't need one to host your database, your web pages, and plenty of other assets.
Why in the world would you build something with all these problems? Well, here's the kicker: you're only billed for what you use. A service like Microsoft's Azure Functions would charge you $0.20 per million executions of your code and $0.000016 per gigabyte-second for the memory usage on their service. Did I mention that the first million executions and the first 400,000 gigabyte-seconds are free? A serverless application could end up costing you nothing to run.
So this is the real value behind all the hype. It may not be wise to dive deep into serverless architecture for all of your projects, but if you keep it in mind then you could end up cutting some of your costs right down to nothing at all.
Sebastian Whalen, Software Developer Missing Link Technologies ltd.