Serverless computing is a paradigm shift. Previously, we developed software and deployed software to servers. The code is stored and executed by a fully managed provider. There is little to no infrastructure– everything is managed through code or configuration. (See blog post What is Serverless Computing for more details.)
There’s a lot of talk on the internet of serverless technologies being a lot like a box of legos – you pick up the pieces you need, build quickly and capture the market quickly. This makes a lot of sense for a small company or for a startup trying to grow rapidly.
There are quite a few different reasons to consider using serverless instead of looking at building a monolith or building services in containers. These benefits are:
- Less Infrastructure
- Go Faster
- Pay for what you use
Serverless stills require servers – you just don’t manage them. Instead of spending thousands of dollars a month on having experts manage virtual servers or real servers you abstract that away and pay a cloud provider like AWS to handle and manage the servers and other resources.
Your development team uses a configuration language like Cloudformation, YAML, or Terraform to build the infrastructure that your software needs. Instead of worrying about provisioning additional capacity or dealing with load balancers – the cloud provider looks after most of this.
Providers manage the servers and other resources and price their services based on your usage. To save additional money it’s possible to reserve a particular amount of compute for each month. Some of the cloud providers will allow some pretty massive discounts if you are willing to pay a percentage up front. See blog Post AWS Tools to Optimize and Reduce AWS Costs for some ideas on how.
I haven’t ever worked for a small business or start up that said our developers need to work slower. Have you? Of course you haven’t.
By utilizing serverless developers are able to focus in a lot more on the business problems they need to solve and worry quite a bit less about the infrastructure problems. We are able to provision infrastructure automatically as part of our continuous deployment or continuous integration processes.
Pay for What you Use
With serverless, you pay for what you use. This means that your code costs nearly nothing if there’s no execution of the code occurring or if there are no log files being served.
For a small business or a small startup, it’s possible to reduce infrastructure costs by 70 to 90% because it’s not being used for a great chunk of the time. When it is being used, it’s often $0.20 or less per million requests.
Wrapping It Up
There are a lot of reasons to consider having a look at building new software with serverless technologies: automation and less infrastructure, and reducing what you are paying for.