Serverless application - why and what?
What is a serverless application?
Serverless applications allow you to purely focus on your application its logic, without having to worry about: servers, server costs, downtime, and scalability.
This is because, there are no servers to maintain, operating systems to take care of, software to manage, or hardware to upgrade.
And, in addition, your applications have built-in high-availability and fault-tolerance. Fault-tolerance refers to the ability of a system (computer, network, cloud cluster, etc.) to continue operating without interruption when one or more of its components fail. Fault-tolerant systems use backup components that automatically take the place of failed components, ensuring no loss of service. You can really focus your energy on your core application logic and build your applications virtually (with high-availability) at any scale. Because of this, you really do have to worry about any servers or operating systems.
The benefits of serverless
Now let's take a look at the four main benefits of serverless.
First, as we discussed, there are no servers or operating systems to maintain. You don't have to manage any servers or even have to install an operating system or any other supporting software.
Second, it’s easy and efficient to scale. Serverless applications (or serverless architectures) can be scaled automatically, or at the most, with a few clicks to choose your desired capacity. Therefore, there is no need to create any specialized scalable architecture or designs.
Third, high-availability. Serverless applications have built-in availability and fault tolerance. So, you don't need to have any specialized infrastructure to make your applications highly available or fault-tolerant. All this is available to you by ‘out of the box’.
Fourth, and this is a big one, no idle capacity. You pay only for what you use and nothing more. For example, in the traditional architecture, you create a server with 200 GB of memory and you're using only 20 GB of it. However, you'll still have to pay for the 180 GB that you're not using.
But what is the sole focus of a serverless application (or architecture)? you pay only for what you use. So, if you're using 20 GB, you only pay for 20 GB. In addition, with AWS Lambda, which is the core component of Amazon's serverless platform, you pay only for the time your code runs (or the processing power). Therefore, you’re not charged if your code is not running. For example, if your code runs for 100 milliseconds you are charged only for that 100 milliseconds. That's a very fine-grained control and can result in substantial cost savings for you and /or your business!
Top 5 serverless hosting providers
While the technique is still in a pretty young and at an early stage, it is definitely operational. Find below the biggest and / or ‘best’ service providers.
- AWS Lambda
- Google Cloud Functions + Firebase
- Microsoft Azure
- Alibaba Functions
- IBM Bluemix/OpenWhisk