The rise of serverless computing

Discover and understand the shift to serverless computing and its rise to prominence in the world of cloud computing. Explore the history, evolution, and benefits of serverless computing and gain insights into how it has revolutionized application development, scalability, and cost-efficiency. Learn about the major players and the use cases that showcase the power of serverless computing that enabled event-driven architectures and reshaped the developer experience.‍
July 22, 2023
Saurabh Dhingra

1. Introduction

In recent years, Serverless computing has been a buzzword and a game changer in cloud computing. The traditional approach of building and deploying an application involves a huge effort in setting up and managing servers. Serverless computing shifts the paradigm and focuses more on coding and business logic. The cloud provider takes care of infrastructure management and ensures efficient utilization, thereby eliminating manual efforts.

A study on the Serverless computing market states,

The global serverless computing market is expected to grow in the forecast period of 2023-2028 at a CAGR of 22.2%.

The most remarkable advantage of Serverless computing is its scalability. The elastic scalability provided by serverless computing allows businesses to handle any amount of workload-based traffic without worrying about infrastructure. Needs to eliminate the complexities in server provisioning, fast advancement in cloud computing technologies, and adoption of Microservices and IoT play a major driving factor for the rise in the Serverless computing market.

2. What is Serverless Computing?

Serverless Computing is a cloud computing model that helps developers to deploy and execute their applications without explicitly provisioning the servers. The cloud providers automatically manage the necessary infrastructure resources and execute the scaling up or down as needed. Serverless Computing provides Backend-as-a-service (BaaS) and Function-as-a-service (FaaS). 

BaaS provides integrations with other cloud services and various backend features such as storage, user management, databases, messaging systems, and authentication services. FaaS is a serverless approach that executes a code segment or a function independently. These functions are triggered by certain actions or events like HTTP requests, DB updates etc. FaaS is also known as “Event-driven execution” and interchangeably known to be Serverless Computing.

2.1 History and Evolution

  • In the early days of computing, traditional on-premises servers were used within every organization. With this computing model companies were responsible for procuring, managing and maintaining all server hardware and their related networking equipment. Due to this approach, organisations lacked agility and cost efficiency.  
  • Tracking back to the early 2000s, cloud computing and virtualization technologies started gaining traction, and this became the foundation of serverless computing. Companies like Amazon web services started offering Infrastructure as a Service (IaaS), which allows users to rent virtual servers on demand.
  • Next Containers as a Service (CaaS) laid the groundwork for serverless functions. It is a cloud computing model that deploys, manages, and scales containerized applications. It played a significant role in paving the way for serverless architectures. 
  • As the cloud evolution progressed, Platform as a Service (PaaS) was introduced and this made infrastructure management even easier by providing developers with a platform and runtime environment to deploy and run applications. A few examples are Google App Engine, launched in 2008, and Microsoft Azure App Service, launched in 2010.
  • In the early 21st century, the concept of Function as a Service (FaaS) was dominant. Amazon Web Services introduced AWS Lambda in November 2014, and this marked a significant shift in cloud computing. Other cloud providers, such as Microsoft Azure (Azure Functions) and Google Cloud (Google Cloud Functions) introduced their own FaaS offerings. 
  • The serverless computing ecosystem expanded continuously with cloud providers offering complimentary services like AWS API Gateway, Azure API Management, Google Cloud Endpoints and a lot more. The adoption of serverless architecture continues to grow in various domains like IoT, machine learning, event-driven applications, and a lot more.

2.2 Key Characteristics / Benefits

  1. No server management: As cloud providers take care of infrastructure management, Developers are free from operational tasks related to infrastructure, and they focus more on writing code and building business logic.
  1. Easy to Deploy: Deploying a serverless application needs very few steps, like uploading a few functions. The deployment management and server provisioning related to application deployment will be taken care of by serverless by itself. 
  1. Pay-per-use pricing model: Serverless Computing works on a “Pay-as-use” model, where users are billed as per the actual usage of the resources. This pricing model aids in cost optimisation and eliminates the need to pay for idle resources when they are not in use, as a result, businesses would see visible cost savings.
  1. Automatic scaling: The scaling of resources and automatic scaling up or down to meet the business needs are done by cloud platforms. They ensure that the application handles varying workloads without manual intervention.
  1. Low Latency: The cloud vendors might choose to run the requested application on the servers near the user's location. Thus, serverless work with low latency.

2.3 Serverless Platforms Providers

Cloud providers offer serverless platforms and services that allow developers to build and deploy applications without managing their servers. All providers have different features, pricing, and geographic availability. Listing below a few prominent serverless platforms and providers:

  • Amazon Web Services (AWS)
  • Microsoft Azure
  • Google Cloud Platform (GCP)
  • IBM Cloud Functions
  • Apache OpenWhisk
  • Oracle Cloud Infrastructure (OCI) Functions
  • Alibaba Cloud Function Compute
  • OpenFaaS
  • Cloudflare Workers
  • Netlify Functions
  • Vercel Functions

2.4 How to choose a platform?

Choosing the right serverless platform and provider that fits best with an application requires some key factor considerations. Many providers offer free tier or trial periods, which could be used to gain hands-on experience before committing to a specific platform. The foremost step is to study and determine the application’s objective or requirement and choose a provider that matches the requirements. 

  • Supported Programming Languages 
  • Integration with Other Services
  • Scalability and Performance
  • Cold Start Times
  • Vendor Lock-In
  • Pricing Model
  • Security and Compliance
  • Community and Support

3. Architecture and Design Patterns

3.1 Simple serverless architecture  

Serverless architecture is also termed Event-driven architecture. It makes use of functions or events and third-party services without the need to provision or manage underlying infrastructures. Sometimes, the name “Serverless” might be misleading to an understanding that the applications do not have servers or remove servers. 

The concept of "Serverless” involves the provisioning of servers for services that are managed by providers, allowing developers to operate without concerning themselves with server management. For them, it is as straightforward as embracing the notion of "Serverless."

The main aspects of serverless architecture are:

1. API Gateway

API Gateway is an important component in a serverless architecture. This acts as the entry point for any kind of client application to access and interact with the functions and microservices. It is also the centralised point to handle service requests and efficiently route them to appropriate services based on the rules. 

In most cases, the API gateway serves the following roles:

  • Centralised Endpoint
  • Security and Authorization
  • Rate Limiting and Throttling
  • Request Routing
  • Caching
  • Request and Response Transformation
  • Logging and Monitoring

Given below are a few examples of popular API Gateway services:

  • AWS API Gateway from Amazon Web Services
  • Google Cloud Endpoints from Google Cloud Platform
  • Azure API Management from Microsoft Azure

2. FaaS

Functions as a Service (FaaS) is the fundamental building block of serverless architecture. With FaaS, the application’s code is segregated into modular pieces based on the functions it is expected to perform. These functions will be triggered by an event like clicking an option in the web application. FaaS automatically manages the underlying infrastructure, scaling and execution of the functions based on the events or triggers.

A few of the FaaS platforms are:

  • AWS Lambda
  • Azure Functions
  • Google Cloud Functions

3. BaaS

BaaS is Backend as a Service, that offers various backend features like managing databases, file storage, and cloud hosting. Applications that have BaaS, will have to manage and maintain only the front end.

3.2 Workflow of simple serverless architecture

  • The entire application is segregated into small modules. Developers code and create a function to serve a specific goal or need of a module in the application. As in the picture, Function A, Function B, Function C, etc.
  • An event trigger or service request from a client occurs, which executes a function via the API gateway. A common example of an event trigger is an HTTP request.
  • Cloud providers check if any containers are allocated or operating for the function. In case if not allocated, a new container is allocated for the execution of the function.
  • Service response is sent back to clients.

4. Challenges and Limitations

Even though serverless computing offers numerous benefits, some challenges must be addressed to leverage its benefits effectively. Listed below are some of the most common challenges and limitations:

  • Cold start times: When serverless functions are triggered for the first time or after a certain period of inactivity, a delay is experienced. This delay might impact the response times.
  • Debugging and Troubleshooting: Programmers are clear about the underlying structure in a traditional system, and hence debugging is easy. However, debugging serverless functions is more challenging with limited information about the infrastructure. Also, reproducing an issue and troubleshooting is complex.
  • Scalability Challenges: Even though serverless functions take care of scalability, this might not be suitable for workloads that are consistently highly utilized or a long-running process. It is challenging to adapt an architecture for such a scenario.
  • Vendor Lock-In: Adopting a specific serverless platform results in vendor lock-in, which makes it challenging to switch providers or migrate applications to alternative architectures. Also, portability and flexibility are impacted due to custom code and platform-specific configurations. 
  • Security and Compliance: Serverless architectures require careful configuration and implementation to adhere to industry regulations and standards. It also introduces new security considerations like protecting data in transit, managing access controls, and a few more.

5. Serverless application areas

Serverless architecture is used in a wide range of industries as they are flexible, scalable, and cost-effective. Give below are commonly used areas:

  • Internet of Things (IoT)
  • Machine Learning and Artificial Intelligence:
  • Web and Mobile Applications
  • Security
  • Edge computing
  • Chatbots and Voice Assistants

6. Top 5 Trends in Serverless

1. Edge Computing with Serverless

  • Edge computing optimises resource usage by bringing processing closer to data sources, reducing latency. 
  • Combining serverless computing with edge computing enables faster response times and reduces latency by executing functions at the edge of the network.

2. Machine Learning and AI in Serverless

  • Integration of Machine Learning (ML) and Artificial Intelligence (AI) capabilities into serverless architectures allows developers to deploy and scale ML/AI models without managing the underlying infrastructure.

3. Serverless Security and Compliance

  • Serverless security and compliance focuses on securing serverless functions, addressing security concerns, and managing access controls and compliance requirements associated with serverless computing. It also ensures data privacy.

4. Containerization and Serverless

  • Containerization technologies such as Docker and Kubernetes are combined with serverless computing to offer a more flexible and portable approach on deploying and managing serverless functions.

5. Hybrid Serverless Architectures

  • This involves the integration of serverless components with traditional on-premises or cloud-based architectures
  • Hybrid serverless architecture provides a hybrid approach for organisations to leverage its benefits while accommodating existing infrastructure.

Each of these are trending aspects of the serverless computing landscape, showcasing its versatility and adaptability across various domains and technologies.

7. Conclusion

In the world of cloud computing, the rise of serverless computing has been a game-changer. Its event-driven architecture and pay-per-use model, help businesses leverage benefits like better scalability and cost-effectiveness compared to traditional models. With innovative concepts and supporting tools, a few limitations of serverless could be eliminated. As businesses increasingly adopt serverless architecture, the future looks promising with enhanced scalability and reduced operational overheads. In the coming years, the serverless computing cloud approach will be most common among businesses. 

FAQs

Q1. What is Serverless computing?

Serverless computing is a cloud computing model where application development is done without managing the underlying infrastructure. Developers combine client logic and third-party service to create functions known as FaaS, which is the most essential component of Serverless architecture.

Q2. Does low/no-code development along with Serverless computing aid application development?

Yes, developers can combine both concepts to build any complex application efficiently in very minimal time. Serverless computing refers to the cloud computing model where developers do not manage underlying infrastructure and cloud providers automatically allocate resources and scale up or down. Low/no-code development refers to building applications using drag-drop interfaces or pre-build modules instead of writing codes line by line. So, combining both will be a powerful way to build applications.

Q3. How does PaaS differ from Serverless computing?

Q4. Can a serverless architecture result in a greener environment?

Yes, Serverless helps not only in cost saving but also leads to a greener environment with efficient resource reallocation. The picture below states how a serverless reallocate servers to potentially save energy.

The current cloud computing model has many resources allocated, yet idle. The resources in use are scattered and keep the VMs active. The Serverless model shows how resources are efficiently reallocated. Here only a few VMs are active and others are suspended. In this way, Potential energy savings are carried out with Serverless computing leading to a greener environment.

Q5. What are the Key characteristics of serverless computing?

  • Event-Driven Execution
  • Scaling and Resource Management
  • Pay-as-You-Go Billing
  • Modularity and Microservice
  • Statelessness
Join the Uptut community to get the
latest insights straight to your inbox
Thanks for joining the Uptut family! Useful insights landing in your inbox real soon!
Oops! Something went wrong while submitting the form.
No spam ever, Read our Privacy Policy

All Categories

Invest in the latest workplace trend:
Upskilling
Get hands-on, personalised training for teams in DevOps, QA, Agile, Cloud, Data Science, Office Productivity and more
Get FREE 1:1 Consultation

We're always up-to-date on latest market trends.

So is our training curriculum.

Gain an edge in your industry by developing in-house expertise in latest
technologies with Uptut
Get started with FREE 1:1 training consultation
Thanks for joining the Uptut family! Useful insights landing in your inbox real soon!
Oops! Something went wrong while submitting the form.
No spam ever, read our Privacy Policy