SC Chapter2023
SC Chapter2023
R. Krishnamurthi
Department of Computer Science and Engineering, Jaypee Institute of Information Technology,
Noida, India
e-mail: [email protected]
A. Kumar
School of Computer Science, University of Petroleum and Energy Studies, Dehradun, Uttrakhand,
India
e-mail: [email protected]
S. S. Gill (B)
School of Electronic Engineering and Computer Science, Queen Mary University of London,
London, UK
e-mail: [email protected]
R. Buyya
Cloud Computing and Distributed Systems (CLOUDS) Laboratory, School of Computing and
Information Systems, The University of Melbourne, Melbourne, Australia
e-mail: [email protected]
1 Introduction
Serverless computing eliminates the requirement for a dedicated server farm, making
it possible to manage enormous dispersed workloads. Large, geographically scat-
tered workloads may be managed using this kind of computing, eliminating the
need for a centralised data centre [1]. This computing method eliminates the need
to set up a specialised network of computers to coordinate the efforts of many
workers in different places. By using this technique, a cluster of computers is not
needed to handle globally distributed computations. In the computer world, elim-
inating servers has allowed us to manage massive workloads that are distributed
across several locations. It wasn’t possible until now to do this. Lambda, provided by
Amazon Web Services (AWS), is one of the most well-known examples of server-
less computing offered by a major cloud provider. This is the case, for example, with
cloud systems like Microsoft Azure and Google Cloud. The Google Cloud Platform
and the Microsoft Azure cloud storage service are two examples of where this kind of
technology is put to use. In this technology, large-scale computer systems provide a
substantial challenge that must be controlled when it comes to the process of moving
data from one function to another. This problem need to be addressed. The creation
of a possible solution is required for this matter.
The major advantages of serverless technology include [1–3]:
(i) This kind of computing is gaining traction in the corporate world because it may
relieve programmers of their server maintenance obligations. So, developers
may build and expand their apps without worrying about exceeding the server’s
resources. This paves the way for the development of innovative app features.
(ii) When it comes to assuring the continuous good company’s information
technology infrastructure, business executives often run across challenges.
Through the use of serverless computing, it is no longer necessary for program-
mers to manage the machines on which their programmes are executed. This
involves keeping an eye on the server, ensuring that the operating system is up
to date, and generating user accounts for all of the different user groups who
will be using the server.
(iii) The advent of cloud computing has made it possible to share software without
the need for a single centralised server. It frees up money that may be used
toward other endeavours, such as the development of a product that has a
greater capacity for usefulness and distinction.
(iv) Serverless cloud computing frees users from the obligation of managing their
own servers, enabling them to focus their attention where it will be of the
greatest benefit: on the development and improvement of valuable applications.
(v) As serverless apps make use of an architecture external to your company, you
can take advantage of only benefiting from the functions that you need to
develop it. It adapts to your budgets, since its functions scale according to the
number of requests that are made.
(vi) One company that provides this kind of technology is Amazon Web Services,
and one of the services it provides is called Lambda. With Lambda, you have
Serverless Computing: New Trends and Research Directions 3
the tools at your disposal to turn your ideas into applications that people will
find intuitive and easy to use. This is likely made possible by the presence of
in-app purchases, geolocation features, user-friendly file and photo sharing,
and maybe many more features. Now that serverless computing is a thing,
cloud-based IT service concepts that were previously unimaginable are within
reach.
(vii) To speed up the process of product distribution, you should attempt to spend
less time and effort on administrative responsibilities. Serverless computing
provides this opportunity.
1.1 Motivation
The serverless paradigm makes it possible to make software in many different ways,
which means it can be used in a wide range of high-performance, and always-available
apps. The growth of the Internet of Things (IoT) devices, online and mobile apps, Big
Data, and machine learning are just a few examples of the many different domains
where serverless computing is finding expanding usage. There are many more sectors
as well [3]. This is because serverless apps have their own specific needs, each of these
spheres will have its own set of nuances that set it apart from the others, improved
resource management practises that take into account this reality are necessary as
quickly as possible. A serverless architecture may be useful for workloads that often
expand and contract but still need a significant amount of computing power. The
concept that will drive the next generation of cloud computing services, known as
serverless computing, is garnering an increasing amount of attention. Even when
their functionality and popularity increase, it is essential for serverless systems to
keep the important qualities and characteristics that set them apart in the first place.
of the servers they make use of in their work. As a result, investing in DevOps is a
decision that will prove to be profitable, and using this strategy has the potential to
save costs associated with the investment.
This chapter is organized as follows. Section 1 introduces the background of
serverless computing, compares the features of serverless computing with tradi-
tional computing and discussed the need for serverless computing in present and
future. Section 2 introduces the important serverless functions, architectures and
computing feasibilities. Section 3 introduces the integration of serverless computing
with advanced technologies. Section 3 presents resource management in serverless
computing environments. Section 4 presents the integration of serverless computing
with other advanced technologies. Section 5 presents the open challenges. Section 6
discusses the future directions. Finally, the conclusion is presented in Sect. 7.
FaaS provides capability to execute the applications without dependent on any infras-
tructure and effortless managing of services to the customers. The key character-
istics of the FaaS includes (i) support for wide programming languages, (ii) no
overhead of administration, (iii) scalability and availability, (iv) APIs and Cloud
services based triggers for execution of codes. The conglomeration of “Functions as
a Service” together with the “Backend as a Service” leads to emerging of the server-
less computing. The leading Serverless solutions include Amazon Web Services
(AWS), Azure and Google Cloud [4].
Amazon Web Services: AWS is the top leading marketer of serverless products
and cloud space provider [5]. AWS cloud services provide developers to build and
execute their applications independent of infrastructure, and computing resources.
The basic functionalities such as traverse, deploy and publish of serverless appli-
cations within fractions of time. AWS allows developers to (i) incorporate multiple
serverless services and applications, (ii) customize the computing resources as per
the user requirements and (iii) integrate variety of serverless applications [6]. In addi-
tion, visual based workflow creation, coordination, inconnection between Lambdas
can be incorporated using AWS step functions.
Amazon provides several real time data processing solutions such as AWS Lamba,
Amazon S3, Amazon Kinesis and Dynamo DB. Amazon kinesis provides real
time streaming of data and data analytics. The Amazon databases supports NoSQL
database functionalities for two formats of data storage namely (i) key value model
and (ii) document type data. Further, AWS supports messaging services namely (i)
Amazon SNS for Publish/Subscriber and (ii) Amazon SQS for Message Queuing.
Figure 1 depicts the serverless computing based basic web applications and its
associated backends. Here, S3 can be utilized for web hosting, Lambda functions can
be used to data processing and Amazon API gateways for configure the environment
and Dynamo DB can be used for retrieving data.
Serverless Computing: New Trends and Research Directions 5
Fig. 1 Basic Amazon Web Services in serverless computing for web application
From developers point of view, Microsoft Azure provides several serverless frame-
work plugins. For example, Visual studio IDE framework permits developers to
incorporate various functions and logical applications according the user specifica-
tions and requirements. In addition, Azure SDKs support almost all major software
development platforms and programming languages.
Google Cloud Platform: GCP sets as the world’s third top player of serverless
computing [14]. The cloud function of GCP incorporates the event drive computation
on serverless platform. The object based storage is involved on the GCP cloud storage
units. The cloud datastores includes services such as NoSQL Database as a Service
(DBaaS). For real time storage of data from IoT edge devices, the GCP provides
Firebase Real time Database platform. In terms of security and privacy, Google
Firebase platform supports wide variety of authentication APIs and allows user to
customize their mobile applications. GCP provides visualization and management
of workflow through GCP FantasM platform. Google Cloud Endpoints and APIgee
API management allows developers to design, scale applications, predictive analytics
and deploy securely on unrealiable multiregional distributed environments [15]. GCP
enables to utilize intelligence through serverless machine learning using Cloud ML
Engine, vision processing through Cloud Vision API, Speech processing through
Cloud Speech API, Text processing through Cloud Translational APIs. Google Cloud
Function provides developers with coding event trigged applications, deploying,
management and operational infrastructure.
2. Resource scheduling is a major difficulty for both developers and cloud providers
or system owners since it involves effectively allocating workloads to host nodes
with the appropriate resources [16]. When the need for resources is greater than
the supply, scheduling also entails deciding which programmes will run first.
Even if the developer requires certain quality of service guarantees, the supplier
must prioritise resource efficiency [17].
3. The serverless architecture dynamically spins up environments and distributes
their resources to apps in response to incoming demands. This guarantees
increased efficiency and adaptability in the use of available resources [19].
Scaling at such a fine granularity necessitates the use of sophisticated and
dynamic resource scaling approaches to preserve the expected level of application
performance.
Using serverless computing has now become extremely prevalent for developing
cloud-native apps. When it comes to cloud computing, the serverless paradigm is all
about removing the burden of managing servers. Serverless computing is expected to
grow at a far faster rate than traditional cloud services since developers no more need
to be concerned about keeping up with infrastructure [3]. With serverless computing,
cloud service providers might have an easier time handling infrastructure manage-
ment and automatic provisioning. The amount of work and materials needed to main-
tain the infrastructure are cut down as well [20]. The goal of serverless computing is
to leverage the most cutting-edge serverless technology while minimising costs and
maximising returns.
AI is the potential of technology, so it’s no surprise that platforms are starting
to include it. Due to these AI-driven platforms, we’ve been able to make more
accurate, timelier decisions [21]. Their impact may be seen in the altered methods
of doing company, communicating with consumers, and analysing financial infor-
mation. Software engineers’ output and effectiveness are drastically impacted by
complex machine learning algorithms. However, most of the problems that program-
mers face may be solved by switching to a serverless architecture. By employing
a serverless architecture, both the machine learning models and their associated
resources may be controlled with more efficiency and precision. Thanks to this
architecture, programmers may be able to devote more time and energy to training
AI models and less to maintaining servers.
Building machine learning systems is often necessary when confronting diffi-
cult problems. They perform tasks such as data analysis and pre-processing, model
training, and AI model tuning [22]. Therefore, APIs should function without a
hitch. The usage of serverless computing and artificial intelligence can guarantee
the constant storage and transmission of data and messages. Since serverless archi-
tecture provides a number of benefits and advantages, it may be a good fit for machine
learning models. Almost no management is needed to support the operation of any
8 R. Krishnamurthi et al.
kind of application or back-end service [23]. The supplier of the underlying infras-
tructure efficiently distributes its own CPU execution power in response to incoming
requests of varying traffic loads [24]. The advantages of serverless architecture
[25–28] are as follows:
1. Serverless architecture enables usage-based pricing, so you’ll only ever have to
fork out cash for the services you actually need. Because of this, the pricing
structure is more adaptable, and the overall price is decreased.
2. Because of serverless computing, software developers may work independently
and quickly. Because of this, models are treated separately from other functions.
Activating this feature at any moment is completely safe and will not affect the
rest of the system in any way.
3. With the advent of the “pay-per-use” model, clients are charged solely for the
resources they actually employ. In serverless computing, you pay for the services
you employ instead of the number of servers you utilize.
4. Serverless computing eliminates the requirement for consumers to monitor and
maintain servers by making available back-end services on demand. Users of
a serverless service don’t have to worry about setting up or maintaining the
underlying infrastructure. When using serverless architecture, service providers
may easily scale up or down their bandwidth needs without making any changes
to their current infrastructure.
5. Serverless programmes have gained traction as a result of their inherent reliability
and fault tolerance. Because of this, you won’t have to build any services to
provide these capabilities to your application.
6 Future Directions
The following are promising future directions in the area of serverless computing:
1. Delay: Response time in a serverless architecture is the sum of request queuing,
resource setup, and function execution [31]. Although most independent func-
tions have execution duration that are less than a second, or of just few seconds,
the capability to keep low latency for function executions is a crucial challenge
in serverless deployments [32]. Since the time it takes to build up resources from
scratch during a serverless environment’s “cold start” is typically far longer than
the time it takes to actually run an application, this is the primary reason for
excessive delay.
2. Reliability: When anything goes wrong on a serverless platform, the platform will
often repeat the operation. In the event that a platform’s function execution fails, it
will, for instance, resubmit the request immediately [16]. It has been determined
that, especially when state management is employed via external storage services,
a retry-based approach to fault tolerance might still not yield right output. They
stress that precision may be compromised if a partially performed failure attempt
of the same execution is viewed by a parallel execution of the function [19].
3. Sustainability: Since serverless computing facilitates the on-demand provi-
sioning and release of resources utilised in the execution of functions, it has
been heralded in the sustainability literature as a key technology for advancing
green computing [33]. As a plus, the approach of invoicing per execution time
encourages programmers to reduce resource use and boost code execution speed.
Nevertheless, decomposing an app into functions and the practise of configuring
10 R. Krishnamurthi et al.
resources on demand are believed to result in extra delay and an execution cost,
both of which impact energy usage [34].
4. Utilization of Resources: Because of the granularity of the serverless billing
model, users are only paid for the resources their applications really utilise [17,
18]. However, the provider is still responsible for the whole infrastructure, there-
fore it is in the provider’s long term interest to move as many serverless apps as
feasible onto a single host. Unfortunately, performance suffers when there are
too many requests competing for a limited resource [31]. This is indicative of the
usual tension between the goals of suppliers and customers, who each want to
minimise costs while simultaneously maximising benefits [19, 30]. As a result,
it’s crucial to arrive at a mutually agreeable resource consolidation plan.
5. Security: The use of serverless computing has improved the safety of a variety
of different infrastructures and computer systems. For example, Bila et al. [35]
provide in-depth information about one method that may be used to secure Linux
containers. There are security solutions that can detect intrusions using serverless
services [35]. There are more solutions required than existing to secure sensitive
information that has been saved in the cloud. This is because advancements have
been made in serverless architectures. For example, advancements in authentica-
tion and authorization schemes, attacks against common execution environments,
resource exhaustion attacks, and privacy concerns are some of the challenges that
need to be addressed in future [1].
6. Lack of Tools and Paradigms: There aren’t enough tools available right now to
make serverless apps. This is a big challenge. Further, the use of insufficient
modelling paradigms, which in turn leads to the creation of incoherent method-
ology, directly contributes to a drop in the overall quality of the code that has
been written. Pérez et al. [2] made a new way to write code and middleware for
use with serverless apps. This method could help apps that don’t need a server.
Benchmark suites [1] are important tools that help people figure out how likely
it is that a new idea or concept will work. Thus, there is a need to focus on new
tools and paradigms for serverless computing and application development.
7. Price Standardization: The market for serverless computing services is now
controlled by several significant technology companies, each of which offers
its unique price tiers and feature sets. It is expected in future that there will be an
expansion not just in the number of companies offering serverless services but
also in the range of price choices that are available for such services. Both of these
trends are expected to occur shortly. The estimate provided by each company is
one-of-a-kind because it takes into consideration a variety of criteria, such as
the sort of platform it utilises, the history of client association, transparency in
service and the time of day when the request is made. This is because it may
be difficult to devise a pricing model for service providers, there is a need to
continue looking into the matter.
8. Data Sharing and Infrastructure Requirements: Serverless software is composed
of several distinct functions, all of which work together to provide the required
functionality. It will be necessary for the functions to have some means of inter-
acting with one another and transferring either their data or the condition they
Serverless Computing: New Trends and Research Directions 11
are now in for this objective to be realised. Thus, the first challenge that has
to be conquered is function addressing, and the second challenge that needs
to be conquered is intercommunication for functions. Both of these challenges
need to be solved. Additionally, data sharing and infrastructure requirements are
related to each other because of auto-scaling, short-lived functions, and expo-
nential growth in the usage of serverless services with an increase in the number
of function copies.
9. Other Challenges: Serverless describes a scenario in which an application may
scale automatically without adding additional servers. This goal may be achieved
by completing and delivering copies of the service offerings to the appropriate
customers. Given that there are no established rules for determining the places
where the real copies of functions are saved, there is no way to offer an answer
to this request as it is impossible to do so. Additionally, data caching, service
provider management, distributed processing with different modes of execution
and customized service scheduling are some of the other concerns that need to
be focused upon in detail.
7 Conclusion
This work looks at how serverless computing opens up new perspectives, termi-
nologies, architectures, service options and opportunities. Later in the work, the
possibilities, different points of view and recent developments are discussed briefly.
Initially, this work outline how the wide use of serverless computing technology has
opened up a world of possibilities. Next, this work discussed the open issues and
challenges that keep serverless services from being as good as they could be. After
the current problems are fixed, serverless computing is likely to become the most
popular way to do computing, overtaking cloud computing shortly.
References
27. Du D, Liu Q, Jiang X, Xia Y, Zang B, Chen H (2022) Serverless computing on heterogeneous
computers. In: Proceedings of the 27th ACM international conference on architectural support
for programming languages and operating systems, pp 797–813
28. Aslanpour MS et al (2021) Serverless edge computing: vision and challenges. In: 2021
Australasian computer science week multiconference, pp 1–10
29. Xie R, Tang Q, Qiao S, Zhu H, Yu FR, Huang T (2021) When serverless computing meets edge
computing: architecture, challenges, and open issues. IEEE Wireless Commun 28(5):126–133
30. Djemame K (2021) Energy efficiency in edge environments: a serverless computing approach.
In: International conference on the economics of grids, clouds, systems, and services. Springer,
Cham, pp 181–184
31. Gill SS (2021) Quantum and blockchain based serverless edge computing: a vision, model,
new trends and future directions. Internet Technol Lett e275
32. Baldini I, Castro P, Chang K, Cheng P, Fink S, Ishakian V, Mitchell N et al (2017) Serverless
computing: current trends and open problems. In: Research advances in cloud computing.
Springer, Singapore, pp 1–20
33. McGrath G, Brenner PR (2017) Serverless computing: design, implementation, and perfor-
mance. In: 2017 IEEE 37th international conference on distributed computing systems
workshops (ICDCSW). IEEE, pp 405–410
34. Hassan HB, Barakat SA, Sarhan QI (2021) Survey on serverless computing. J Cloud Comput
10(1):1–29
35. Bila N, Dettori P, Kanso A, Watanabe Y, Youssef A (2017) Leveraging the serverless architec-
ture for securing Linux containers. In: 2017 IEEE 37th international conference on distributed
computing systems workshops (ICDCSW), pp 401–404. https://doi.org/10.1109/ICDCSW.201
7.66