Serverless Computing
Explore the concept of serverless computing and its role in system design. Understand how serverless platforms handle server provisioning, scaling, and maintenance, allowing developers to focus on coding without managing infrastructure. Examine the benefits, including cost efficiency and automatic scaling, as well as potential challenges like cost predictability and vendor lock-in.
Working with servers
Suppose you spent some time learning to code, and you developed a great website over a number of months using the best technology. It works great on your browser (localhost). It’s time to deploy it to a server. Except that the only problem is… you don’t know anything about servers or web hosting.
The problem: provisioning servers
Suppose you have your own server with a website deployed to it. You have the necessary skills and time needed to run it.
But what happens when you only get a few visitors a day? It just sits there idle most of the time, consuming resources. This is called over-provisioning.
What if the opposite happens? What if your website goes viral and you start getting millions of visitors overnight? Your server may not be able to handle all the extra traffic! It may result in the server crashing, and the website being unavailable. This is called under-provisioning.
Also, it’s quite common for websites to have visitors during a certain time of day, month, or year, and not many at another.
The problem: scaling
Educative, for example, usually has a lot of traffic on the weekends, when developers have time off ...