From Cloud Computing to Serverless: The rise of new paradigms6 min
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.
Quick Refresher on the History of Cloud Computing
Pre-CC (Cloud Computing)
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.
Cloud Computing Emergence
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.
The Rise of Serverless
Serverless is a Broad and Global Term
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.
The Technologies enabling Serverless
Serverless technologies are possible thanks to a combination of several computer science advancements:
- Containers: The rise of containerized resources with improvements in core Linux cgroups feature, hardware virtualization and the Docker/OCI are core enablers, allowing efficient virtualization and abstraction of physical resources.
- Ability to host arbitrary code: The ability to securely host any code with isolation thanks to virtualization progress is essential to allow mainstream serverless.
- Distributed Computing: The increase in network bandwidth and reduction of network latency has enabled wider distributed computing adoption, which is essential to provide variable amounts of computing power, above the limits of a single physical server.
- Versioning, naming and discovery: The last decade has seen significant progress in continuous deployment technologies with improvements in versioning and service discovery tooling, increasing the capacity to deploy in a distributed environment.
- Events and message passing: Event-driven architectures are a significant enabler for serverless as tasks can easily be distributed and processing power can grow as requests come.
- Microservices: Creating small, specialized services is essential to provide the right amount of resources for each processing function.
- Autoscaling: Finally, autoscaling is a core component of serverless, which has itself been made possible by strong advancements in load-balancing and monitoring technologies.
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.
Deploy Apps with the Koyeb Serverless Platform
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:
- Koyeb Documentation: Learn everything you need to know about using Koyeb.
- Koyeb Tutorials: Discover guides and tutorials on common Koyeb use cases and get inspired to create your own!
- Koyeb Community: Join the community chat to stay in the loop about our latest feature announcements, exchange ideas with other developers, and ask our engineering teams whatever questions you may have about going serverless.
- Request a demo: Get a free tour of the platform and learn how the Koyeb serverless engine can serve you.