2015 IEEE 6th Control and System Graduate Research Colloquium, Aug. 10 - 11, UiTM, Shah Alam, Malaysia
Cloud Computing: Vision, Architecture and Characteristics 1
2
Faraz Fatemi Moghaddam
Mahsa Baradaran Rohani
Department of Cloud Computing Nero Cloud Research Group Kuala Lumpur, Malaysia
[email protected] 3
Mohammad Ahmadi
Faculty of Computing Asia Pacific University of Technology and Innovations Kuala Lumpur, Malaysia
[email protected]
Department of Information System Universiti Teknologi Malaysia Johor, Malaysia
[email protected] 4
Touraj Khodadadi
Malaysia-Japan International Institute of Technology (MJIIT) Universiti Teknologi Malaysia 54100, Kuala Lumpur, Malaysia
[email protected]
Kasra Madadipouya
Faculty of Computing Asia Pacific University of Technology and Innovations Kuala Lumpur, Malaysia
[email protected]
impeding its development and have decreased the reliability in cloud-based environments and communications. According to the importance of cloud computing, this technology has been reviewed in this paper and concepts, architecture, opportunities and challenges of cloud-based environment have been specified during this review.
Abstract—Cloud computing is an unprecedented paradigm for hosting and delivering resources by providing on-demand services. The rapid growth of using cloud-based services in recent years is an impossible fact to be denied as it has increased the efficiency in accessing to shared pools of configurable computing resources. According to this rapid growth, it is anticipated that cloud computing will be the most important and challenging issue in IT industry. Therefore, the state-of-the-art of cloud computing has been surveyed in this paper that involves definition and essential concepts, architecture, models, deployment types, key technologies and characteristics of cloud computing.
II. DEFINITION The most acceptable definition of cloud computing was introduced by National Institute of Standards and Technology (NIST) [3]: “Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.” With respect to this definition, in this paper cloud computing has been defined differently: Cloud computing is a technology that uses the concepts of virtualization, processing power, storage, connectivity, and sharing to provide pool of resources, store and share them between various devices via a broad network (i.e. Internet) to offer on-demand services to end users in compliance with the concepts of isolation, security, distribution, and elasticity. Each concept in this definition has clarified one specification of cloud computing and has been explained as follows:
Index Terms—Cloud Computing, IaaS, PaaS, SaaS, Public Cloud, Private Cloud.
I. INTRODUCTION Cloud Computing is an emerging and unprecedented technology that has been introduced as the next generation of on-demand services over the Internet. This new paradigm uses the concepts of virtualization, connectivity, processing power, storage and sharing to store computing resources (e.g. networks, servers, storage, applications and services) and share them over the Internet [1]. The rapid growth of using cloudbased services in various industries and environments is an impossible fact to be denied as it has increased the efficiency in accessing to shared pools of configurable computing resources. This growth is the result of providing considerable advantages of storing and maintaining computing resources in unlimited storages with the most cost efficient method, business continuity and scalability [2].
•
Despite the benefits of cloud computing, there are some significant concerns for service providers and end-users to use this modern and powerful service. Accordingly, security and privacy concerns are the most challenging issues in cloud computing environments that have become the leading cause of
978-1-4673-6716-5/15/$31.00 ©2015 IEEE
5
1
Virtualization: Ability of virtualizing some parts into a singular wide-area resource pool is provided by a cloud. Both software resources (e.g. applications) and hardware resources are covered by this virtualization, that is the main difference between cloud computing and related technologies (e.g. grid computing) in this concept [4].
2015 IEEE 6th Control and System Graduate Research Colloquium, Aug. 10 - 11, UiTM, Shah Alam, Malaysia
•
Processing Power: In cloud-based environments processing power is centralized to provide an efficient access to pool of resources with the lowest rate of energy and cost.
•
Storage: One of the basic computational resources that is supplied by cloud service provider is storage. This storage hosts various resources such as applications and data.
•
Connectivity: Cloud-based services provide two types of connectivity: The first one is related to each layer of resources in a cloud, and the second one is established between users of a cloud service over the Internet [5].
•
Sharing: In cloud computing environments, there is no actual sharing of resources because of the isolation supplied through virtualization [4]. In fact, assigned resources are not shared in cloud-based service, whereas grid computing uses collaboration sharing.
•
•
III. NETWORK ARCHITECTURE In cloud computing environments, resources are accessible for users through a public network (e.g. Internet) or private network (e.g. dedicated links). Therefore, network architecture in cloud-based environments is one of the key points for providing this accessibility. Network architecture of data centers in cloud-based environments contains three major levels: core, aggregation, and access. These levels that have been shown in Fig. 1, include various switches for establishing accessibility to servers.
Pool of Resources: Establishing a pool of resources is the major obligation of a cloud. These resources can be storage, infrastructure, data, application, platform, or service.
•
On-Demand Services: According to the nature of cloud computing, IT resources should be provisioned for reserving or releasing by costumers as needed.
•
Elasticity: Assigning resources of the resource pool to costumers need to be done dynamically in a cloud. Therefore, elasticity should be supported by the resource pool to provide flexible provisioned IT resources [6].
•
Isolation: In cloud-based environments, isolating a service from other services contains security and performance isolation. This ability should be provided through establishing physical isolation by infrastructure service provider (e.g. various services need to be executed by using isolated network infrastructure and unique physical machines) [7].
Distribution: Cloud computing environments are globally distributed environments with various IT resources. Accordingly, cloud-based applications need to be decomposed to distinct components for providing the ability of distributing among resources [6].
•
Core: Consists core switches to connect to Internet or WAN via IP layer, establishing final aggregation point for the network, and managing aggregation switches to work together.
•
Aggregation: Includes aggregation switches that are also known as End-of-Rack (EOR) switches for accessing to other servers by establishing appropriate connections between each other and providing higher throughput and wider coverage.
•
Access: The connection between servers and aggregation switches is organized by Top-of-Rack (TOR) Ethernet switches in this level.
Servers are connected to access switches by physical Ethernet adapter and consist virtual switches and virtual machines. The traffic between virtual machines is switched by virtual switches in the servers that are implemented as a plug-in to the hypervisor. Furthermore, the traffic for connection to the external physical switch is aggregated by virtual switch [8] that has been shown in Fig. 2.
Fig. 1. Network Architecture of Data Centers in Cloud Computing Environments
2
2015 IEEE 6th Control and System Graduate Research Colloquium, Aug. 10 - 11, UiTM, Shah Alam, Malaysia
Fig. 2. Architecture of Server in Data Center
IV. CLOUD DEPLOYMENT TYPES Clouds are divided to four major types according to their deployment: public clouds, private clouds, community clouds, and hybrid clouds. These types have been summarized in Fig. 3, and described as follows:
Single Tenant
Multiple Tenants
Dedicated Hosting
Shared Hosting
Public Cloud
Community Cloud
Outsourced Community Cloud
Virtual Community Cloud
Private Cloud
Outsourced Private Cloud
Virtual Private Cloud
Fig. 4. Public and Private Clouds Infrastructure
B. Private Cloud When users outsource sensitive data is shared on public cloud servers, many challenges are grown especially for data security and access control. Hence, private clouds are introduced to enable cloud computing specifications in internal data centers of enterprises or users. In these types of clouds, upgrades, maintenance, and security are managed easier and the peak workload can be balanced whereas the overall resource utilization is kept high [10]. Border routers, firewall/IPS, and load balancers are some of the key features in the network architecture of private clouds that have shown in Fig. 4. According to the flexibility of public clouds and reliability of private clouds, Virtual Private Cloud is offered by public cloud service providers by isolating a part of cloud and making it available privately with shared hosting IT resources. Furthermore, Outsourced Private Cloud is offered when an external service provider hosts the private cloud exclusively it its data center. In these types of private clouds some IT
Hybrid Cloud
Fig. 3. Cloud Deployment Types
A. Public Cloud These types of clouds offer a shared hosting environment that is accessible for multi-tenants. Public clouds are typically available by a secured and restricted network connection (e.g. SSL) and provide on-demand pay-per-use services by an ideal pool of resources that is available for many costumers. Moreover, these cloud are not integrated with internal processes that are done by users, Thus, there is no restriction about rapid elasticity for public clouds [9] that has been shown in Fig.4. Despite the reduction of operation costs for users in public clouds, security concerns are the most challenging issues in these types of clouds
3
2015 IEEE 6th Control and System Graduate Research Colloquium, Aug. 10 - 11, UiTM, Shah Alam, Malaysia
resources may be shared by other subscribers and cloud is accessible through VPN to secure communication channel.
providing an opportunity to install independent OS, middleware and custom applications by subscribers. IaaS service providers offer public clouds (e.g. Amazon Elastic Compute Cloud – EC2), virtual private clouds (e.g. T-Systems) and implementation tools (e.g. vCloud, and OpenStack) for private clouds.
C. Community Cloud This type of clouds is developed when a cloud infrastructure is required for some collaborative organizations to store and share their data and functionality. Community clouds can be hosted in an isolated part of a public cloud (Virtual Community Cloud) or can be hosted in a data center of a third party enterprise (Outsourced Community Cloud).
B. Platform-as-a-Service (PaaS) A PaaS provides a broad spectrum of detailed applicationlevel services by offering an execution and development environment on top of a cloud infrastructure [12]. In fact, the cost and convolution of configuring, managing, and monitoring cloud infrastructure are eliminated and a platform for implementing and uploading custom applications by developers is established in PaaS. This type of cloud computing models enables appropriate isolation between costumers to authorize sharing resources in middleware layer while in IaaS cloud, pool of resources is in infrastructure layer [13]. Some of PaaS clouds offer a cloud execution environment for custom codes that are developed by customers (e.g. Google App Engine) whereas other PaaS clouds apply for a configuration before coding and permit customers to develop extensions for cloud-based software (e.g. Force).
D. Hybrid Cloud A hybrid cloud uses integrated hosting environments with different levels of security and privacy for sharing IT resources between numbers of subscribers. Accordingly, additional management functionalities need to be attached on the top on public or private clouds resource pooling. In fact, hybrid clouds provide an opportunity to enhance the rate of efficiency by optimizing available resources in public and private clouds. This feature increases scalability of resources by allocating, storing, and managing resources in this type of clouds.
V. CLOUD MODELS
C. Software-as-a-Service (SaaS) The highest level of cloud computing environment contains cloud-based applications. SaaS providers eliminate hardware installation, license payments, middleware configurations, system administrations for subscribers and enhance the acceleration of software installation, configuration, and customization for them [14]. Centralized management, data isolation, and united multi-tenancy are three major specifications of effective SaaS applications to handle service delivery, user customization, and user scalability [15]. Furthermore, a SaaS application consists domain container for wrapping applications from a single supplier within the shared platform and application integration for establishing appropriate communication at the same independent time [16].
Service Provider
User
The architecture of cloud computing environments is divided to five major layers: Physical Infrastructure, Virtual Infrastructure, Platform, Application, and Network.
VI. CLOUD COMPUTING CHARACTERISTICS
Fig. 5. Cloud Computing Models and Layers
Cloud service providers offer various models due to their considerable specifications. These specifications increase the efficiency and reliability in cloud-based services in comparison with other technologies. Typically, cloud computing characteristics are categorized to four main parts: Resource, Architecture, Service, and Economic. Each part is divided to several subsidiary features that have been defined as cloud computing characteristics.
According to these layers, three cloud computing service models have been defined to be provided for users: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), and Software-as-a-Service (SaaS). These service models have been shown in Fig. 5 and specified as follows according to layers of cloud computing. A. Infrastructure-as-a-Service (IaaS) An IaaS service provider invests on infrastructure, deploys and maintains them to offer physical or virtual hardware (e.g. storage, virtual machines, networking infrastructure, etc.) for elimination of initial investment installations effectively in subscribers business [11]. These provided infrastructures are accessed remotely or graphically as a major feature of IaaS cloud computing for configuring and monitoring resources and
A. Resource
4
•
Resource Sharing: In cloud-based environments assigned resources are not shared actually according to established isolation through virtualization.
•
Multi-Located Data Centers: One of the key features of cloud-based services is to use data centers in various
2015 IEEE 6th Control and System Graduate Research Colloquium, Aug. 10 - 11, UiTM, Shah Alam, Malaysia
locations to enhance the network performance, maximum service utility, and efficient localization [5]. •
non-cloud based service models due to the provided resource pools.
Resource Provisioning: The ability of dynamic resource provision and resource decommission according to the current demand is defined as one of the major specifications of cloud-based services. This ability decreases the cost of operations considerably [17].
B. Architecture •
Layer Based Responsibilities: The layer architecture of cloud-based services defines specific responsibilities and distinct objectives for the owner of each layer.
•
Network Access: Cloud computing resources and services are typically accessible by Internet. Hence, to a large extent the performance of access process is dependent on the performance of Internet Service Provider (ISP).
•
Operating System: One of the most important differences between cloud computing and related technologies (i.e. grid computing, cluster systems) is the ability of running multiple operating systems according to hypervisors (virtual machines) that are implemented in cloud-based environments [18].
•
Software Workflow: Cloud-based models don't need to accomplish the coordination of the services workflow and location due to its on-demand deployments whereas it's essential in related technologies to pre-define workflow of service because of their service oriented structure.
•
Service Level Agreement (SLA): Service management is a major feature of various cloud models that provides an opportunity for offering a service-driven operating model based on defined SLA. Quick Respond: Cloud service providers are able to respond rapidly once they are faced with expeditious changes in service demand according to their automated resource management feature. For example, virtual machines can be moved from nodes in the case of failure [1].
•
Support: According to the powerful infrastructure in cloud computing models, better support services can be delivered by service providers.
Lower Installation Costs: The cost of installation and testing infrastructure or software is decreased considerably in on-demand service models.
•
Maintenance and Upgrade Costs: Despite the extraneous expenses (e.g. backup, hardware and software removal) during maintenance and upgrade processes in traditional models, the costs of these processes are decreased or even eliminated in cloud computing models due to the lack of IT intervention.
•
Pay-Per-Use Pricing Model: The measurement of using IT resources in cloud-based services is settled according to the concept of pay-per-use. In fact, service-operating costs are reduced by utility-based pricing when customers pay for a service according to their usage. However, controlling these operating costs for costumers is a challenging issue in cloud computing environments.
Furthermore, the rapid growth of cloud computing has encouraged popular IT companies to introduce various cloudbased services. Some of the most demanded products have been compared in table 1. Regarding to this comparison, the most important difference between these products are related to their control interface, available runtime middleware, and database types.
ACKNOWLEDGMENT This work is supported by Nero Cloud Research Group (NCRD-14-AC-3650 Grant Scheme). We gratefully acknowledge the generous assistance provided by Dr. Pardis Najafi, Ms. Fatemeh Afsahi, and the bright memory of Dr. Enayat Fatemi Moghaddam.
D. Economic •
•
The rapid growth of using cloud-based technologies in various industries and environments is an impossible fact to be denied as it has enhanced the efficiency and reliability especially in recent years by providing significant opportunities. Appreciable attributes of this emerging technology have attracted many researchers, industrialists and investors, governmental and private companies, and IT service providers. Therefore, numbers of performed researches and manufactured cloud-based products are available now proportional to different requirements.
Security and Privacy: The ability of data isolation in cloud-based environments improves the security level in comparison with similar technologies. However, security is still one of the most challenging issues in cloud computing.
•
Power Consumption: Combined operations and shared resources reduce the rate of power consumption significantly and will conduct providers and customers one step closer to the concept of green IT.
VII. CLOUD COMPUTING IN REAL WORLD
C. Service •
•
Lower Service Delivering Costs: The cost of delivering services in cloud computing is significantly lower than
5
2015 IEEE 6th Control and System Graduate Research Colloquium, Aug. 10 - 11, UiTM, Shah Alam, Malaysia TABLE I. COMPARISON OF REPRESENTATIVE CLOUD-BASED PRODUCTS Company
Service
Class
Type
Definition
IBM
BlueMix
PaaS
Public
An open-standards, cloudbased platform for building, managing and running applications of all types.
Amazon
EC2
IaaS
Public
A simple web service interface for obtaining and configuring capacity with minimal friction.
Microsoft
Azure
PaaS
Public
Google
App Engine
PaaS
Public
SalesForce
SalesForce1
PaaS
Public
A cloud-based service for building, deploying and managing applications and services through a global network of Microsoft-managed datacenters. A cloud-based platform for developing and hosting web applications in Googlemanaged data centers. The Salesforce is a cloud-based platform that accelerates the development and deployment of applications.
Database
Runtime
Control Interface
SQL JSON ClearDB ElephentSQL MangoDB MySQL PostgreSQL SQL MangoDB Couchbase Server SAP HANA One Riak SQL MangoDB MySQL
Java Node Ruby
Web-Based Application API
Node Ruby Tomcat Lamp Django .NET Java PHP Node Python Ruby Java PHP Phyton
Web-Based Application API Graphical User Interface
Linkedin Expedia
Web-Based Application API Command Line
BMW Toyota
Web-Based Application API
Ravio Feedly
Ruby
API Graphical User Interface
Facebook Philips
MySQL PostgreSQL SQLite
Popular Customers Telerx
[10] Y. Jadeja, and K. Modi, "Cloud Computing - Concepts, Architecture and Challenges," in Proc. International Conference on Computing, Electronics and Electrical Technologies (ICCEET), Tamil Nadu, India, 2012, pp. 877-880. [11] N. Junath, and G. Shanmugarathinam, "A Cloud Service and Conceptual Modeling of IaaS," in Proc. IET Chennai 3rd International on Sustainable Energy and Intelligent Systems (SEISCON), Tiruchengode, India, 20112, pp. 1-4. [12] A. Lenk, M. Klems, J. Nimis, S. Tai, and T. Sandholm, “What’s Inside the Cloud? An Architectural Map of the Cloud Landscape,” in Proc. ICSE Workshop on Software Engineering Challenges of Cloud Computing, Vancouver, 2009, pp. 23-31. [13] O. Gass, H. Meth, and A. Maedche, "PaaS Characteristics for Productive Software Development: An Evaluation Framework," IEEE Internet Computing, vol. 18, no. 1, pp. 56-64, 2014. [14] B. Waters, “Software as a Service: A Look at the Customer Benefits,” Journal of Digital Asset Management, vol. 1, no. 1, pp. 32–39, January 2005. [15] L. Hancheng "SaaS Business Model for Software Enterprise," in Proc. The 2nd IEEE International Conference on Information Management and Engineering, Chengdu, 2010, pp. 604-607. [16] J. Espadas, D. Concha, and A. Molina, "Application Development over Software-as-a-Service Platforms," in Proc. The Third International Conference on Software Engineering Advances (ICSEA), Sliema, Malta, 2008, pp. 97-104. [17] M.D. Dikaiakos, D. Katsaros, P. Mehra, G. Pallis, and A. Vakali, "Cloud Computing: Distributed Internet Computing for IT and Scientific Research," IEEE Internet Computing, vol. 13, no. 5, pp. 10-13, September 2009. [18] R. Buyya, C. S. Yeo, S. Venugopal, J. Broberg, and I. Brandic, “Cloud Computing and Emerging IT Platforms: Vision, Hype, and Reality for Delivering Computing as the 5th Utility,” Future Generation Computer Systems, vol. 25, no. 6, pp. 599–616, 2009.
REFERENCES [1] M. Malathi, “Cloud Computing Concepts,” in Proc. 3rd International Conference on Electronics Computer Technology (ICECT), 2011, vol. 6, pp. 236–239. [2] M. Armbrust, A. Fox, R. Griffith, A. D. Joseph, R. Katz, A. Konwinski, G. Lee, D. Patterson, A. Rabkin, I. Stoica, and M. Zaharia, “A View of Cloud Computing,” Communication ACM Magazine, vol. 53, no. 4, pp. 50–58, April 2010. [3] T. Grance, and P. Mell. “The NIST Definition of Cloud Computing.” National Institute of Standards and Technology (NIST), Special Publication 800-145, September 2011. [4] L. M. Vaquero, L. Rodero-Merino, J. Caceres, and M. Lindner, “A Break in the Clouds: Towards a Cloud Definition,” ACM SIGCOMM Computer Communication Review, vol. 39, no. 1, pp. 50–55, December 2008. [5] Q. Zhang, L. Cheng, and R. Boutaba, “Cloud Computing: Stateof-the-Art and Research Challenges,” Journal of Internet Services and Applications, vol. 1, no. 1, pp. 7–18, April 2010. [6] C. Fehling, F. Leymann, R. Retter, W. Schupeck, and P. Arbitter, “Chapter 1: Introduction,” Cloud Computing Patterns: Fundamentals to Design, Build, and Manage Cloud Applications, Springer Press, 2014. [7] H. Raj, R. Nathuji, A. Singh, and P. England, “Resource Management for Isolation Enhanced Cloud Services,” in Proc. ACM Workshop on Cloud Computing Security (CCSW), Chicago, USA, 2009, pp. 77-84. [8] S. Azodolmolky, P. Wieder, and R. Yahyapour, “Cloud Computing Networking: Challenges and Opportunities for Innovations,” IEEE Communication Magazine, vol. 51, no. 7, pp. 54-62, July 2013. [9] P. Hofmann, and D. Woods, "Cloud Computing: The Limits of Public Clouds for Business Applications," IEEE Internet Computing, vol.14, no.6, pp.90-93, November 2010.
6