Module-4 Cloud Computing Architecture PDF
Module-4 Cloud Computing Architecture PDF
Module-4 Cloud Computing Architecture PDF
3 Types of Clouds:
3.1 Public Clouds
3.2 Private Clouds
3.3 Hybrid Clouds
3.4 Community Clouds
5 Open challenges:
5.1 Cloud Definition
5.2 Cloud Interoperability and Standards
5.3 Scalability and Fault Tolerance
5.4 Security, Trust and Privacy
5.5 Organizational Aspects
1. Introduction
Utility-oriented data centers are the first outcome of cloud computing for and they serve as the
infrastructure through which the services are implemented and delivered.
Open-source clouds are built by relying on one or more datacenters. In most cases hardware
resources are virtualized to provide isolation of workloads and to best exploit the infrastructure.
According to the specific service delivered to the end user, different layers can be stacked on top of
the virtual infrastructure: a virtual machine manager, a development platform, or a specific
application middleware.
A broad definition of the phenomenon could 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 supports any IT service that can be consumed as a utility and delivered through a
network, most likely the Internet.
Such characterization includes quite different aspects: infrastructure, development platforms,
application, and services.
2.1 Architecture
2.2 Infrastructure / hardware as a service
2.3 Platform as a service
2.4 Software as a service
2.1 Architecture
It is possible to organize all the concrete realizations of cloud computing into a layered view
covering the entire stack (see Figure 4.1), from hardware appliances to software systems.
Cloud infrastructure can be heterogeneous in nature because a variety of resources, such as
clusters and even networked PCs, can be used to build it.
• The physical infrastructure is managed by the core middleware, the objectives of which
are to provide an appropriate runtime environment for applications and to best utilize
resources.
• At the bottom of the stack, virtualization technologies are used to guarantee runtime
environment customization, application isolation, sandboxing, and quality of service.
Hardware virtualization is most used at this level. Hypervisors manage the pool of
resources and expose the distributed infrastructure as a collection of virtual machines. By
using virtual machine technology, it is possible t o finely partition the hardware resources
such as CPU and memory and to virtualize specific devices, thus meeting the requirements
of users and applications. This solution is generally paired with storage and network
virtualization strategies, which allow the infrastructure to be completely virtualized and
controlled.
• 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. The combination of cloud hosting
Table 4.1 summarizes the characteristics of the three major categories used to classify cloud
computing solutions. In the following section, we briefly discuss these characteristics along with
some references to practical implementations.
The available options within the IaaS offering umbrella range from single servers to entire
infrastructures, including network devices, load balancers, and database and Web servers.
The main technology used to deliver and implement these solutions is hardware virtualization:
one or more virtual machines opportunely configured and interconnected define the distributed
system on top of which applications are installed and deployed. Virtual machines also constitute
the atomic components that are deployed and priced according to the specific features of the
virtual hardware: memory, number of processors, and disk storage.
From the perspective of the customer, it reduces the administration and maintenance cost as well
as the capital costs allocated to purchase hardware.
• At the top layer the user interface (Web based Management Interface): provides access to
the services exposed by the software management infrastructure. Such an interface is based
on Web 2.0 technologies: Web services, RESTful APIs, and mashups. These technologies
allow either applications or final users to access the services exposed by the underlying
infrastructure. Web 2.0 applications allow developing full- featured management consoles
completely hosted in a browser or a Web page. Web services and RESTful APIs allow
programs to interact with the service without human intervention, thus providing
complete integration within a software system.
• The core features of an IaaS solution are implemented in the infrastructure management
software layer: In particular, management of the virtual machines is the most important
function performed by this layer. A central role is played by the scheduler, which oversees
allocating the execution of virtual machine instances. The scheduler interacts with the
other components that perform a variety of tasks:
➢ The pricing and billing component takes care of the cost of executing each virtual
machine instance and maintains data that will be used to charge the user.
➢ The 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.
➢ If support for QoS-based execution is provided, a QoS/SLA management component
will maintain a repository of all the SLAs made with the users; together with the
monitoring component, this component is used to ensure that a given virtual machine
instance is executed with the desired quality of service.
➢ The VM Image repository component provides a catalog of virtual machine images
that users can use to create virtual instances. Some implementations also allow users
to upload their specific virtual machine images.
➢ A VM Pool Management component is responsible for 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 to
provide a virtual machine instance that is external to the local physical infrastructure
directly managed by the pool.
• The bottom layer is composed of the physical infrastructure, on top of which the
management layer operates. As previously discussed, the infrastructure can be of different
types; the specific infrastructure used depends on the specific use of the cloud. A cloud
infrastructure developed in house, in a small or medium-sized enterprise or within a
university department, will most likely rely on a cluster. At the bottom of the scale, it is also
possible to consider a heterogeneous environment where different types of resources—PCs,
workstations, and clusters—can be aggregated.
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 application components, provisioning, and
configuring supporting technologies such as load balancers and databases, and managing
system change based on policies set by the user.
The core middleware oversees managing the resources and scaling applications on demand or
automatically, according to the commitments made with users.
From a user point of view, the core middleware exposes interfaces that allow programming
and deploying applications on the cloud. These can be in the form of a Web-based interface
or in the form of programming APIs and libraries.
PaaS solutions can offer middleware for developing applications together with the infrastructure
or simply provide users with the software that is installed on the user premises.
In the first case, the PaaS provider also owns large datacenters where applications are executed.
In the second case, referred as Pure PaaS, the middleware constitutes the core value of the
offering.
Table 4.2 provides a classification of the most popular PaaS implementations. It is possible to
organize the various solutions into three wide categories: PaaS-I, PaaS-II, and PaaS-III.
As noted by Sam Charrington, product manager at Appistry.com, there are some essential
characteristics that identify a PaaS solution:
1. Runtime framework - This framework represents the “software stack” of the PaaS model.
The runtime framework executes end-user code according to the policies set by the user and the
provider.
2. Abstraction - PaaS, the focus is on the applications the cloud must support. 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.
3. Automation - 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.
4. Cloud services - PaaS offerings provide developers and architects with services and APIs,
helping them to simplify the creation and delivery of elastic and highly available cloud
applications.
It provides a means to free users from complex hardware and software management by
offloading such tasks to third parties, which build applications accessible to multiple users
through a Web browser.
In this scenario, customers neither need install anything on their premises nor have to pay
considerable up-front costs to purchase the software and the required licenses.
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 SaaS
as a “one-to- many” software delivery model, whereby an application is shared across
multiple users.
This is the case of CRM 3 and ERP 4 applications that constitute common needs for almost all
enterprises, from small to medium-sized 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.
ASPs (application service providers) has some of the core characteristics of SaaS:
1. The product sold to customer is application access.
2. The application is centrally managed.
3. The service delivered is one-to-many.
4. The service delivered is an integrated solution delivered on the contract, which means
provided as promised.
ASPs provide access to packaged software solutions that addressed the needs of a variety of
customers.
The SaaS approach introduces a more flexible way of delivering application services that are
fully customizable by the user by integrating new services, injecting their own components, and
designing the application and information workflows.
3. Types of Clouds
Public clouds are managed by third parties which provide cloud services over the internet to the
public, these services are available as pay-as-you-go billing models.
Public clouds offer solutions for minimizing IT infrastructure costs and become a good option
for handling peak loads on the local infrastructure. Public clouds are the go-to option for small
enterprises, which are able to start their businesses without large upfront investments by
completely relying on public infrastructure for their IT needs.
The fundamental characteristics of public clouds are multitenancy. A public cloud is meant to
serve multiple users, not a single customer. A user requires a virtual computing environment that
is separated, and most likely isolated, from other users.
Public cloud
A public cloud can offer any kind of service: infrastructure, platform, or applications.
For example:
• Amazon EC2 is a public cloud that provides infrastructure as a service.
• Google AppEngine is a public cloud that provides an application development platform as a
service and
• SalesForce.com is a public cloud that provides software as a service.
Figure 4.4 provides a comprehensive view of the solutions together with some reference to the
most popular software used to deploy private clouds.
At the bottom layer of the software stack, virtual machine technologies such as Xen, KVM, and
VMware serve as the foundations of the cloud.
Virtual machine management technologies such as VMware vCloud, Eucalyptus, and Open
Nebula can be used to control the virtual infrastructure.
Private clouds are virtual distributed systems that rely on a private infrastructure and provide
internal users with dynamic provisioning of computing resources. Instead of a pay-as-you-go
model as in public clouds, there could be other schemes in place, considering the usage of the
cloud and proportionally billing the different departments or sections of an enterprise.
1. Customer information protection: In the private cloud security concerns are less since
customer data and other sensitive information do not flow out of private infrastructure.
2. Infrastructure ensuring Service Level Agreements (SLAs): Private cloud provides
specific operations such as appropriate clustering, data replication, system monitoring, and
maintenance, and disaster recovery, and other uptime services.
3. Compliance with standard procedures and operations: Specific procedures have to be
put in place when deploying and executing applications according to third-party compliance
standards. This is not possible in the case of the public cloud.
A major drawback of private deployments is the inability to scale on-demand and efficiently
address peak loads. Here public clouds are needed. Hence, a hybrid cloud takes advantage of
both public and private clouds.
demand. These resources or services are temporarily leased for the time required and then
released. This practice is also known as cloud-bursting.
The National Institute of Standards and Technologies (NIST) 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.”
Or
In the community cloud, the infrastructure is shared between organizations that have shared
concerns or tasks. The cloud may be managed by an organization or a third party.
Figure 4.6 provides a general view of the usage scenario of community clouds, together with
reference architecture. The users of a specific community cloud fall into a well-identified
community, sharing the same concerns or needs; they can be government bodies, industries, or
even simple users, but all of them focus on the same issues for their interaction with the cloud.
1. Media industry - looking for low-cost, agile, and simple solutions to improve the
efficiency of content production.
2. Healthcare industry - n the healthcare industry community clouds are used to share
information and knowledge on the global level with sensitive data in the private infrastructure.
3. Energy and other core industries - In these sectors, community clouds can bundle the
comprehensive set of solutions that together vertically address management, deployment, and
orchestration of services and operations.
4. 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 at providing strategic solutions at local, national, and
international administrative levels.
5. Scientific research - In this organization with common interests in science share a large,
distributed infrastructure for scientific computing.
1. Openness. By removing the dependency on cloud vendors, community clouds are open
systems in which fair competition between different solutions can happen.
2. Community. Being based on a collective that provides resources and services, the
infrastructure turns out to be more scalable because the system can grow simply by expanding
its user base.
3. Graceful failures. Since there is no single provider or vendor in control of the
infrastructure, there is no single point of failure.
4. 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
makes all the decisions through a collective democratic process.
5. Environmental sustainability. The community cloud is supposed to have a smaller carbon
footprint because it harnesses underutilized resources. Moreover, these clouds tend to be more
organic by growing and shrinking in a symbiotic relationship to support the demand of the
community, which in turn sustains 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:
1. Reducing the capital costs associated to the IT infrastructure
2. Eliminating the depreciation or lifetime costs associated with IT capital assets
3. Replacing software licensing with subscriptions
4. Cutting the maintenance and administrative costs of IT resources.
A capital cost is the cost occurred in purchasing an asset that is useful in the production of
goods or the rendering of services. Capital costs are one-time expenses that are generally paid-
up front and that will contribute over the long term to generate profit.
IT resources constitute a capital cost for any kind of enterprise. It is good practice to try to keep
capital costs low because they introduce expenses that will generate profit over time; more than
that, since they are associated with material things, they are subject to depreciation over time,
which in the end reduces the profit of the enterprise because such costs are directly subtracted
from the enterprise revenues.
One of the advantages introduced by the cloud computing model is that it shifts the capital costs
previously allocated to the purchase of hardware and software into operational costs inducted by
renting the infrastructure and paying subscriptions for the use of software. These costs can be
better controlled according to the business needs and prosperity of the enterprise. Cloud
computing also introduces reductions in administrative and maintenance costs. That is, there is
no or limited need for having administrative staff take care of the management of the cloud
infrastructure.
In terms of the pricing models introduced by cloud computing, we can distinguish three
different strategies that are adopted by the providers:
1. Tiered pricing - In this model, cloud services are offered in several tiers, each of which
offers a fixed computing specification and Service Level Agreement (SLA) at a specific price
per unit of time. This model is used by Amazon for pricing the EC2 service.
2. Per-unit pricing - This model is more suitable to cases where the principal source of revenue
for the cloud provider is determined in terms of units of specific services, such as data transfer
and memory allocation. In this scenario customers can configure their systems more
efficiently according to the application needs. This model is used, for example, by GoGrid,
which makes customers pay according to RAM/hour units for the servers deployed in the
GoGrid cloud.
3. Subscription-based pricing - This is the model used mostly by SaaS providers in which
users pay a periodic subscription fee for use of the software or the specific component services
that are integrated in their applications.
5. Open Challenges
Cloud computing presents many challenges for industry and academia. There is a significant
amount of work in academia focused on defining the challenges brought by this phenomenon.
In this section, we highlight the most important ones.
1 Cloud definition
2 Cloud interoperability and standards
3 Scalability and fault tolerance
4 Security, trust, and privacy
5 Organizational aspects
1 Cloud definition
There have been several attempts made to define cloud computing and to provide a
classification of all the services and technologies identified as such.
NSIT 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.
Alternative taxonomies for cloud services. David Linthicum, founder of Blue Mountains Labs,
provides a more detailed classification, which comprehends 10 different classes and better suits
the vision of cloud computing within the enterprise.
These characterizations and taxonomies reflect what is meant by cloud computing at the present
time but being in its infancy the phenomenon is constantly evolving, and the same will happen
to the attempts to capture the real nature of cloud computing.
From an organizational point of view, the lack of control over the management of data and
processes poses not only security threats but also new problems that previously did not exist.