What is serverless computing, and why is it taking the cloud computing world by storm?
These are some of the great questions that we are asked on a daily basis at Koyeb! While answering these questions, we will discuss some of the core concepts that are vital for newcomers and engineers looking to keep pace with emerging cloud computing technologies.
This blog post is the first in our Serverless Series about serverless computing. If you want to learn more about how serverless technologies is changing the application landscape, be sure to check out the next blog post in the Serverless Series: Going Serverless: Implications, Benefits and Challenges.
In short, serverless computing means the fact of installing, maintaining, scaling, or upgrading servers is completely abstracted for the user.
Serverless is a significant evolution in cloud computing because users no longer have to manage the underlying infrastructure in order to scale their functions, containers, databases, and more; cloud service providers take care of this for them automatically and cost-effectively.
Above all, going serverless is a strategic decision with considerable benefits in the short and long term. Serverless is becoming the new standard to host modern and greenfield applications.
At the dawn of the computing era, those who wanted to leverage computing technology needed to buy, install, maintain, and upgrade their own physical servers - a very expensive and time-consuming endeavor.
Even with their high-cost, computing technologies increased efficiency by orders of magnitude, so firms began to transition to the digital era. Still, building a computing infrastructure required massive amounts of upfront investment in the form of time, manpower, and money. Best practices included investing in large computing infrastructures that your firm would grow into and owning enough servers to handle the occasional spikes in activity. This capacity over-provisioning was really inefficient with expensive servers idling most of the time.
Since the introduction of cloud computing in the mid-2000s, individuals and firms alike can outsource their computing infrastructures to cloud service providers (CSPs). CSPs provide and manage different levels of cloud computing services: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS).
IaaS, PaaS and SaaS are often represented as a pyramid as each of them provides a higher level of abstraction.
This outsourcing is a radical evolution in computing practices. Small and large companies alike can save incredible amounts of money, manpower, and time all while tailoring their computing infrastructures exactly to their needs and refocusing those resources back into their businesses.
Serverless computing is an evolution of cloud computing. In short, serverless computing means the duty of installing, maintaining, scaling, or upgrading servers is completely removed for the user.
In fact, the word serverless only makes sense from the user's perspective because the user no longer has to worry about managing the underlying infrastructure. Servers are still very much in the picture as servers perform the computing operations, but there is a responsibility shift: they are now maintained and provisioned by the cloud service provider.
The term serverless started to be actively used in the industry for mainstream computing and web applications in 2015, after the launch of AWS Lambda, a serverless Function-as-a-Service (FaaS) platform. Although FaaS is often associated with the serverless term, these two concepts should not be conflated. During the following years, a lot of other serverless services emerged, and the promise to reduce infrastructure complexity quickly enticed developers and companies.
Nearly all services can become serverless: compute, storage, database, messaging, and more. Indeed, there are already several different types of managed serverless services: Platform-as-a-Service (PaaS), Function-as-a-Service (FaaS), Container-as-a-Service (CaaS), and Database-as-a-service (DBaaS), just to name a few.
At its core, going serverless means outsourcing the work of managing your underlying infrastructure. It means no longer having to scale, operate, or update the servers that run your applications. Cloud service providers now handle these operations and offer them as a service.
Serverless technologies are possible thanks to a combination of several computer science advancements:
The AtLarge Research Team provides a good overview of the technological evolution that lead to serverless in Serverless is More: From PaaS to Present Computing, give it a read if you want to dive deeper!
We hope you enjoyed this short retrospective on the history of cloud computing and serverless. The next post in our Serverless Series is Going Serverless: Implications, Benefits and Challenges, which covers the production and business implications, benefits and challenges associated with going serverless.
Koyeb is a simple, developer-friendly serverless platform to deploy applications globally.
You no longer have to worry about operating, scaling, or provisioning the underlying infrastructure. Enjoy instant global deployment and high-performance for all your apps!
The Koyeb serverless platform enables native and effortless scalability all while combining the flexibility of PaaS with the performance and security of MicroVMs on BareMetal servers.
Koyeb users can connect their GitHub accounts to Koyeb to streamline and bolster the development of their applications with native continuous deployment and also deploy pre-built Docker images.
See the benefits of going serverless, get started with a free account today!
Here are some useful resources to get you started: