CLOUD COMPUTING SEMINAR REPORT
TOPIC NAME: SERVERLESS COMPUTING
Team Members (Div:B):
11. Prathmesh K. Chaure
18. Nilesh M. Gaikwad
20. Yogesh Y. Gavit
39. Vaibhav M. More
Index
Sr No Title
1. Abstract
2. Introduction
3. Literature Survey
4. Architecture of Serverless Computing
5. Conclusion
6. Acknowledgement
7. References
Abstract
Serverless computing is a cloud computing execution model in which the cloud provider
dynamically manages the allocation and provisioning of serverless resources based on
demand. Serverless computing removes all infrastructure management from developers.
Allows them to focus on building and deploying applications without worrying about servers,
scaling or performance. Serverless computing is applicable to a wide range of domains it
includes web applications, IOT applications, event-driven applications, Serverless API etc.
Serverless computing is typically implemented using a variety of technologies it includes
Functions, Containers, Event-driven architecture etc. Serverless computing can be used to
build a variety of applications such as web applications, event-driven applications, serverless
API etc. Serverless computing is a powerful cloud computing execution model that can be
used to build a wide range of applications. So, it is important to be aware of the limitations of
serverless computing before using it to build production applications. Server less computing
have limitations includes cold start slow when a serverless function execute first time it may
take some time for the function to start up, it is stateless we cannot monitor entire states of
functions of the application etc. If serverless computing is a good fit for your application, it
can offer a number of significant benefits. Serverless computing is a rapidly evolving
technology, and new features and capabilities are being added all the time.
Keywords: Serverless, Serverless APIs, Scaling, Function, Container, Event- driven.
Introduction
In recent years, the landscape of cloud computing has witnessed a seismic shift with the
emergence of serverless computing, a dynamic execution model that is reshaping the way
applications are built and deployed. Serverless computing, as the name suggests, frees
developers from the traditional burdens of server management, provisioning, and scaling.
This paradigm shift allows developers to focus solely on writing code and creating
applications, while relinquishing the responsibility of infrastructure management to the cloud
provider. In this paper, we delve into the foundational principles, operational mechanics,
compelling benefits, and diverse use cases of serverless computing, as well as its potential to
revolutionize the cloud computing domain.
Serverless computing fundamentally upends the conventional approach to deploying
applications by enabling developers to build and run applications without the need to
explicitly manage servers. This is made feasible through the implementation of a function-as-
a-service (FaaS) model, where developers craft code that is executed in response to specific
events or triggers. Underlying this execution model is the cloud provider's orchestration of
the infrastructure, encompassing servers, storage, and networking resources, thus liberating
developers from the hassles of infrastructure provisioning and management. This model
epitomizes the essence of serverless computing, where the true focus lies in the functional
code, unencumbered by infrastructure considerations.
The architecture of serverless computing encompasses several key elements, notably the
Function as a Service (FaaS) model, which is the cornerstone of this paradigm. Additionally,
it includes Backend as a Service (BaaS) and event-driven computing, all of which contribute
to the efficient and agile execution of applications within the serverless environment.
Leveraging this architecture, developers can harness the benefits of event-driven execution
and build applications that seamlessly scale in response to changes in demand, without the
need for manual intervention in the infrastructure provisioning process.
The allure of serverless computing extends beyond its architectural elegance, offering a
plethora of tangible benefits to both developers and organizations. One of the primary
advantages is the reduction in operational costs, achieved through the pay-per-use pricing
model, where resources are allocated and charged based on actual consumption, rather than
continuously maintaining idle infrastructure. This leads to increased agility in application
development and deployment, as developers can swiftly iterate their code and deploy updates
with minimal friction, fostering rapid innovation and time-to-market. Scalability is another
forte of serverless computing, empowering applications to automatically adapt to fluctuating
workloads. Furthermore, the inherent reliability of the serverless model, with its built-in fault
tolerance and high availability, augments the robustness of applications deployed within this
framework.
The diverse applications of serverless computing span across a wide array of use cases,
underlining its versatility and applicability in various scenarios. For web applications,
serverless computing offers inherent scalability to handle variable levels of traffic, without
the need for cumbersome provisioning of resources. Event-driven applications, such as real-
time data processing and analytics, find an ideal architecture in serverless computing,
enabling seamless execution in response to dynamic triggers. Moreover, serverless
computing serves as a robust foundation for mobile backends, delivering scalable and reliable
services for mobile applications. For batch processing tasks like data processing and machine
learning, the serverless model provides a compelling platform for executing resource-
intensive workloads in a cost-effective and efficient manner.
serverless computing stands as a compelling and transformative cloud computing model,
offering a streamlined approach to application development, deployment, and execution. Its
ability to expedite application deployment across a diverse spectrum of workloads, from web
applications to event-driven workloads, mobile backends, IoT applications, and data
processing, underscores its significance in the contemporary cloud computing ecosystem. As
organizations seek agility, cost-efficiency, and scalability in their computing infrastructures,
serverless computing emerges as a formidable ally, poised to redefine the dynamics of cloud
computing and empower developers to innovate with unprecedented speed and efficiency.
Literature Survey
Introduction
Serverless computing has emerged as a groundbreaking cloud computing paradigm that
revolutionizes the way applications are built and deployed. This literature survey aims to
provide an in-depth understanding of serverless computing, its operational mechanisms,
benefits, use cases, and its impact on modern application development.
Serverless Computing: Conceptual Framework:
Serverless computing represents a cloud computing execution model wherein the cloud
provider dynamically manages the allocation of machine resources, liberating developers
from the burden of server provisioning and management. It leverages the concept of
functions as the basic unit of deployment and execution, enabling developers to focus
solely on writing application logic.
Technical Mechanisms of Serverless Computing:
Serverless computing is primarily implemented using the function-as-a-service (FaaS)
model, wherein developers write code that is triggered by specific events and executed in
a stateless and ephemeral environment. The cloud provider manages the underlying
infrastructure, such as servers and storage, allowing for seamless execution of code.
Additionally, the architecture of serverless computing encompasses backend-as-a-service
(BaaS) features and is inherently event-driven, providing a robust foundation for
application development.
Benefits of Serverless Computing:
The adoption of serverless computing offers several compelling benefits, including
reduced costs due to precise resource allocation, increased agility through rapid
deployment, scalability to effortlessly handle fluctuating workloads, and enhanced
reliability achieved through robust fault tolerance mechanisms.
Use Cases for Serverless Computing:
1. Web Applications: Serverless computing is well-suited for web applications due to its
ability to auto-scale in response to changes in traffic, thereby optimizing resource utilization
and cost efficiency.
2. Event-Driven Applications: Its event-driven nature makes serverless computing an ideal
choice for real-time data processing, analytics, and any workload that depends on
instantaneous responses to specific events.
3. Mobile Backends: With its scalability and reliability, serverless computing proves
advantageous in building and deploying mobile backends, catering to the dynamic and
diverse needs of mobile applications.
4. Batch Processing and Machine Learning: The serverless paradigm is also applicable for
batch processing tasks, data processing, and machine learning workflows, offering flexibility
and cost efficiency.
Architecture of Serverless Computing
What is serverless architecture?
Serverless computing is a model where backend services are provided on an as-used
basis. The serverless provider enables users to write and then deploy code without the
worry of the underlying infrastructure. So, when your business takes backend service
from a serverless vendor, you are charged on the basis of computation where you do
not have to pay any amount for server number and bandwidth. Since the model is a
part of cloud service, it stands true to its ‘pay-as-you-use’ essence, where developers
only need to pay for services they make use of.
The elements of serverless application architecture
Now that we have established that serverless computing is not entirely serverless, let us
look into its components that are a must-have for cloud-based application development.
FaaS solution – It is one of the most crucial elements of serverless computing
architecture. These functions make it possible for developers to build, run, deploy, and
maintain applications without thinking of server infrastructure.
Security token service – The serveless users make use of the API provided by the
providers to log into the system and use its many services. This serverless architecture
should be designed to make a security token for every user before the API access is
triggered.
Database – Even if the app gets developed and managed on a serverless computing
architecture, the data it has would need to be stored in a database. Thus, a robust database
becomes a major part of the architecture.
How does serverless work?
Developers depend on serverless cloud computing to work on specific functions. Thus,
the model is generally offered as Functions as a Service (FaaS). Here are the ways
functions are written and executed in serverless computing.
The developers write a function. This function typically serves a specific need within the
app code.
Developers then define an event. This event is what pushes the cloud service provider to
execute a function. Generally, HTTP request is used as a common type of event.
The event gets triggered. If the event is an HTTP request, the user triggers it through a
click.
The function gets executed. The cloud provider checks if the instance of the function is
already operating. If not, it kickstarts a new instance for the function.
The result gets sent to the user. The user gets the result of their function in the
application.
Real-world use cases of the serverless architecture
In order to truly understand the extent of serverless capabilities, it is important to know
how companies, across sectors, are benefitting from the technology.
Let’s take a look at a few.
Netflix
Powered by AWS Lambda, Netflix media encoding process has been automated by event-
based triggers.
The serverless architecture makes it easy to publish content as well. The media giant gets
hundreds of files from publishers every day, and every one of these files have to be sorted
and encoded before they are delivered to the user. For this, AWS Firebase creates and
pushes an event once the files are uploaded to S3 for calling the Lambda function. This
divides the video in 5-minute parts that are then encoded in 60 different streams needed
by Netflix. Finally, with the help of a number of events and rules, the final portion of the
video gets aggregated and deployed.
Additionally, the architecture is able to alert and shut down unauthorized access. Netflix
is also able to identify the reason for an issue when something is wrong, with the help of
Lambda’s continuous file verification.
Conclusion
serverless computing proves to be a transformative cloud computing model that offers
numerous advantages and benefits. By dynamically managing the allocation of machine
resources, cloud providers enable developers to focus solely on building and running
applications without the burden of provisioning or managing servers.
The function-as-a-service (FaaS) model, an implementation of serverless computing, allows
developers to write code that is executed in response to events, with the cloud provider
handling the underlying infrastructure. This architecture, along with the utilization of
backend-as-a-service (BaaS) and event-driven computing, provides increased agility,
scalability, reliability, and reduced costs.
Serverless computing finds its effectiveness in various use cases. It is particularly well-suited
for web applications, as it can automatically scale to handle fluctuations in traffic, optimizing
performance and cost-efficiency. Likewise, for event-driven applications, such as real-time
data processing and analytics, serverless computing offers the ability to handle rapid and
unpredictable workload spikes effectively.
Moreover, serverless computing enables the development of scalable and reliable mobile
backends, making it a favorable choice in the ever-evolving mobile app landscape.
Additionally, it proves beneficial for batch processing tasks, including data processing and
machine learning, by provisioning resources as needed, thus improving efficiency and
reducing processing time.
Overall, serverless computing emerges as a powerful solution that empowers developers to
expedite application development and deployment while benefiting from reduced costs,
increased agility, scalability, and reliability. Its versatility makes it a suitable option for a
wide range of workloads, encompassing web applications, mobile backend services, event-
driven workloads, IoT applications, data processing, and machine learning. As the field of
cloud computing continues to evolve, serverless computing offers a promising solution for
organizations seeking a flexible and efficient approach to application
development and management.
Acknowledgement
This execution model enables cloud providers to dynamically manage resources based on
demand, freeing developers from infrastructure management and allowing them to focus on
application development and deployment. By supporting a wide range of domains, including
web applications, IoT applications, and event-driven applications, serverless computing is a
versatile and powerful cloud computing model. Its implementation can involve various
technologies, such as Functions, Containers, and Event-driven architecture.
It's important to note that while serverless computing offers numerous benefits, including
scalability and reduced management overhead, it also has limitations. These include potential
issues with cold start times and the stateless nature of serverless functions.
Despite these limitations, serverless computing presents significant advantages for the
development of diverse applications. As this technology continues to evolve rapidly with the
addition of new features and capabilities, it is essential for developers to stay informed about
its potential and limitations when considering it for production applications.
References:
Books:
1. "Serverless Architectures on AWS: With examples using AWS Lambda" by Peter
Sbarski and Sam Kroonenburg.
2. "Serverless Computing: Design, Develop, and Deploy with Confidence" by Abhishek
Gupta.
3. "Serverless Single Page Apps: Fast, Scalable, and Available" by Ben Rady.
4. "AWS Lambda in Action: Event-driven serverless applications" by Danilo Poccia.
5. "Serverless Architectures with Azure: Design and build enterprise-ready serverless
applications" by Rami Vemula.
6. "Distributed Systems: Principles and Paradigms" by Andrew S. Tanenbaum and
Maarten van Steen.
7. "Cloud Native Patterns: Designing change-tolerant software" by Cornelia Davis.
8. "Microservices: Patterns and Applications: Designing fine-grained systems" by Chris
Richardson.
Websites:
[Link]
[Link]
[Link]
trends/
[Link]
[Link]