Keywords

1 Introduction

Cloud computing is a model for supplying sources, namely hardware and software, over the network and is widely spread. It utilizes pay per use billing model [1] to ensure provisioning of resources on demand. In the aforesaid provisioning, it unites the principles of grid computing and utility computing. Elasticity and scalability of infrastructure and ability to share same application with multiple customers are the prominent characteristics of cloud computing.

Categorization of cloud computing is as follows: IaaS supplying hardware facilities, PaaS providing prebooted with OS server facilities and SaaS providing applications user-centric in nature. The approach of cloud deployment also differs. CSP owns and set up public cloud, whereas private clouds are controlled only by single client. Applications based on outdated technology can be integrated by small and medium enterprises with applications based on cloud.

Cloud computing is defined as fifth utility in paper [2]. Comparison of cloud computing environment is given in paper [3,4,5,6]. Private cloud performance evaluation has been described in paper [7]. Discussion to evaluate clouds based on frameworks and parameters is done in paper [8, 9]. PaaS CSPs are detailed in paper [10]. Paper [11] showcases contrast between open-source clouds based on different service providers. But all of the aforesaid studies fail to give deep understanding of selection of cloud environment based upon requirement of client. Also, most of the studies earlier focus on IaaS.

In this paper, we have provided some part of the study of PaaS service providers as well. The factors that client must consider for the selection of cloud service include budget, expertise in IT, sensitivity of data and application and availability of infrastructure. The same can be used to choose appropriate CSP and cloud deployment model. The aim of this paper is to study various widespread cloud computing environments and as per the requirements of the client to suggest a suitable cloud environment. Services provided under IaaS and PaaS are discussed in Sects. 2 and 3. Recommendations with justifications for appropriate cloud environment are given in Sect. 5.

2 Infrastructure as a Service (IaaS) Cloud Computing Environment

Hardware resources including memory, CPU and bandwidth of networks are provided by IaaS. CSP owns and manages the resources. Resources are rented to the clients. There is flexibility to client for choosing framework, OS. By choosing IaaS, client gets to invest in other fields rather than infrastructure management. IaaS services can be classified as:

2.1 Computational Services

Resources that are essential, like CPU and memory, for execution of program, are provided by computational services in many ways as logical units. Hypervisor layer hides underlying hardware and introduces server virtualization. The host hardware is divided into virtual machines as logical units. Each virtual machine acts as an independent machine. Hypervisor isolates the VM which share the hardware of host machine. Virtualization-based instances can be opted by clients having single-tiered software application. Some CSP uses VMWare ESXi, and some uses open-source hypervisor.

For example, GCP [12] uses kernel VM. XenServer is supported by AWS [13]. A less complex option other than VM is the containerization-based approach’s practice. It divides user space in containers but uses host OS. OS instance is attached to a particular application in each container, thus, making it lighter than VM.

Docker [14], a runtime-based container service, is supported by most of the open-source cloud environments. Clients who develop granulated microservices-based applications can choose this.

Very few CSPs provide bare metal-based IaaS, like IBM. Flexibility is harnessed by the client but the client also gets the responsibility of administration of IT.

Preemptive VMs are offered at low cost but when the scarcity of resources is encountered, and instances having strict SLA require resources, then, preemption happens. This may lead the user to lose the work. Non-critical applications may use this.

Eucalyptus gives descent API with services of AWS, so it is easy to develop hybrid cloud. CSPs support migration of legacy applications on cloud, making them more scalable.

2.2 Network Services

Network resources consist of interface of network, bandwidth and some traffic dealing components, mainly middleware. Virtual networking is provided over physical networking, among VMs, by the service providers. VPN is used to establish network traffic isolation between different organization’s VM. A private network is created for the virtual machine that the organization of client uses. Machines can access each other only if they fall under same VPN, else they cannot access each other. This is used to ensure the isolation of application and data of various organizations in a shareable environment. Clients need VPN to establish secure inter-application communication if they work with workflow-based applications.

Content delivery network (CDN) is another major service that CSPs provide whose principle is to cache the web content near client on network edge point. This minimizes delay in loading web content. When the client sends request the first time, it is sent to the actual server. The server then responds whether the response can be cached or not. If the response is cacheable, then it is cached by the network edge node. So, if the same request is sent again, then, instead of the server giving the response, cache is used to send the response, this is how the response time is improved. Content delivery network benefits web applications with static content.

2.3 Storage Services

There are two types of storage provided by IaaS. They are block storage facility and object storage facility. In block storage facility, the structure of data is not considered and is stored in raw format. Block storage breaks up data into blocks and then stores these blocks as separate pieces, each with a unique identifier. A block is transferred only if it contains the part of file being requested rather than transferring the whole file. Some examples of block type storage are AWS’s elastic block storage, GCP’s persistent and OpenStack’s cinder service. Cold storage service is used to archive least frequently used data like videos and images. They offer low prices but have higher latency.

Another one is the object storage. Object storage saves data as of particular type like table of a database or a file; it is used when we need to store massive unstructured data. Some examples of object storage are OpenStack’s [15] swift, AWS’s S3 or GCP’s cloud storage. SAN-based block storage/NAS-based file system-based storage is offered by some CSPs like IBM, VMWare [16] and Microsoft.

3 Platform as a Service (PaaS) Cloud Computing Environment

Software frameworks, in PaaS, are used for easy deployment of applications by pretending them as an instance on hardware. The responsibility of application configuration and its installation is taken by the CSP. This ensures the concentration of client developer is only on development of application. In PaaS, the CSP like APP engine or Google can themselves own the hardware, or other IaaS providers might rent them like cloud foundry on IBM [17] datacenters.

Linux distributions and version of windows are supported by most of the CSPs. A vast range of languages used for programming like Ruby, Java, PHP, python, etc., are also supported. Mobile applications are also supported by providers, which use the features of cloud computing like massiveness and scalability. Google cloud platform [12] provides firebase framework, which is one among the examples.

CSPs provide database services for both structured and unstructured databases. Transactional data are managed by MySQL, SQL Server and PostgreSQL, which fall under the category of structured or relational databases. Big data, images and videos that are collected from different sources are stored using unstructured databases or NoSQL databases like MongoDB, Cassandra, HBase, etc. The increase in popularity of big data has introduced the use of unstructured databases. Latency of I/O operations can be reduced by using Redis, an example of in-memory databases.

Areas like IoT, ML and big data are witnessing an increment of demand of development of applications in the past one decade. Many CSPs keep this in mind and they provide platforms for the development and deployment of applications related to these fields. Frameworks like cloud-based Hadoop cluster are special framework which facilitates parallel and distributed processing which are map-reduce based. To process stream data, spark integrated with Hadoop is provided.

Many service providers provide ML-based APIs to develop ML-based application. APIs for image classification, NLP, text analysis are provided.

IoT cloud is a new concept which is the integration of IoT and cloud computing. For the development of IoT-oriented applications, software development kits of various languages are provided by many CSP. These include embedded C, Java, .net, etc. Message queuing protocols, for example, AMQP or MQTT are supported to ensure fault tolerance and reliability.

4 Software as a Service (SaaS) Cloud Computing Environment

User-centric applications are provided over the network by SaaS that are ready to use. Here, importance is given to user-based customization, convenient use, look and feel, etc. In SaaS, application development, its deployment and publication are the responsibility of SaaS providers. Frameworks and infrastructure that are related to an owner or ownership may be used by SaaS. For supplying the services, Facebook, LinkedIn, government offices and Twitter, that are social networking giants, use their own datacenters. SaaS providers that are small and medium-sized, guarantee scalability, availability and robustness by utilizing public IaaS and PaaS without straight investment in the aforesaid technologies. Public cloud service providers host the websites that offer courses and tourism. SaaS service model offers a vast range of services. Web-based applications are a majority of most of the applications. The management of exceeding application requests, upgradation of platform and security threats that are network based should be ensured by the SaaS provider.

5 Key Findings-IaaS and PaaS Cloud Computing Environments

As an IaaS client, one should note the following key points regarding CSPs.

Computational, network and storage resources are provided by AWS, GCP and Azure which provide huge service range. Bare metal servers are provided by IBM as part of IaaS. This supplies the client with the flexibility of choosing middleware components and hypervisors. This is useful for the client having skilled IT staff but low infrastructure. Deployment of private or dedicated cloud can be recommended on VMWare IaaS, but it is not feasible economically being licensed.

From the perspective of open-source IaaS providers, reasonable rates are provided by OpenStack. Client enjoys flexibility with full control, parallelly, it requires highly skilled IT staff. Eucalyptus can be a choice if in the future, hybrid cloud with AWS exists together. Other than OpenStack, no open-source IaaS support CDN services and cold storage.

As a PaaS client, one should keep the following pointed noted.

GCP and AWS are equally considerable for their offerings. Vast range of programming languages and database support are provided by both. They provide IoT-related machine learning application development frameworks. Microsoft Azure [18] supports most programming languages and database over PaaS, but has limited support for machine learning and IoT-related application. Third party cloud foundry framework is the base for IBM PaaS service. If PaaS cloud has to be built on third party infrastructure, then cloud foundry and open shift online can be considered as they support many languages and databases. If amalgamated with GCP or AWS or third party software is used, they can be used for machine learning, IoT domain services.

A chart representing the recommendation for various cloud environments according to the requirement set of the client is given below.

figure a

Here, 0 means the corresponding parameter for consideration is Irrelevant, whereas 1 represents that the parameter for consideration is Relevant.

6 Conclusion and Future Plans

If the client has infrastructure only as system parameter, for example, academic projects, then cloud stack [19]/eucalyptus-based in-house cloud is recommended as it is open source and easy to install.

If the client has technical expertise as system parameter, for example, academic projects, research projects, then open-source-based in-house cloud, GCP, AWS free trial offerings, preemptive virtual machine are recommended as they are economical and setup can be done on commodity hardware.

If the client has budget only as system parameter, for example, SME, startups, then GCP, AWS, Microsoft, cloud foundry-based PaaS services are recommended as they have less IT overhead due to ready to use instances.

If the client has budget and technical expertise as system parameter, for example, SME, startup, then AWS/GCP IaaS services are recommended as they provide scalable infrastructure on public cloud.

If the client has infrastructure and technical expertise as system parameter, for example, research projects, then OpenStack/OpenNebula [20]-based in-house cloud is recommended as they provide complex process to install but flexible framework.

If the client has budget and technical expertise as system parameter, with special domains such as big data, machine learning, IoT, for example, research projects SME, then GCP, AWS cloud-based PaaS services are recommended as they offer rich APIs and high-quality library-based service.

If the client has infrastructure, budget and technical expertise as system parameter, with sensitive data and critical applications, for example, research projects SMEs, then OpenStack/eucalyptus-based hybrid cloud is recommended as the private cloud is under client’ control.

If the client has budget and technical expertise as system parameter, with multiple legacy applications, for example, old corporates or organizations, then OpenStack/eucalyptus-based hybrid cloud or AWS/GCP using migration tools is recommended as hybrid cloud is cost effective.

Scalability, availability and supply of network-based resources on demand are ensured by cloud computing. Various services are provided by service providers under IaaS, PaaS and SaaS models. Services such as computing, storage and network resources are provided by IaaS CSPs, whereas the services such as offering development and deployment environment for software are provided by PaaS CSPs. Frameworks for new technology are also provided by PaaS.

As the CSP provides a widespread range of services, then, it becomes easier for the user to choose from. Clients can easily choose an appropriate CSP as per their requirement. We have given the justification for recommending different clouds to client according to our study. Open-source cloud frameworks can be easily used for academic and research projects due to being economical. Although, they have limitation of providing limited support to special purpose applications like machine learning, IoT and big data. They can be amalgamated with third party tools. Google cloud platform and Amazon web services can be chosen more adequately at an enterprise level as they provide services that are highly rich and comprehensive. They serve as public proprietary cloud providers. For hosting non-critical applications, applications, proprietary CSPs have introduced preemptive instances that are economical.

The study of geographical distribution of datacenters is intended as a future plan. The technical strategies of resources provisioning are also planned to be studied. This will further extend to dead balancing, auto-scaling to ensure scalability, availability and reliability.