074607a5-8d68-4a9f-887e-fe409b8e6fd6
074607a5-8d68-4a9f-887e-fe409b8e6fd6
By D Chaitra
Assistant Professor
SJBIT
1
Introduction to Cloud Computing
An Overview of Cloud Platforms and Technologies
2
INTRODUCTION
•Definition: Cloud computing as a model for enabling ubiquitous, convenient, on-demand network access to a shared
pool of configurable computing resources. (e.g., networks, servers, storage, applications, and services).
•Key Characteristics: On-demand self-service, broad network access, resource pooling, rapid elasticity, and measured
service.
3
Cloud computing at a Glance
prediction by Leonard Kleinrock about computing utilities, drawing parallels to how cloud services are
consumed today.
In 1969, Leonard Kleinrock, one of the chief scientists of the original Advanced Research
Projects Agency Network (ARPANET), which seeded the Internet, said:
“As of now, computer networks are still in their infancy, but as they grow up and become
sophisticated, we will probably see the spread of ‘computer utilities’ which, like present electric
and telephone utilities, will service individual homes and offices across the country.”
4
• Cloud computing allows renting infrastructure, runtime environments, and services on a pay-
peruse basis.
• This principle finds several practical applications and then gives different images of cloud
computing to different people.
• Chief information and technology officers of large enterprises see opportunities for scaling their infrastructure on
demand and sizing it according to their business needs.
• End users leveraging cloud computing services can access their documents and data anytime, anywhere, and from
any device connected to the Internet. Many other points of view exist.
5
One of the most diffuse views of cloud computing can be summarized as follows:
“I don’t care where my servers are, who manages them, where my documents are stored, or where my
applications are hosted. I just want them always available and access them from any device connected
through Internet. And I am willing to pay for this service for as a long as I need it.”
6
The vision of cloud computing
• Cloud computing allows anyone with a credit card to provision virtual hardware, runtime
environments, and services. These are used for as long as needed, with no up-front commitments
required.
• The long-term vision of cloud computing is that IT services are traded as utilities in an open
market, without technological and legal barriers. In this cloud marketplace, cloud service
providers and consumers, trading cloud services as utilities, play a central role.
7
• Many of the technological elements contributing to this vision already exist. Different
stake-holders leverage clouds for a variety of services. The need for ubiquitous storage
and compute power on demand is the most common reason to consider cloud computing.
A scalable runtime for applications is an attractive option for application and system
developers that do not have infrastructure or cannot afford any further expansion of
existing infrastructure.
8
THE VISION OF CLOUD COMPUTING (CONTD…)
• To provide a scalable runtime for applications for application and system
developers that do not have infrastructure or cannot afford any further expansion
of existing infrastructure.
• Provide automation of the discovery of various services and its integration into
existing software system – No human intervention
• To provide opportunities for optimizing datacenter facilities and fully utilizing
their capabilities to serve multiple users
• To reduce the waste of energy and carbon emissions, thus contributing to a greener
IT on one end and increasing revenue
9
10
11
Defining a cloud
The term cloud has historically been used in the telecommunications industry as an
abstraction of the network in system diagrams. It then became the symbol of the most
popular computer network, the Internet. This meaning also applies to cloud computing,
which refers to an Internet-centric way of computing. The Internet plays a fundamental role
in cloud computing, since it represents either the medium or the platform through which
many cloud computing services are delivered and made accessible.
12
“Cloud computing refers to both the applications delivered as services over the
Internet and the hardware and system software in the datacenters that provide
those services.”
definition given by Armbrust et al.
13
According to Reese, we can define three criteria to discriminate whether a service is
delivered in the cloud computing style:
• You pay only for what you use as you use it.
14
Definition Of Cloud Computing (contd…)
15
Historical Developments
16
Historical Developments
In tracking the historical evolution, we briefly review five core technologies that played an
important role in the realization of cloud computing. These technologies are
1. Distributed Systems
2. Virtualization
3. Web 2.0
4. Service Orientation
5. Utility Computing.
17
1. Distributed Systems
Clouds are essentially large distributed computing facilities that make available their
services to third parties on demand. As a reference, we consider the characterization of a
distributed system
A. Mainframe Computing
B. Cluster Computing
C. Grid Computing.
19
A.Mainframe Computing
• These were the first examples of large computational facilities leveraging multiple processing
units.
• Mainframes were powerful, highly reliable computers specialized for large data movement and
massive input/output (I/O) operations.
• Mostly used by large organizations for bulk data processing tasks such as online transactions,
enterprise resource planning, and other operations involving the processing of significant
amounts of data
• Highly reliable computers that were “always on” and capable of tolerating failures transparently.
• No system shutdown was required to replace failed components, and the system could work
without interruption.
20
B. Clusters
• Started as a low-cost alternative to the use of mainframes and supercomputers.
• These machines could then be connected by a high bandwidth network and controlled by
specific software tools that manage them as a single system.
• Built by commodity machines, they were cheaper than mainframes and made high-
performance computing available to a large number of groups, including universities and
small research labs.
• Some frameworks for distributed computing, including Condor, Parallel Virtual Machine
(PVM), and Message Passing Interface (MPI).
21
C. Grid Computing
• Grid computing proposed a new approach to access large computational power, huge
storage facilities, and a variety of services
• Users can “consume” resources in the same way as they use other utilities such as
power, gas, and water.
• A computing grid was a dynamic aggregation of heterogeneous computing nodes, and its
scale was nationwide or even worldwide
• Why Computing Grids:
clusters became quite common resources
They were often underutilized
New problems were requiring computational power that went beyond the capability of single clusters
The improvements in networking and the diffusion of the
Internet made possible long-distance, high-bandwidth Connectivity.
22
2. Virtualization
• Virtualization is the creation of a virtual (rather than actual) version of something, such as an
operating system, a server, a storage device or network resources
• These environments are called virtual because they simulate the interface that is expected by a
guest.
23
• Hardware virtualization is a technology allows simulating / Emulation the h/w interface expected by an
operating system
• Hardware virtualization allows the coexistence of different software stacks on top of the same hardware.
• These stacks are contained inside virtual machine instances, which operate in complete isolation from each
other.
• High-performance servers can host several virtual machine instances, thus creating the opportunity to have a
customized software stack on demand.
• This is the base technology that enables cloud computing solutions to deliver virtual servers on demand, such
as Amazon EC2, RightScale, Vmware vCloud and others together with hardware virtualization, storage and
network virtualization.
• Virtualization technologies are also used to replicate runtime environments for programs
• Applications in the case of process virtual machines instead of being executed by the operating system are run
by a specific program called a virtual machine.
• Process virtual machines offer a higher level of abstraction with respect to hardware virtualization, since the
guest is only constituted by an application rather than a complete software stack
• Eg:Google AppEngine and Windows Azure
24
3. Web 2.0
• The Web is the primary interface through which cloud computing delivers its
services. At present, the Web encompasses a set of technologies and services that
facilitate interactive information sharing, collaboration, user-centered design, and
application composition.
• Web 2.0 brings interactivity and flexibility into Web pages, providing enhanced
user experience by gaining Web-based access to all the functions that are normally
found in desktop applications. These capabilities are obtained by integrating a
collection of standards and technologies such as XML, Asynchronous JavaScript
and XML (AJAX), Web Services, and others.
25
• Examples of Web 2.0 applications are Google Documents, Google
Maps, Flickr, Facebook, Twitter, YouTube, de.li.cious, Blogger, and
Wikipedia. In particular, social networking Websites take the biggest
advantage of Web 2.0. The level of interaction in Websites such as
Facebook or Flickr would not have been possible without the support
of AJAX, Really Simple Syndication (RSS), and other tools that
make the user experience incredibly interactive.
26
4. Service-oriented computing
• This approach adopts the concept of services as the main building blocks of
application and system development.
29
Building cloud computing environments
The creation of cloud computing environments encompasses both the
development of application and systems that leverage cloud computing
solutions and the creation of frameworks, platforms, and infrastructures
delivering cloud computing services.
30
1. Application development
• Applications that leverage cloud computing benefit from its capability to dynamically
scale on demand.
• With the diffusion of Web 2.0 technologies, the Web has become a platform for
developing rich and complex applications, including enterprise applications that now
leverage the Internet as the preferred channel for service delivery and user interaction.
This is achieved by
(a) providing methods for renting compute power, storage, and networking;
(b) offering runtime environments designed for scalability and dynamic sizing; and
(c) providing application services that mimic the behavior of desktop applications but that
are completely hosted and managed on the provider side.
32
2. Infrastructure and system development
• Distributed computing, virtualization, service orientation, and Web 2.0 form
the core technologies enabling the provisioning of cloud services from
anywhere on the globe. Developing applications and systems that leverage
the cloud requires knowledge across all these technologies.
33
• Web 2.0 technologies constitute the interface through which cloud
computing services are delivered, managed, and provisioned.
34
4. Computing platforms and technologies
• Development of a cloud computing application happens by leveraging platforms
and frameworks that provide different types of services, from the bare-metal
infrastructure to customizable applications serving specific purposes.
2 Google AppEngine
3 Microsoft Azure
4 Hadoop
6 Manjrasoft Aneka
35
1. Amazon web services (AWS)
AWS offers comprehensive cloud IaaS services ranging from virtual compute, storage,
and networking to complete computing stacks. AWS is mostly known for its compute
and storage-on demand services, namely Elastic Compute Cloud (EC2) and Simple
Storage Service (S3).
• EC2 provides users with customizable virtual hardware that can be used as the base
infrastructure for deploying computing systems on the cloud. It is possible to choose
from a large variety of virtual hardware configurations, including GPU and cluster
instances.
• S3 is organized into buckets; these are containers of objects that are stored in binary
form and can be enriched with attributes. Users can store objects of any size, from
simple files to entire disk images, and have them accessible from everywhere. 36
2. Google AppEngine
• Google AppEngine is a scalable runtime environment mostly devoted to
executing Web applications. These take advantage of the large computing
infrastructure of Google to dynamically scale as the demand varies over
time. AppEngine provides both a secure execution environment and a
collection of services that simplify the development of scalable and high-
performance Web applications. These services include in-memory caching,
scalable data store, job queues, messaging, and cron tasks.
37
3. Microsoft Azure
Microsoft Azure is a cloud operating system and a platform for developing
applications in the cloud. Applications in Azure are organized around the
concept of roles, which identify a distribution unit for applications and
embody the application’s logic. Currently, there are three types of role:
Web role, worker role, and virtual machine role. The Web role is
designed to host a Web application, the worker role is a more generic
container of applications and can be used to perform workload processing,
and the virtual machine role provides a virtual environment in which the
computing stack can be fully customized, including the operating systems.
38
4.Hadoop
Apache Hadoop is an open-source framework that is suited for processing large data sets
on commodity hardware. Hadoop is an implementation of MapReduce, an application
programming model developed by Google, which provides two fundamental operations
for data processing: map and reduce. The former transforms and synthesizes the input data
provided by the user; the latter aggragates the output obtained by the map operations.
Hadoop provides the runtime environment, and developers need only provide the input
data and specify the map and reduce functions that need to be executed.
39
5 Force.com and Salesforce.com
Force.com is a cloud computing platform for developing social enterprise
applications. The platform is the basis for SalesForce.com, a Software-as-a-Service
solution for customer relationship management. Force.com allows developers to
create applications by composing ready-to-use blocks; a complete set of components
supporting all the activities of an enterprise are available. The platform provides
complete support for developing applications, from the design of the data layout to the
definition of business rules and workflows and the definition of the user interface.
40
6 Manjrasoft Aneka
Manjrasoft Aneka is a cloud application platform for rapid creation of
scalable applications and their deployment on various types of clouds in a
seamless and elastic manner. It supports a collection of programming
abstractions for developing applications and a distributed runtime
environment that can be deployed on heterogeneous hardware (clusters,
networked desktop computers, and cloud resources).