One of the most common frustrations of software development has always been that too much time and resources are spent on implementing, maintaining, debugging, and monitoring servers and infrastructure rather than developing software that contributes directly to business goals.
The great promise of serverless computing is not that it completely removes servers from the picture, it’s that they’re someone else’s problem now.
Whereas before it was the responsibility of your business to provision and maintain servers to house your software – whether physically or in the cloud – serverless development does away with this need completely.
How? By breaking up software in to lots of small, self-contained pieces of code, called functions. Each function is uploaded to the cloud, where it waits to complete a specific function within your application.
For example, one function might lay out all of the logic for an email signup form. Once your development team has uploaded this function to the cloud it will stay dormant until a user visits your site and signs up for your email newsletter.
Only then will your cloud platform provider wake up your email signup function, which will then go about its business, calling on cloud-based authorisation services and writing to cloud-based databases and finally (hopefully) returning a success message to the user.
This is great for your development team. Not only do they not have to worry about provisioning the infrastructure for this new function, they only pay for each time that a user tries to sign up for your newsletter and the cloud provider spins up that specific function. Pay-as-you-go computing!
Even better than that, by leveraging a whole host of cloud-based services, each function need only be coded to the bare minimum. No need to reinvent the wheel every time.