Understanding Cloud Computing Architecture
Understanding Cloud Computing Architecture
Cloud-Computing Architecture
4.1 INTRODUCTION
Utility-oriented data centers are the first outcome of Cloud-computing, and they serve as the
infra structure through which the services are implemented and delivered.
Any Cloud service, whether it is virtual hardware, development platform, or application
software, relies on a distributed infrastructure owned by the provider or rented from a third
party.
It can be implemented by using a datacenter, a collection of clusters, or a heterogeneous
distributed system composed by desktop PC, workstations, and servers. Commonly, Clouds
are built by relying on one or more datacenters.
A broad definition of the phenomenon could then be as follows: Cloud computing is a utility-
oriented and Internet centric way of delivering IT services on demand. These services cover
the entire computing stack: from the hardware infrastructure packaged as a set of virtual
machines to software services such as development platforms and distributed applications.
Cloud computing offers different types of services. The first type is called Infrastructure as
a Service (IaaS). IaaS means the cloud provider gives users access to virtualized hardware
resources like:
1. Full-Iaas
These providers offer both the physical infrastructure (servers, storage, etc.) and the
management layer (tools to control and allocate resources).
Example: Amazon EC2, Microsoft Azure Virtual Machines.
2. IaaS(M) Management only Iaas:
These provide only the management layer, not the physical machines.
This management layer can be used on top of another provider’s infrastructure.
Infrastructure as a Service (IaaS) mainly gives you the basic building blocks — virtual
machines, storage, and networks. It helps you design and manage system infrastructure, but
it doesn’t provide tools to easily build or deploy applications. To help developers create
and run applications, cloud providers added another layer on top of IaaS — this is called
Platform as a Service (PaaS). PaaS gives developers a development platform on the cloud.
This platform includes Web based interfaces, command line tools, and frameworks for
concurrent and distributed programming.
With these tools, developers can build applications directly on the cloud using APIs
(Application Programming Interface) provided by the cloud platform. These APIs are part
of the user-level middleware that interacts with the cloud services. For this reason, this
approach is also known as Platform as-a-Service (PaaS), because the service offered to the
user is a development platform rather than an infrastructure. PaaS solutions generally
include the infrastructure as well, that is bundled as part of the service provided to users. In
case of Pure PaaS, only the user-level middleware is offered.
The top layer of the cloud reference model represents services provided at the application
level. These services are known as Software as a Service (SaaS). SaaS provides ready-
to-use software applications to end users over the Internet. Users do not need to install or
maintain the software on their own systems. The software runs on cloud infrastructure and
is accessed through a web browser.
Infrastructure and Hardware as a Service solutions are the most popular and developed market
segment of Cloud computing. They deliver customizable infrastructure on demand. The
available options within the IaaS-offering umbrella range from single servers to entire
infrastructures including network devices, load balancers, database and Web servers.
The main technology used to deliver and implement these solutions is hardware
virtualization: single physical machine act like multiple “virtual machines” (VMs). Virtual
machines constitute the atomic components that are deployed and priced according to the
specific features of the virtual hardware: memory, number of processor, and disk storage.
IaaS/HaaS solutions bring all the benefits of hardware virtualiza tion: workload partitioning,
application isolation, sandboxing, and hardware tuning.
From the perspective of the service provider, it allows better exploitation of the IT
infrastructure, and provides a more secure environment for executing third-party applications.
From the perspective of the customer, it reduces the administration and maintenance cost as
well as the capital costs allocated to purchase hardware.
Types of VM setups:
• Bare OS VM: Comes with just the operating system; user installs software as needed.
• Prepackaged VM/Image: Already includes software stacks, e.g., Web servers,
database servers, or LAMP stack (Linux, Apache, MySQL, PHP).
In most of the cases, virtual machines come with only the selected operat ing system installed
and the system can be confi gured with all the required packages and applications. Other
solutions provide prepackaged system images already containing the software stack required
for the most common uses: Web servers, database servers, or LAMP 21 stacks.
At the top layer, the user interface provides access to the services exposed by the
software management infrastructure. Such interface is generally based on Web 2.0
technologies: Web services, RESTful APIs, and mash-ups.
Web 2.0 ap plications now allow developing full-featured management consoles
completely hosted in a browser or a Web page. Web services and RESTful APIs allow
program to interact with the service without the hu man intervention, thus providing
complete integration within a software system.
The scheduler interacts with the other components performing different tasks:
• Pricing monitoring component tracks the execution of each virtual machine instance
and maintains data required for reporting and analyzing the performance of the system.
• The reservation component stores the information of all the virtual machine instances
that have been executed, or that will be executed in the future.
• In case support for QoS-based execution is provided, a QoS/SLA management
component will maintain a repository of all the service level agreements made with the
users, and together with the monitoring component is used to ensure that a given virtual
machine instance is executed with the desired Quality of Service.
• The VM repository component provides a catalog of virtual machine images that users
can use to create virtual instances. Some implementations also allow the users to upload
their specific virtual machine image.
• A VM pool manager component is responsible of keeping track of all the live
instances.
• Finally, if the system supports the integration of additional resources belonging to a
third party IaaS provider, a provisioning component interacts with the scheduler in
order to pro vide a virtual machine instance that is external to the local physical
infrastructure directly managed by the pool.
The bottom layer of cloud computing is the physical infrastructure, which includes servers,
storage, and network devices. Large providers use massive data centers, while smaller
organizations or universities use clusters. Sometimes, a mix of resources like PCs,
workstations, and clusters is used to form a heterogeneous cloud environment.
In case of complete IaaS solutions, all the three levels are offered as service. This is generally
the case of public clouds vendors, such as Amazon, GoGrid, Joyent, Rightscale, Terremark,
Rackspace, ElasticHosts, and Flexiscale, who own large datacenters and give access to their
computing infrastructures by using an IaaS approach. Other solutions instead cover only the
user interface and the infrastructure software management layers. They need to provide
credentials to access third party IaaS providers, or to own a private infrastructure where the
management software is installed. This is the case of Enomaly, Elastra, Eucalyptus,
OpenNebula and specifi c IaaS (M) solutions from VMware, IBM, and Microsoft.
4.2.3 Platform as a Service
Platform-as-a-Service (PaaS) solutions provide a development and deployment platform for
running ap plications in the Cloud. They constitute the middleware on top of which applications
are built. A general overview of the features characterizing the PaaS approach is given in Fig.
4.3
The type of application development model used in PaaS determines what kind of interface
is provided to users.
Some PaaS platforms offer a fully web-based interface hosted in the cloud.
These platforms often use:
• 4GL (Fourth Generation Languages) and visual programming tools.
• Rapid prototyping methods — applications are quickly built by assembling mash-ups
and user-defined components.
Other PaaS systems provide a complete object model and allow developers to use traditional
programming languages like: Java, .NET, Python, Ruby, etc.
PaaS providers also supply: APIs and libraries for deploying and managing applications on
the cloud. Special components that help developers use platform-specific features effectively.
Some platforms offer a local testing environment that simulates the cloud. Developers can
test their applications before uploading them to the real cloud.
PaaS with Infrastructure (Hosted PaaS): The provider offers both the middleware and the
infrastructure (servers, storage, and network). Applications are developed and executed in the
provider’s datacenter. Example: Google App Engine, Microsoft Azure App Service.
Pure PaaS: The provider gives only the middleware software, which is installed on the user’s
own infrastructure (premises). The main value lies in the software platform used for developing
and deploying applications. Example: Red Hat OpenShift (on-premise version).
Some vendors offer both options — they host the PaaS in their datacenters and also allow
users to install the middleware privately.
Table 4.2 provides a classification of the most popular PaaS implementations. It is possible to
organize the different solutions into three wide categories: PaaS-I, PaaS-II, and PaaS-III.
• Everything is done through a web browser — designing, developing, and deploying the
app. You don’t install anything on your computer. The company (provider) gives both
software (middleware) and hardware (infrastructure).
• Examples: [Link], LongJump
These are made mainly for building and scaling websites. Developers use APIs and
programming languages like Java, Python, or Ruby. The platform automatically takes care of
scaling, security, and load balancing.
Examples: Google App Engine, AppScale (open-source version of GAE), Heroku, Engine
Yard
These platforms are used to create any kind of application, not just [Link] offer tools
and frameworks to build large business or enterprise apps.
Example: Microsoft Azure
There are some essential characteristics that identify a Platform-as-a-Service solution:
(As noted by Sam Charrington, product manager at [Link] )
(a) Runtime Framework. It represents the “software stack” of the PaaS model, and is the most
intuitive aspect that comes to the mind of people when referring to Platform-as-a-Service
solutions. The runtime framework executes end-user code according to the policies set by the
user and the provider.
(b) Abstraction. PaaS solutions are distinguished by the higher level of abstraction that they
provide. Whereas in the case of IaaS solutions, the focus is on delivering “raw” access to virtual
or physical infrastructure, in the case of PaaS, the focus is on the applications the Cloud must
support. This means that PaaS solutions offer a way to deploy and manage applications on the
Cloud rather than a bunch of virtual machines on top of which the IT infrastructure is built and
configured.
(c) Automation. PaaS environment automates the process of deploying applications to the
infrastructure, scaling them by provisioning additional resources when needed. This process is
performed automatically and according to the SLA made between the customers and the
provider. This feature is normally not native in IaaS solutions, which only provide ways to
provision more resources.
(d) Cloud Services. Cloud-Computing Architecture 4.9 PaaS offerings provide developers and
architects with services and APIs helping them to simplify the creation and delivery of elastic
and highly available Cloud applica tions. These services are the key differentiators among
competing PaaS solutions and generally include specifi c components for developing
applications, advanced services for application monitoring, man agement, and reporting.
One of the major concerns of leveraging PaaS solutions for implementing applications is
vendor lock-in.
• It means that once you develop and deploy an application using a specific PaaS
provider, it becomes hard to move that application to another provider later. This
happens because each PaaS provider uses its own tools, APIs, and runtime environment.
So, your app becomes dependent on that provider’s platform.
• In IaaS (Infrastructure-as-a-Service), you get a virtual machine — you can install
whatever software you like.
→ So, migration is easier.
• But in PaaS, the provider gives you a ready-made platform with a specific runtime and
APIs.
→ So, your app depends on their setup.
• If the provider changes pricing, stops service, or you want to switch,
you may have to rebuild or modify your whole application.
• This makes migration time-consuming and costly.
Vendor
PaaS Provider Type of Runtime Lock-in Explanation
Level
Difficult to move apps
[Link] Proprietary runtime High
elsewhere
Based on standard
Google App Engine / Easier to migrate, but
runtimes (Java, .NET, Medium
Microsoft Azure storage & infra are private
Python)
Appistry Cloud IQ, Easier to migrate to
Open standards Low
Heroku, Engine Yard another provider
SaaS is a software delivery model where applications are accessed over the Internet using a
web browser.
It provides a means to free users from complex hardware and software management by
offloading such tasks to third parties, who build applications accessible to multiple users
through a Web browser. Users do not need to install software or manage hardware —
everything is handled by the service provider. Customers pay subscription or usage-based fees
instead of buying software licenses upfront. They simply access the application Website, enter
their credentials and billing details, and can instantly use the application, which, in most of the
cases, can be further customized for their needs.
The SaaS model is appealing for applications serving a wide range of users and that can be
adapted to specific needs with little further customization. This requirement characterizes
Software-as-a-Service as a “one-to-many” software delivery model where an application is
shared across multiple users. This is the case of CRM and ERP applications that constitute
common needs for almost all the enterprises from small, to medium and large business. Every
enterprise will have the same requirements for the basic features concerning CRM and ERP;
different needs can be satisfied with further customization.
SaaS applications are naturally multi-tenant. Multi-tenancy, which is a feature of SaaS
compared to traditional packaged software, allows providers to centralize and sustain the effort
of managing large hardware infrastructures, maintaining and upgrading applications
transparently to the users, and optimizing re sources by sharing the costs among the large user
base. On the customer side, such costs constitute a minimal fraction of the usage fee paid for
the software.
The acronym “SaaS” was then coined in 2001 by the Software Information & Industry
Association (SIIA) [32] with the following connotation:
“In the software as a service model, the application, or service, is deployed from a centralized
data center across a network – Internet, Intranet, LAN, or VPN – providing access and use on
a recurring fee basis. Users “rent”, “subscribe to”, “are assigned”, or “are granted access to”
the applications from a central provider. Business models vary according to the level to which
the software is stream lined, to lower price and increase effi ciency, or value-added through
customization to further improve digitized business processes.”
Before SaaS became a widely used term, there were Application Service Providers (ASPs).
ASPs were early versions of delivering software as a service, sharing some core SaaS
[Link] already had some of the core characteristics of SaaS:
Initially, ASPs hosted packaged applications and provided access to multiple customers.
Worked well when customization was minimal. As customers wanted more customization or
integration, costs increased significantly for service providers. This made the traditional ASP
model less convenient over time. SaaS emerged as a more flexible way to deliver software as
a service. Users can now:
o Customize applications
o Add their own components
o Design workflows and integrate services
• Such new approach has also been possible with the support of Web 2.0 technologies,
which allowed turning the Web browser into a full featured interface, able even to
support application composition and development.
• How is Cloud computing related to SaaS? In the Cloud computing stack, SaaS sits at
the top layer. Cloud computing is often described as XaaS (Everything as a Service) —
SaaS delivers software applications as a service. Initially, the SaaS model was of
interest only for lead users and early adopters. The benefits delivered at that stage were
the following:
SaaS 2.0 is not a new technology; it’s a new way of using SaaS. Focus shifts from just rapid
deployment to achieving business goals quickly and efficiently.
Fundamental in this perspective is the ability of leveraging existing solutions and of integrating
value-added business services. The existing SaaS infrastructures not only allow the
development and the customization of applications but also facilitate the integration of services
that are exposed by other parties.
The software ecosystem of the SaaS market, which is not anymore monopolized by few
vendors but is constituted by a fully interconnected network of service providers, clustered
around some “big hubs” which deliver to the customer the applications.
• NetSuite: Integrated software suite for financials, CRM, inventory, and eCommerce.
• RightNow: Customer experience-focused SaaS; integrates chat, web communities, and
support tools
Clouds constitute the primary outcome of Cloud computing. They are a type of parallel and
distributed system harnessing physical and virtual computers presented as a unified
computing resource. Based on how they are managed and who controls them
(administrative domain), Clouds are classified into three main types:
(b) Private Clouds. the Cloud is implemented within the private premises of an institution
and generally made accessible to the members of the institution or a subset of them.
(c) Hybrid or Heterogeneous Clouds. the Cloud is a combination of the two previous
solutions, and most likely identifies a Private Cloud that has been augmented with resources
or services hosted in a Public Cloud.
Public Clouds constitute the first expression of Cloud computing. The services offered are
made available to anyone, from anywhere, and at any time through the Internet. From a
structural point of view, they are a distributed system, most likely constituted by one or more
datacenters connected together, on top of which the specific services offered by the Cloud are
implemented. Any customer can easily sign-in with the Cloud provider, enter his/her credential
and billing details, and use the services offered.
They have become an interesting option for small enterprises, who are able to start their
business without large upfront investments by completely relying on public infrastructure for
their IT needs. It is able to dynamically upsize or downsize the IT according to the demand on
their business.
QoS management is a very important aspect in Public Clouds. Hence, a significant portion of
the software infrastructure is devoted to monitor the Cloud resources, to bill them according to
the contract made with the user, and to keep a complete history of the Cloud usage for each
customer.
A Public Cloud can offer any kind of service: infrastructure, platform, or applications. For
example, Amazon EC2 is a Public Cloud providing infrastructure as a service, Google
AppEngine is a Pub lic Cloud providing an application development platform as a service, and
[Link] is a Public Cloud providing software as a service.
From an architectural point of view, there is no restriction concerning the type of distributed
system implemented to support Public Clouds. Most likely, one or more datacenters constitute
the physical infrastructure on top of which the services are implemented and delivered. Public
Clouds can be com posed by geographically dispersed datacenters in order to share the load of
users and better serve them according to their location. For example, Amazon Web Services
has data centers installed in US and in Europe, and allow their customers to choose between
three different regions: us-west-1, us-east-1, and eu-west-1. Such regions are priced differently
and further divided into availability zones, which map to specific data centers.
Public Clouds are appealing and provide a viable option to cut down IT costs and reduce capital
expenses, but they are not applicable in all scenarios.
• In a Public Cloud, the provider (like AWS or Google Cloud) controls both the
infrastructure and possibly the data and applications of customers.
• This means users have less control over their systems and data security.
• Even though cloud providers follow strict security and privacy regulations, some
organizations — especially government and military agencies — cannot take that risk.
If there’s a security breach, their sensitive data could be exposed
• In other cases, the loss of control of where your virtual IT infrastructure resides could
open the way to other problematic situations. More precisely, the geographical location
of a datacenter generally deter mines the regulations that are applied to management of
digital information. As a result, according to the specifi c location of data, some
sensitive information can be made accessible to government agencies or even
considered out of the law if processed with specifi c cryptographic techniques. For
example, the USA Patriot Act 25 25 provides its government and other agencies with
virtually limitless powers to access information including that belonging to any
company that stores information in the US territory.
• Finally, existing enterprises that have large computing infrastructures or large installed
bases of software do not simply want to switch to Public Clouds, but use the existing
IT resources and optimize their revenue.
• All these aspects make the use of a public computing infrastructure not always possible.
Yet, a general idea supported by the Cloud computing vision can still be attractive.
More specifically, having an infrastructure able to deliver IT services on demand can
still be a winning solution, even when implemented within the private premises of an
institution. This led to the diffusion of Private Clouds, which are similar to public
Clouds, but its resource provisioning model is limited within the boundaries of an
organization.
• Private Clouds are virtual distributed systems that rely on a private infrastructure and
provide inter nal users with dynamic provisioning of computing resources.
• Different from Public Clouds, instead of a pay-as-you-go model, there could be other
schemes in place, which take into account the usage of the Cloud, and proportionally
bill the different departments or sections of the enterprise.
• Private Clouds have the advantage of keeping in house the core business operations by
relying on the existing IT infra structure, and reducing the burden of maintaining it once
the Cloud, has been set up.
• In this scenario, security concerns are less critical, since sensitive information does
not flow out of the private infrastructure. Moreover, existing IT resources can be better
utilized since the Private Cloud can provide services to different range of users.
• Testing applications and systems are possible at a comparatively lower price rather
than Public Clouds before deploying them on the public virtual infrastructure.
key advantages of using a Private Cloud computing infrastructure:[Forrester report]
Public Cloud providers claim to offer good security, but many companies don’t fully explain
their security measures or haven’t been around long enough to prove that their systems are truly
safe. Because of this, enterprises often feel safer keeping sensitive customer data in their own
private Cloud, where they can directly control and monitor the security.
Quality of service implies specifi c operations such as appropriate clustering and failover, data
replication, system monitoring and maintenance, disaster recovery, and other uptime services
can be commensurate to the application needs. While Public Clouds vendors provide some of
these features, not all of them are available as needed.
Infrastructure management software, such as OpenNebula can connect with public clouds (like
Amazon EC2). When OpenNebula integrates with EC2, the virtual machine from the public
cloud acts like a manager that controls and manages the local virtual machines inside the private
cloud. This setup helps in scaling and expanding the infrastructure when needed.
An advanced scheduling engine is required that is able to differentiate these resources and
provide smart allocations by taking into account the budget available to extend the existing
infrastructure.
In the case of OpenNebula, advanced schedulers, such as Haizea, can be integrated to provide
cost-based scheduling.
• A local cluster,
• A gateway to a public cloud, or
• A combination of both.
Once a request is submitted to one of the InterGrid gateways, it is served by possibly allocating
virtual instances in all the peered networks. The allocation of requests is performed by taking
into account the user budget and the peering arrangements between networks.
Dynamic provisioning means automatically adding or removing cloud resources (like virtual
machines) when needed. In Hybrid Clouds, this feature is most often found in PaaS systems.
One key job of PaaS middleware is to map applications onto the underlying cloud infrastructure
efficiently. Dynamic provisioning ensures that the application gets the required resources at the
right time so it can meet those QoS guarantees. As an example, Aneka provides a provisioning
service that leverages different IaaS providers for scaling the existing Cloud infrastructure.
4.3.4 Community Clouds
Community Clouds are distributed systems constituted by integrating the services of different
Clouds to address the specifi c needs of an industry, a community, or a business sector.
The NIST [43] characterizes Community Clouds as follows: “The infrastructure is shared by
several organizations and supports a specific community that has shared concerns (e.g.,
mission, security requirements, policy, and compliance considerations. It may be managed by
the organizations or a third party, and may exist on premise or off premise.”
Figure 4.6 shows how Community Clouds are used and what their architecture looks like. A
Community Cloud is designed for a specific group of users who share common goals or
requirements. For example, it could be used by a group of government departments, a set
of industries working in the same field, or even a community of individual users with similar
interests.
This type of Cloud is different from a Public Cloud, where anyone can access services and
users have different and unrelated needs. It is also different from a Private Cloud, which
is used only within a single organization. Instead, a Community Cloud is shared among
several organizations or users that work together and have similar security, policy, or
compliance needs.
From an architectural point of view, a Community Cloud is most likely implemented over
multiple administrative domains. This means that different organizations such as government
bodies, private enterprises, research organization, and even public virtual infrastructure
providers, contribute with their resources to build the Cloud infrastructure.
Candidate sectors for Community Clouds described as above are the following:
(a) Media Industry. In the media industry, companies are looking for low-cost, agile, and
simple solutions to improve the efficiency of content production. Most of the media
productions involve an extended ecosystem of partners. In particular, the creation of digital
content is the outcome of a collaborative process including movement of large data, massive
compute-intensive rendering tasks, and complex workflows executions. Community Clouds
can provide a shared environment where services can facilitate the business-to-business
collaboration and offer the horsepower in term of aggregate bandwidth, CPU, and storage
required to efficiently support media production.
(b) Healthcare Industry. Within the healthcare industry, there are different scenarios where
Community Clouds could be of use. In particular, they can provide a global platform where to
share information and knowledge without revealing sensitive data maintained within the
private infra structure. The naturally hybrid deployment model of Community Cloud can easily
support the storing of patient-related data in a Private Cloud, while using the shared
infrastructure to use non-critical services and automate processes within hospitals.
(c) Energy and Other Core Industries. In these sectors, Community Clouds can bun dle
together the comprehensive set of solutions that together vertically address management,
deployment, and orchestration of services and operations. Since these industries involve
different providers, vendors, and organizations, a Community Cloud can provide the right type
of infrastructure to create an open and fair market.
(d) Public Sector. Legal and political restrictions in the public sector can limit the adoption of
Public Cloud offerings. Moreover, governmental processes involve several institutions and
agencies, and are aimed to provide strategic solutions at local, national, and international
administrative level. They involve business-to-administration, citizen-to-administration, and
possibly business-to-business processes.
(e) Scientific Research. Science Clouds are an interesting example of Community Clouds. In
this case, the common interest driving different organizations sharing a large distributed
infrastructure is scientifi c computing.
(f) Openness. By removing the dependency on Cloud vendors, Community Clouds are open
systems where a fair competition between different solutions can happen.
(g) Community. Being based on a collectivity providing resources and services, the infrastruc
ture turns out to be more scalable, because the system can grow simply by expanding its user
base.
(h) Graceful Failures. Since there is no single provider or vendor in control of the infrastruc
ture, there is no single point of failure.
(i) Convenience and Control. Within a Community Cloud, there is no conflict between
convenience and control, because the Cloud is shared and owned by the community which
operates all the decisions through a collective democratic process.
(j) Environmental Sustainability. The Community Cloud is supposed to have a smaller
carbon footprint as they harness under-utilized resources. Moreover, they tend to be more
organic by growing and shrinking in a symbiotic relationship to support the demand of the
community, which in turns sustain it.
The main drivers of Cloud computing are: economy of scale and simplicity of software delivery
and its operation.
In fact, the biggest benefit of this phenomenon is financial: the pay-as-you-go model offered
by Cloud providers. In particular, Cloud computing allows:
A capital cost is a one-time expense made to purchase assets that help in producing goods or
providing services. These assets, like IT infrastructure and software, are essential for
business operations such as payroll, customer management, and inventory tracking. Every
enterprise, even if not IT-based, depends on such resources, making IT a part of its capital cost.
It is important to keep capital costs low, as they affect long-term profits. Over time, these
assets depreciate—hardware loses value and software becomes outdated—reducing the
overall profit of the enterprise.
Before Cloud computing became common, companies had to spend a large part of their budget
on IT infrastructure and software, including datacenters that required maintenance,
electricity, and cooling. They also needed IT departments and support staff, which added
to operational costs, along with the purchase of expensive software. With Cloud computing,
these costs are greatly reduced or even eliminated.
The cost savings from Cloud computing depend on how and where it is used within an
enterprise. For a small startup, the Cloud can handle everything—
● IT infrastructure
● software development
allowing the company to avoid any initial capital costs since it doesn’t need to buy hardware
or software. However, for established enterprises that already own IT assets, Cloud computing
(especially IaaS) helps manage unexpected short-term needs by converting large capital
expenses into temporary operational costs. For example, a company can rent extra Cloud
resources during peak demand and release them when not needed, saving money. Many
organizations prefer this hybrid model, where they gradually shift to Cloud services as their
existing IT assets depreciate and require replacement. In short, Cloud computing offers
flexible and cost-efficient ways to support both new and existing businesses.
Another important aspect is the elimination of some indirect costs that are generated by IT
assets such as software licensing and support, and carbon footprint emission.
In terms of the pricing models introduced by Cloud computing, we can distinguish them in to
three dif ferent strategies, that are adopted by the providers:
(a) Tiered Pricing. In this model, Cloud services are offered in several tiers, and each tier of
fers a fi xed computing specifi cation and SLA at a specifi c price per unit of time. This model
is used by Amazon for pricing the EC2 service, which makes available different server confi
gurations in terms of computing capacity (CPU type, speed, and memory) that have a different
cost per hour.
(b) Per-unit Pricing. This model is more suitable in cases where the principal source of rev
enue for the Cloud provider is determined in terms of units of specifi c services such as data
transfer and memory allocation. In this scenario, customer can configure their systems more
effi ciently according to the application needs. This model is used, for example, by GoGrid
where customers pay according to RAM/hour units for the servers deployed in the GoGrid
Cloud.
(c) Subscription-based Pricing. This is the model used mostly by SaaS providers in which
users are paying a periodic subscription fee for the usage of the software or the specific
component services that are integrated in their applications.
Cloud computing still presents a lot of challenges for the industry and the academia.
The definition and the formalization, the interoperation between different Clouds, the creation
of standards, security, scalability, fault tolerance, and organizational aspects.
Researchers and organizations have tried to define what Cloud Computing really is and how
to classify its services and technologies. There are different viewpoints about this because
cloud computing is still developing and constantly changing.
According to NIST, cloud computing has five essential characteristics, three service models,
and four deployment models. It characterizes Cloud computing as: on-demand self-service,
broad network access, resource pooling, rapid elasticity, and measured service; classifies
services as SaaS, PaaS, and IaaS; and categorizes deployment models as public, private,
community, and hybrid Clouds.
A different approach has been taken at the University of California, Santa Barbara (UCSB).
Instead of classifying by services (IaaS, PaaS, SaaS), they tried to define an ontology. In their
work, the concept of Cloud is dissected into five main layers: applications, software
environments, software infrastructure, software kernel, and hardware. Each layer addresses the
needs of a different class of users within the Cloud computing community.
Because cloud computing is still growing and changing, these definitions and classifications
are also evolving.
One of the biggest problems in cloud computing is called vendor lock-in. Vendor lock-in
happens when a customer becomes dependent on one particular cloud provider (like AWS,
Google Cloud, or Azure) and finds it difficult to move to another provider.
This can occur either because the customer wants to find a more suitable solution for his/her
needs or because the vendor is not able to provide the required service anymore. If
standardization is introduced, Interoperability improves and Vendor lock-in is reduced.
Different providers use their own systems, making data transfer difficult. However,
organizations such as the Cloud Computing Interoperability Forum (CCIF), Open Cloud
Consortium (OCC), and DMTF Cloud Standards Incubator are working toward
standardization. The Open Cloud Manifesto also promotes open standards, aiming to make
cloud services more compatible and flexible for users.
The current standardization efforts in cloud computing mainly focus on the lower layer of the
architecture, especially the Infrastructure-as-a-Service (IaaS) level. Vendor lock-in occurs
due to different virtual machine formats used by providers. The Open Virtualization Format
(OVF) was introduced to create a common, platform-independent format for virtual machines,
improving compatibility ( used to import static virtual machine images). The real challenge
ahead is to develop standards that allow the migration of running virtual machines
seamlessly between different cloud providers.
Another area of standardization focuses on creating a common reference architecture for
Cloud computing systems, and standard interfaces (APIs) through which one can interact
with them.
4.5.3 Scalability and Fault Tolerance
The ability to scale on demand constitutes one of the most attractive features of Cloud
computing. Clouds allow scaling beyond the limits of the existing in-house IT resources
whether they are infrastructure (compute and storage) or applications services.
In order to implement such a capability, the Cloud middleware has to be designed with the
principle of scalability along different dimensions in mind (for example, performance, size,
and load).
The Cloud middleware manages a huge number of resource and users, which rely on the Cloud
to obtain the horsepower that they cannot obtain within the premises without bearing
considerable administrative and maintenance costs.
The challenge in this case, is designing highly scalable and fault-tolerant systems, which are
easy to manage and at the same time, provide a competitive performance.
4.5.4 Security, Trust, and Privacy
Security, trust, and privacy are major challenges that slow down the widespread adoption of
cloud computing. While traditional cryptography protects data from unauthorized access or
tampering, virtualization introduces new risks. For example, when an application in the cloud
processes sensitive data, the data must be decrypted in memory for the application to use it.
However, because the application runs in a managed virtual environment, the virtual machine
manager can potentially access this data. This creates a situation where users lose control over
their data and applications, opening new security threats. As a result, users may worry about
the trustworthiness of cloud providers and the privacy of their data, making security a critical
concern in cloud computing.
Trust and privacy are major concerns in cloud computing. Users must decide whether to trust
the provider, while regulations may override agreements about data privacy. Cloud services
often rely on a complex stack of third-party services, creating a chain of responsibilities that
can introduce security and privacy vulnerabilities. If a privacy breach or unauthorized access
occurs, it can be difficult to determine who is responsible. The challenge is to build cloud
systems that are secure and trustworthy from technical, social, and legal perspectives.
4.5.5 Organizational Aspects
Cloud computing changes how IT services are used and managed, delivering storage,
computing, networks, and applications as metered services over the Internet. This introduces a
new billing model and requires cultural and organizational maturity. Adopting cloud
computing affects business processes and organizational roles:
Some interesting questions arise when considering the role of the IT department in this new
scenario. In particular, the following have to be considered:
• What is the new role of the IT department within an enterprise that completely or
significantly relies on the Cloud?
• How compliance department will perform its activity when there is a considerable lack
of control over application workflow?
• What are the implications (political, legal, etc.) for organizations that lose control over
some aspects of their services?
• What will be the perception of the end users of such services?
Cloud reduces maintenance and support costs, but users lose direct control and reference
for troubleshooting. Existing IT staff need new cloud-related skills, making some
traditional expertise less relevant. These changes alter organizational roles, responsibilities,
and team interactions