Serverless technology has come to stay and many companies are rapidly getting on board. For example, BBC is moving their news sites to the public cloud and serverless. Read source here.
The reasons many companies are adopting the serverless mindset and architecture are quite simple.
A few years ago, a friend of mine and myself wanted to deploy an open source web platform for online content publishing and learning. To do this, we had to provision a virtual server with fixed CPU and memory capacities from one of the public cloud server providers. We had to login to the server, install dependencies, install and configure our application code. Every now and then when our code changed, we had to disrupt the service to redeploy our code. For a small project with very little number of requests, we had to pay a monthly fee based on the time the servers were up and running even if no requests were served. We had to think about the future of our project: what happens if we get more request that we can support? How do we scale our storage capacity? These and many more questions together with the cost of running a server all the time led us to abandon and tear down the project.
We then started looking for existing open-source learning management and content publishing platforms that could run solely on Amazon's serverless architecture. We found no such project and therefore set out to build our own and possibly the very first.
In doing so, we have found many advantages to going serverless for small to medium sized companies and even for large one.
These are a few of the benefits we have experienced on building a fully serverless learning and publishing platform on AWS.
Our main focus has been on designing our code to serve our customers We do not worry about the times when our user base will increase to the point where we cannot support their requests. We do not worry about the availability and performance of our service in the different regions of the world. We do not worry about the intricacies of managing and making maximum use of the servers on which our code runs. All of these are taken care of by Amazon Web Services with an infrastructure that auto scales, with availability across multiple edge locations. AWS CloudFront allows us to cache static assets to incredibly improve speed while AWS API Gateway can service over 10,000 requests per second. AWS S3 and DynamoDB gives gives us all the storage we need.
With a serverless architecture, you only pay for what you use. You do not pay for the numerous idle times that your applications receive no request. This saves you a ton of cost if your web platform does not receive requests every sub second.
Our cost is now proportional to the number of users on our platform and the number operations they perform.
AWS' lambda combined with their other serverless and pay-as-you-go services for storage, authentication, machine learning, analytics, gives us the scalability, availability, performance, security and unlimited storage capacity that we need at a very cheap price.
If you have any comments or questions on how to move your existing applications serverless or how to start going serverless with your new applications, then put them in the comments below.