1 Security-Enhanced Cloud for Serverless Computing and Its Applications
L. Jerart Julus
National Engineering College
Krishnan Ayyappan
Amazon
DOI: 10.1201/9781003219880-1
CONTENTS
1.1 Introduction
1.2 Literature Survey
1.3 Architecture of Serverless Computing
1.3.1 Digital Asset Management
1.4 Centralized Servers to Multi-Layer
1.4.1 Search
1.4.2 Process Management
1.4.3 Job and Design Management
1.4.4 Client Management
1.4.5 Storage Management
1.4.6 Google Cloud Functions
1.5 Features Present in Cloud
1.5.1 Scalability and Elasticity
1.5.2 Provision for Own Service
1.5.3 Interfaces for Application Programming
1.5.4 Monitoring and Assessing Output
1.6 Providing Green IT
1.6.1 Sharing of Resources
1.6.2 The CodeQuality
1.7 Applications of Cloud Computing
1.7.1 Collaborationand Analytics in Real Time
1.7.2 Systems of Urban and Industrial Management
1.7.3 Science Informatics
1.7.4 Learning Computer
1.7.5 Intra-Communications and Exchange
1.7.6 Privacy and Defense
1.8 Conclusions
References
1.1 Introduction
Computing refers to the activity of building and benefiting from computing infrastructure. This includes the development of software, hardware, and the research of algorithms. In the last 10â15 years, a new model of computing, called âcloud computing,â has increased in usage and popularity [1]. Cloud is nothing but the collection of computing resources (such as powerful computers, servers, and so on) located in a particular place, which we call data centers. Unlike the personal computing environment, these data centers are owned by cloud service providers and not by the users themselves.
Cloud computing is the process of delivering the services (such as databases, storage, computing capacity, and so on) needed for software applications through the Internet [2]. The categories of cloud are public cloud, private cloud, hybrid cloud, and virtual private cloud. When cloud services are accessible by the public for their usage, it is called public cloud. For example, Google search engine, Gmail, Google Drive, and related services are hosted on the cloud and are available to the public. When cloud resources are set up for the use of a particular organization alone, then it is called private cloud. For example, a web application hosted on a universityâs server(s) to enable the students to see their assignments and scores. Hybrid cloud is a name given to the service which has the arrangement of public and private cloud [3]. That is, a set of non-critical applications/data will be hosted in public cloud. And the critical applications/data will be hosted in private cloud. In virtual private cloud, resources will be provisioned from a public cloud; however, access will be restricted only to the employees of an organization. So, virtual private cloud will be present inside the private cloud [4]. For example, organizations host their applications in AWS Cloud, Google Cloud Platform, Microsoft Azure, etc., but have restricted access to their employees alone.
Until the early 2000s, businesses had to spend a lot of money not only on buying expensive hardware but also on maintaining them. The introduction of cloud computing in 2006 was a breakthrough in the IT industry. Since then, cloud computing has revolutionized the entire process involved in setting up IT infrastructure for businesses [5].
Serverless computing enabled businesses to utilize the cloud to its fullest potential, thus taking server maintenance out of the picture. This helped in focusing on the product than spending time on setting up the infrastructure. Usage of multi-tenancy architecture helped optimize the costs involved in using the cloud [6]. (Multi-occupancy is an engineering design wherein a solitary occasion/piece of programming can have a large number of tenants. This is analogous to virtual hosting.) Cloud providers charge the customers only for what they use. This pricing model is very dynamic. For example, customers using the cloud for storage are charged for every gigabyte of data.
With the increasing usage (and demand) of cloud computing, companies such as Amazon, Google, Microsoft, Oracle, and so on brought up a business model based on it. That is, these companies started offering cloud computing resources and charge customers for using their infrastructure. As the basic setup can be completed within minutes, the services provided by these companies gained popularity [7]. Now, a lot of businesses/companies around the world use cloud computing to a greater extent due to its plug-and-play nature and its flexibility of accessing from anywhere. This has helped to continue operations during the pandemic situation, even when a majority (or all) of the workforce are working from home.
1.2 Literature Survey
Cloud computing is the process of delivering the services (such as databases, storage, computing capacity, and so on) needed for software applications through the Internet [8]. In cloud computing, the user/client, and the hardware on which the application is run are decoupled and can be accessed/utilized remotely. Usage of these resources is available on demand, and there are no upfront costs. You can pay for what you use (pay-as-you-go model) [9]. Upgrading or downgrading the cloud computing resources can be done with a few clicks. However, changing the hardware is almost impossible in server-based computing due to the costs involved in it. Traditionally, in server-based computing, applications will be run on a server (and not by the client machine) that is hosted on premises. User/client must connect to the server through intranet/Internet (mostly, intranet) to access the application/storage/compute capacity. Servers are very expensive than PCs/workstations. In addition to the hardware, you will have to spend on the server software too. Despite all these expenditures, servers become slow and incapable of running resource-hungry applications and do not last longer than 5â6 years, on average [10]. First, during the 5â6 years of usage, periodic checks, updates, and monitoring are a cumbersome task that requires IT expertise and time. In case of issues with the servers, the cost of fixing/replacing them is very high. Second, a single point of failure is created, as the same (or same set of) server(s) is used for storage, database, and compute capacity. The impact of server failure or data loss will be huge. Of course, creating manual backups or scheduling automatic backups is a solution. But this solution comes with additional cost, which adds up to the financial burden. Third, when all the application(s) are hosted in the on-premises server, troubleshooting the issues in the server requires manpower. That is, you will need to set up a dedicated IT team to take care of the troubleshooting and maintenance tasks [11]. Finally, the process of transitioning to a server-based network or to a serverless network from a server-based network is expensive and complex. Additionally, performing this migration without any downtime to the running applications is very difficult. Using serverless computing helps you overcome all these disadvantages/difficulties in running the application in a server-based environment. The major types of cloud computing are infrastructure as a service (IaaS), platform as a service (PaaS), software as a service (SaaS), and serverless. Using serverless computing, instead of running applications in their servers/workstations (server-based computing), they can be run on servers that are present in data centers of cloud service providers such as Amazon Web Services (AWS), Google Cloud Platform (GCP), Microsoft Azure, and so on. The term âserverlessâ is a misnomer, as the applications will still run on a server. But the only difference is that the user does not own, rent, lease, or purchase the server.
By choosing a serverless approach over other conventional approaches, you not only save a lot of money but also have the advantage of elasticity and increased productivity. (Elasticity is the ability of serverless systems to scale themselves in terms of processing power based on the needs [12,13]. For example, additional web server instances are created when the number of users accessing the website is more.)
1.3 Architecture of Serverless Computing
Serverless architectures try to improve the old-style customer worker structure by lessening handling load and permitting effective scaling. In general, the older method follows the clientâserver structure. This implies that a server is facilitated on a PC to convey the information with the clients and the rights of sharing are owned by the server itself. The important factors that have to be considered by the servers are load balancing and scaling [14]. The new method of serverless structure enhances scaling and handles load very efficiently.
The best example that can be provided for a server is of a food restaurant. The server who serves the food is capable of providing all the dishes ordered by the clients. The same method is followed by the server which has the capability to serve all the signals that are provided to it. The rights to serve and control over the signal are monitored by it. When the number of clients who visit the restaurant increases, the wait time increases, and the challenge to serve all the clients within a shorter period arises. Since the entire client population approach at the same time, there is a possibility of server overloading [15]. On the off chance that a server crashes under any circumstances, your whole site will crash and will become difficult for clients and service providers to access it. Numerous organizations commonly have their creation database put away on a similar server as their site, implying that if the server crashes you will likewise be not able to interface with their database. Serverless structu...