Infrastructure As A Service (Iaas) : A Comparative Performance Analysis of Open-Source Cloud Platforms
Infrastructure As A Service (Iaas) : A Comparative Performance Analysis of Open-Source Cloud Platforms
Abstract—Recently, cloud computing has been recognized Examples of IaaS providers are Drop Box, Amazon EC2 and
as effective computing model, being adopted by both large S3, Google Compute Engine, Rackspace, IBM Smartcloud,
corporations as well as SMEs (Small and Medium Enterprises). GoGrid and Akamai [2], [12], [13].
Due to its on-demand provisioning nature number of cloud based In PaaS, CSPs offer the platform as a service where customers
services are growing gradually and rapidly. The availability of can develop and deploy their own applications using devel-
open-source cloud computing platforms plays a vital role to
enable researchers to go beyond state of the art for development
opment environment, application server technology, different
of cloud applications. In this paper, we have provided an overview supportive libraries and programming languages [1]. PaaS can
of cloud computing along with its services. We have presented be helpful where multiple clients use the same development
a comparative performance analysis of different cloud IaaS environment. Integration with the databases and web services
platforms while covering different aspects of their application through some standards is also a feature of PaaS. The testing
and service models. We have also proposed cloud test-bed using and the development can easily be automated for program-
open-source cloud platform. A comparative performance analysis mers in PaaS. The clients have full access and control over
of open-source cloud platforms will assist researchers to select an the tools and the developmental languages. PaaS provider’s
appropriate tool to validate their research and experimentation. examples includes Windows Azure, Google App Engine, Red
Keywords—IaaS, PaaS, SaaS, CSP, NASA, OpenStack, DevS- Hat OpenShift, Engine Yard, Heroku, AppFog, Caspio, MBaaS
tack, Oracle VM Virtual Box, Rally. providers and Aptana Cloud [12].
SaaS is a demand based application that are hosted, maintained
and managed by cloud service providers through a central
I. I NTRODUCTION
location. Examples of SaaS providers are Zoho, Google Docs
Cloud computing is a dynamic field with a lot of flexibility and Salesforce.com [9].
and availability of very economical and reliable on-demand In the remainder of this paper, Section II present a comparisons
computing resources. The consumer can simply connect any- of open-source cloud infrastructure platforms. In Section III,
time from anywhere to access all the resources that are implementation of cloud testbed are described. Performance
available through the cloud. These resources are managed and evaluation of two different OpenStack cloud implementations
utilized in a distributed manner. Cloud computing is a model as a testbed are presented in Section IV. The paper is con-
for enabling ubiquitous, convenient, on-demand network ac- cluded in Section V.
cess 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 II. L ITERATURE R EVIEW
management effort or service provider interaction [1]. Essential
A. Cloud IaaS Frameworks
characteristics of cloud computing are: on-demand self-service,
broad network access, resource pooling, rapid elasticity and Today, many cloud frameworks exist that are providing
service measurement [1]. IaaS for both private and public clouds. Several, frameworks
The main cloud computing deployment models are public, are available for this purpose including, Nimbus, Eucalyptus,
private, hybrid and community clouds [2]–[8]. By using these OpenNebula and OpenStack. A taxonomy is proposed on
models, cloud computing provides different services such as selected cloud providers and survey is also given in [14]. From
Infrastructure as a Service (IaaS), Platform as a Service (PaaS) our literature analysis, we have identified some well-known
and Software as a Service (SaaS) [1]–[4], [7]–[11]. cloud platforms that are providing IaaS. A brief overview of
In IaaS, Cloud Service Providers (CSPs) offer the infrastruc- these platforms is given below:
ture as a service where a set of virtual computing resources,
e.g. CPU, storage and network components are provided to the 1) Nimbus: Nimbus provides IaaS and it is divided into two
consumer [1]. Cloud users can deploy and run their own system phases that are: nimbus infrastructure and nimbus platform.
and the software applications using these virtual resources Nimbus infrastructure is providing IaaS implementation that is
[1] with access to the underlying hardware resources. The compatible for EC2/S3. While Nimbus platform is providing
clients of IaaS have a reliable control on their infrastructures. additional tools for simplifying the infrastructure management.
It is mostly considered for scientific cloud computing solutions • Virtual System Monitor (VWS):Used to monitor virtual
[15]. infrastructure.
2) Eucalyptus: Eucalyptus provides IaaS for private cloud. 7) XEN Cloud Platform (XCP): XCP is an open-source
It has following five components [16], [6], [17]: solution for server virtualization and cloud computing platform
includes the XEN hypervisor [24]. It doesn’t provide a com-
• Cloud Controller (CLC): It manages the virtual re-
plete cloud infrastructure solution, but it is helpful for cloud
sources.
management system [25].
• Cluster Controller (CC): It controls the execution of
VMs. B. Comparison of IaaS Frameworks
• Storage Controller (SC): It provides storage system In order to get comparison of these platforms, we have
which is called walrus. derived certain assessment criteria from different cloud fea-
• Elastic Block Storage (EBS): It provides Amazon EBS tures e.g. structure, supported cloud models and programming
semantics support. languages. To perform networking tasks in cloud computing
is also a significant part so it’s essential to understand which
• Node Controller (NC): It controls VM activities in- network service is offered in each platform. Another important
cluding VM termination and VM execution. aspect is to check these platform compatibility with other
hypervisors, and CSP’s as well as scalability, load balancing
3) OpenNebula: OpenNebula is an open source IaaS toolkit and fault-tolerance. In Table I, we have done some features
[18]. It can deal dynamic resource needs, snapshotting and live comparison that is derived from literature analysis [3], [4], [6],
migration [6]. It supports different access interfaces, including [15]–[18], [24]–[36]. The comparison provides the knowledge
OCCI service interface, REST-based interfaces and emerging and understanding which makes it much easier for users,
cloud API standards. developers and the administrator’s to choose the best suited
4) OpenStack: OpenStack provides IaaS for private and framework that is compatible for their environment. Therefore,
public clouds. OpneStack is a combination of multiple open- the presented review covers different characteristics and imple-
source projects to develop your own cloud infrastructure mentation aspects to help in developing better understanding
and it is initiated by Rackspace and NASA in 2010 [19]. of these platforms.
OpenStack main characteristics are: scalable, compatible and
flexible, and open source [13]. It exploits various open-source III. I MPLEMENTATION OF C LOUD T ESTBED
projects and manages both compute and storage resources in
the cloud [20]. OpenStack has mainly following components: In this section we have selected two of the OpenStack
Keystone (Authentication Service), Glance (Image Service), implementations i.e. deployment using DevStack and native
Nova (Compute Service), Neutron (Network Service) Horizon 3-tier OpenStack deployment. Many researchers use DevStack
(Dashboard Service), Cinder (Block Storage) and Swift (Object to quickly create an OpenStack development environment for
Storage) [21], [16], [22], [23]. experimentation, whereas 3-tier OpenStack implementations
are used for production of IaaS platform to implement as a re-
5) CloudStack: CloudStack originally developed by search testbed to perform a performance comparison analysis.
cloud.com in 2010 under GPL v3 license. In 2011, Citrix Using DevStack to substitute the OpenStack implementation
purchased Cloud.com and later on, in 2012, its license can produce different results using the deployment environ-
changed into Apache 2.0 when Citrix donated CloudStack ment. This comparative performance analysis will enable re-
to the Apache Software Foundation [16]. It consists of the searchers to understand this difference among both the options
following components [3], [16]. available for testbed deployment in terms of their performance
in lab environment for experimentation. Following tools are
• Pods: Hardware configuration into a form of clusters used to develop these testbeds.
and a pod can be consist of one or more clusters. - Cloud IaaS Platform: OpenStack and DevStack.
• Clusters: A group of multiple identical hosts and - Host OS: Ubuntu Server 14.04.
specifies for primary storage. - Hypervisor: Oracle VM Virtual Box.
• Primary Storage: Used in each cluster for host VM
IV. P ERFORMANCE E VALUATION
instances.
We have used Rally benchmark tool to measure the per-
• Secondary Storage: Used for VM images and snap-
formance of different cloud services to test and verify the
shots storage.
scalability of cloud. Although, DevStack is not applicable for
• Availability Zones: Used to represent geographical production environment, but if a user want to deploy a mini
locations which are helpful for VM allocation. private cloud to seek certain cloud performance tests, then
this work is beneficial for the purpose where user can get
6) AbiCloud: AbiCloud provides IaaS and mainly it con- an indication on how well these cloud platform services can
sists of following three components [3], [4]: perform in different environments and use-cases. Furthermore,
it will help the researchers to choose the right platform to
• AbiCloud Server: Used for computer management.
setup their testbed in order to validate their hypothesis. We
• AbiCloud Web Services (WS): Used to manage virtual have performed test using same scenarios configuration for
applications. both testbeds to generate the results.
Scenario 1: In scenario 1, we have run 100 iterations
with 8 atomic actions to measure certain keystone services
correctness and performance. As, shown in Figure 1, x-axis
represents number of iterations while the y-axis represents
the total duration times to complete the specific iteration in
seconds and maximum time is 64.95 (sec) in DevStack case
while 19.21 (sec) in OpenStack. As, this show that OpenStack
performance is much better than as compare to DevStack in
terms of keystone services.