When we started to build the tech stack for Clappia, we went ahead with AWS EC2 servers to run all parts of our application. We believed that it was the most obvious choice at that time and probably the easiest and quickest to set up. But in the next few months, we faced quite a few challenges with this deployment model. So we decided to explore the Serverless model of computing. After that, we just kept going with Serverless and never looked back.
In this article, I’ve given a brief introduction of Serverless and explained why I think that all startups should use Serverless to set up their tech stack from day one.
What is Serverless computing?
Serverless computing is a model that allows us to deploy and run applications without going through the hassle of procuring and managing servers. In this model, there are no dedicated servers for any application. Whenever there is an incoming request for an application, certain server resources are dynamically allocated to that application and after serving the request, the resources are freed again. So customers pay only for the resources consumed during the execution of the request.
How should startups leverage the power of Serverless?
If you are starting up a tech-based business, you will need some place to deploy and run your application. The traditional way of doing that was procuring a physical server or a server on one of the cloud providers (AWS EC2, Azure VMs, Google Compute Engine, etc). You might need additional servers for hosting your database. You then push your code on the server, configure some ports on the server, and go live with your application.
Whereas in the Serverless model, you push your code to the Cloud Provider and they take care of deploying it with their Serverless products.
There are many benefits of the Serverless model, which startups should leverage from day one.
Cost By using Serverless, the cost is the most obvious advantage we get in our early days as a startup. In the traditional model, the servers that we provision will run 24x7, which means even if we are not getting a single customer request in a day (which is the case for many of us during the initial few months of operation), we still end up paying for the full capacity of the servers.
In the serverless model, we pay only for the requests that we serve. Even the databases follow the same model. We need to pay only for the number of read/write operations and the amount of storage we use, no pre-purchased capacities.
Almost all the top Cloud providers have similar pricing models - whether you take AWS Lambda or Azure Functions or Google Cloud Functions. So, for the initial few months of operation, when we don’t have that many customer requests, we can run our applications practically for free.
Clappia’s back-end extensively uses AWS Lambda, API Gateway, DynamoDb, and many other AWS products. Many of these provide free usage quotas every month. For example, AWS Lambda gives 1 million free executions every month forever, which is a significant cost advantage for a B2B product. This helped us save a lot of money in the initial few months and we spent it on our product development.
In the first year of operation, startups should focus mainly on implementing the business logic and releasing their MVP (Minimum Viable Product). But if we are managing our own servers, too many operational tasks come up - monitoring CPU/Memory utilization, restarting processes in case of any issues, fixing OutOfMemory Exceptions, fixing networking issues, etc. This creates a 20-40% operational overhead on the developers.
Startups don’t realize this when they begin, which leads to overall delays in getting their products live.
With Serverless, we almost never have to bother about the issues mentioned above. Developers can focus only on developing the core business logic.
By the start of 2nd year of operations of a startup, when the product is live and stable, it’s time for the startups to think about scaling up their applications. This is another major advantage of using Serverless. The Serverless model is inherently scalable. It takes absolutely zero hours of effort to scale up or down a serverless application. If the customer requests went up from a few hundred per day to thousands or even millions per day, the Serverless model will take care of allocating that many resources to our application.
A startup is always full of surprises. Initially, when we were closing deals at Clappia with just 5-10 active users, the EC2 servers were easily handling the load. Then one day we got a deal with more than 1000 active users and some of our APIs hosted on EC2 started giving performance issues. This was the time when we realized the challenges with the traditional deployment model and decided to set up the Serverless model. When we got the next surprise in the form of e-pass services during the CoviD-19 lockdown period in some states in India, the traffic to our application went up by more than 10 times the daily peak traffic. Applicants from across the country bombarded our services with e-pass requests. The platform was easily able to handle this increased load without any impact on the performance. We didn’t have to worry about the scalability aspect, instead we started to work on other platform features that helped during the lockdown period.
Simple releases for new geographies
We were losing deals from certain countries outside India because of the data restriction policies in those countries. These rules state that the data belonging to a country cannot be moved or stored outside that country. Also, if the users are in a geography that is far away from the hosted servers, all the web services will start to see higher latencies. This required us to set up our infrastructure in those countries as well.
To handle this scenario, in the case of traditional servers, we have to provision new servers closer to that geography, which means doubling the cost and operational overhead. But with the serverless model, we just need to enable our applications to be deployed in the new region. The Cloud provider will start allocating resources to our application in that region as well. And we start paying only when we start receiving a significant number of requests in that region. With the serverless model, we are now able to release our services in a new country with just a few days of effort.
Serverless is definitely going to be the future of all web applications. We realized the power of the Serverless model very early and that helped us utilize most of its benefits at Clappia.
Author Sarthak Jain, Co-founder & CTO of Clappia He can be reached at firstname.lastname@example.org.
We are building a revolutionary No Code platform on which creating complex business process apps is as easy as working with Excel sheets. Visit www.clappia.com to give it a try.