0% found this document useful (0 votes)
7 views23 pages

Understanding Cloud Computing Architecture

Cloud computing is a utility-oriented, Internet-centric model for delivering IT services on demand, utilizing a distributed infrastructure that can include datacenters and virtualized resources. It encompasses three primary service models: Infrastructure as a Service (IaaS), which provides virtualized hardware resources; Platform as a Service (PaaS), which offers a development platform for applications; and Software as a Service (SaaS), which delivers ready-to-use software applications over the Internet. Each model has distinct characteristics and benefits, with IaaS focusing on infrastructure management, PaaS on application development, and SaaS on software accessibility.

Uploaded by

svsanju341
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views23 pages

Understanding Cloud Computing Architecture

Cloud computing is a utility-oriented, Internet-centric model for delivering IT services on demand, utilizing a distributed infrastructure that can include datacenters and virtualized resources. It encompasses three primary service models: Infrastructure as a Service (IaaS), which provides virtualized hardware resources; Platform as a Service (PaaS), which offers a development platform for applications; and Software as a Service (SaaS), which delivers ready-to-use software applications over the Internet. Each model has distinct characteristics and benefits, with IaaS focusing on infrastructure management, PaaS on application development, and SaaS on software accessibility.

Uploaded by

svsanju341
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Module 3

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.

4.2 CLOUD REFERENCE MODEL


Cloud computing supports any IT service that can be consumed as a utility and it is delivered
through the network, most likely the Internet. Such characterization includes quite different
aspects: infrastructure, development platforms, application and services.
4.2.1 Architecture
Cloud computing can be viewed as a layered architecture covering the entire stack (see Fig.
4.1): from the hardware appliances to software systems. The main goal of the cloud is to
provide high computing power (also called “horsepower”).
Often, this layer is implemented by using a datacenter in which hundreds and thousands of
nodes are stacked together. Cloud infrastructure can be in heterogeneous nature as variety of
resources such as clusters and even networked PCs can be used to build it. Moreover, database
systems and other storage services can also be part of the infrastructure.
Figure 4.1 shows Cloud computing architecture. At the base of cloud computing, there is a
physical infrastructure (like servers, storage devices, and networks). The physical
infrastructure is managed by the core middleware whose objectives are to provide an
appropriate runtime environment for applications and to utilize resources at best.
At the bottom of the stack, virtualization technologies are used to guarantee runtime
environment customization, application isolation, sandboxing, and quality of service.
The most common type is hardware virtualization.
Here, a special software called a hypervisor manages the physical hardware and divides it into
virtual machines (VMs). By using virtual machine technology, it is possible to finely partition
the hard ware resources such as CPU, memory, and also virtualize specific devices, thus
meeting the requirement of users and applications.
Infrastructure management is the key function of core middleware, which supports capabilities
such as negotiation of the quality of service, admission control, execution management and
monitoring, accounting, and billing.

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:

• Virtual machines (servers),


• Storage, and
• Networking.

IaaS solutions can be divided into two categories:

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.

4.2.2 Infrastructure/Hardware as a Service

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.

Figure 4.2 provides an overall view of the components forming an Infrastructure-as-a-Service


solution. It is possible to distinguish three principal layers: the physical infrastructure, the
software management infrastructure, and the user interface.

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 core features of an Infrastructure-as-a-Service solution are implemented in the


infrastructure management software layer. In particular, the management of the virtual
machines is the most important function performed by this layer. A central role is
played by the scheduler, which is in-charge of allocating the execution of virtual
machine instances. The scheduler interacts with the other components performing
different tasks:

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

Application management is the core functionality of the middleware. PaaS implementations


provide applications with a runtime environment and do not expose any service for managing
the underlying infrastructure. They automate the process of deploying applications to the
infrastructure, configuring applications components, provisioning and configuring supporting
technologies such as load balancers and databases, and managing system change based on
policies set by the user.
Developers design their system in terms of applications and are not concerned with hardware
(physical or virtual), operating systems, and other low-level services. The core middleware is
in charge of managing the resources and scaling applications on demand or automatically,
according to the commitments made with the users.

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.

PaaS–I Fully Web-based platforms:

• 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

PaaS–II: Platforms for Web Applications

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

PaaS–III: General-purpose Cloud Platforms

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

Finally, from a financial standpoint, while Infrastructure-as-a-Service solutions allow shifting


the capital cost into operational costs through outsourcing, Platform-as-a-Service solutions can
cut down the cost across development, deployment, and management of applications.

4.2.4 Software as a Service

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:

• The product sold to customer is application access.


• The application is centrally managed.
• The service delivered is one-to-many.
• The service delivered is an integrated solution as promised.

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:

• Software cost reduction and total cost of ownership (TCO) paramount


• Service level improvements
• Rapid implementation
• Stand-alone and configurable applications
• Rudimentary application and data integration
• Subscription and pay-as-you-go (PAYG) pricing

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.

SaaS apps serve different business and personal needs.

• Most popular types include:


o CRM (Customer Relationship Management)
o ERP (Enterprise Resource Planning)
• [Link] (CRM Example)

• One of the most successful CRM SaaS applications.


• Offers a wide range of services:
o Customer relationship management
o Human resource management
o Enterprise resource planning
• Built on the [Link] platform, which provides:
o A programming language or visual environment to build apps.
o Integration with third-party applications through AppExchange.
o Applications are extensible and customizable

• NetSuite: Integrated software suite for financials, CRM, inventory, and eCommerce.
• RightNow: Customer experience-focused SaaS; integrates chat, web communities, and
support tools

Another important class of popular SaaS applications comprises of social networking


applications such as Facebook and professional networking such as Linkedin.

Office Automation Applications for documents, spreadsheets, and presentations are


another important class of apps. It helps create , manage and edit documents online.

Examples: Google Docs, Zoho Office.

4.3 TYPES OF CLOUDS

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:

(a) Public Clouds :the Cloud is open to the wide public.

(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.

(d) Community Clouds. the Cloud is characterized by a multi-administrative domain, in


volving different deployment models (public, private, and hybrid), and it is specifi cally
designed to ad dress the needs of a specific industry.

4.3.1 Public Clouds

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.

A fundamental characteristic of Public Clouds is multi-tenancy. A Public Cloud is meant to


serve a multitude of users and not a single customer. Any customer requires its virtual
computing environment that is separated, and most likely isolated, from the other users.

This is a fundamental requirement to provide an effective monitoring of user activities,


guarantee the desired performance, and the other Quality of Service attributes negotiated with
users. QoS management is a very important aspect in Public Clouds.

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.

4.3.2 Private Clouds

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]

(a)Customer Information Protection.

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.

(b)Infrastructure Ensuring Service Level Agreements (SLAs).

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.

(c ) Compliance with Standard Procedures and Operations.

If organizations are subject to third-party compliance standards, specific procedures have to be


put in place when deploying and executing applications. This could not be possible in the case
of virtual public infrastructure

From an architectural point of view, Private Clouds can be implemented on more


heterogeneous hardware: they generally rely on the existing IT infrastructure already deployed
on the private premises. This could be a datacenter, a cluster, or an Enterprise Desktop Grid,
or a combination of them.
A Private Cloud consists of several layers of hardware and software working together. At the
bottom is the physical infrastructure, which includes the actual servers, storage devices, and
networks found in data centers, clusters, or desktop grids. Above this lies the virtual machine
technology, where virtualization software like KVM, Xen, or VMware is used to create
multiple virtual machines from a single physical server, making better use of hardware. The
next layer is infrastructure management software, such as Eucalyptus, OpenNebula, or
VMware vCloud, which manages and controls all the physical and virtual resources by
handling tasks like allocation, monitoring, and scaling. On top of these layers is the Platform
as a Service (PaaS) layer, which provides tools and environments for developers to easily
build, test, and deploy applications using solutions like Aneka, Elastra CloudServer, or Zimory
Pools. Together, the lower layers form the Infrastructure as a Service (IaaS) part of the Cloud,
while the top layer represents the PaaS part.
4.3.3 Hybrid Clouds
Public Clouds are large software and hardware infrastructures whose capability is huge enough
to serve the needs of multiple users, but they suffer from security threats and administrative
pitfalls.
For new companies or start-ups without existing IT systems, using a Public Cloud is appealing
because it avoids big hardware costs. However, for most organizations that already have their
own IT setup, a Private Cloud is preferred, as they can use their existing infrastructure more
effectively. Private Clouds are the perfect solution when it is necessary to keep the processing
of information within the premises, or it is necessary to use the existing hardware and software
infrastructure. One of the major lacks of private deployments is the inability to scale on demand
and to efficiently address peak loads. In this case, it is important to leverage capabilities of
Public Clouds on needed basis. Hence, a hybrid solution could be an interesting opportunity
for taking advantage of both of the two worlds. This led to the development and the diffusion
of Hybrid Clouds.
Hybrid Clouds allow exploiting existing IT infrastructures, maintaining sensitive information
within the premises, and naturally growing and shrinking by provisioning external resources
and releasing them when needed.
Fig. 4.5 provides a general overview of a Hybrid Cloud: it is a heterogeneous distributed
system resulting from a Private Cloud that integrates additional services or resources from one
or more Public Clouds. For this reason, they are also called Heterogeneous Clouds.
As depicted in the diagram, dynamic provisioning is a fundamental component in this scenario.
Hybrid Clouds address scalability issues by leveraging external resources for exceeding
capacity demand. These resources or services are temporarily leased for the time required and
then released. This practice is also known as Cloud-bursting.
Whereas the concept of Hybrid Cloud is general, it mostly applies to IT infrastructure rather
than software services. Within an IaaS scenario, dynamic provisioning refers to the ability of
acquiring on demand virtual machines in order to increase the capability of the resulting
distributed system and releasing them. Infrastructure management software and PaaS solutions
are the building blocks for deploying and managing Hybrid Clouds.

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 different approach is taken by InterGrid. This is essentially a distributed scheduling engine


managing the allocation of virtual machines in a collection of peer networks. Each peer
network could be:

• 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.

The benefits of these Community Clouds are the following:

(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.

4.4 ECONOMICS OF THE CLOUD

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:

• Reducing the capital costs associated to the IT infrastructure


• Eliminating the depreciation or lifetime costs associated with IT capital asset.
• Replacing software licensing with subscriptions
• Cutting down the maintenance and administrative costs of IT resources

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

● CRM and ERP

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.

4.5 OPEN CHALLENGES

Cloud computing still presents a lot of challenges for the industry and the academia.

The most important challenges in cloud computing are:

The definition and the formalization, the interoperation between different Clouds, the creation
of standards, security, scalability, fault tolerance, and organizational aspects.

4.5.1 Cloud Definition

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.

David Linthicum, founder of BlueMountains Labs, provides a more detailed classification ,


which comprehends ten different classes and better suits the vision of Cloud computing within
the enterprise.

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.

4.5.2 Cloud Interoperability and Standards

Cloud computing is a service-based model for delivering IT infrastructure and applications as


utilities such as power, water, and electricity. In order to fully realize this, introducing
standards and allowing interoperability between solutions offered by different vendors
are of importance.

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.

If a company wants to switch to another cloud provider, it may face:

• High conversion costs (money to move data and applications)


• Time-consuming migration
• Technical difficulties due to incompatible systems

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

You might also like