CC_Module1
CC_Module1
CC_Module1
Introduction:
Introduction ,Cloud Computing at a Glance, Historical Developments, Building Cloud Computing
Environments, Amazon Web Services (AWS), Google AppEngine, Microsoft Azure, Hadoop,
Force.com and Salesforce.com, Manjrasoft Aneka
Introduction
Cloud Computing enables customers to use the information and applications via the
internet, without installing and maintaining them on-premises.
Cloud computing allows renting infrastructure, runtime environments, and services on a pay per-
use basis. End users leveraging (use) cloud computing services can access their documents and
data anytime, anywhere, and from any device connected to the Internet. 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.
The Vision of Cloud Computing
Vision of cloud computing is that in the near future it will be possible to find the solution that
matches the customer needs by simply entering our request in a global digital market that trades
cloud computing services.
Defining a Cloud
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. This
aspect is also reflected in the definition given by Armbrust:
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.
The notion of multiple parties using a shared cloud computing environment is highlighted in a
definition proposed by the U.S. National Institute of Standards and Technology (NIST):
Cloud computing is a model for enabling ubiquitous (present everywhere) , convenient, on-
demand network access to a shared pool of configurable computing resources (e.g.,
networks, servers, storage, applications, and services) that can be rapidly provisioned and
released with minimal management effort or service provider interaction.
According to Reese, we can define three criteria to discriminate whether a service is delivered in
the cloud computing style:
The service is accessible via a Web browser or a Web services application programming
interface (API).
You pay only for what you use as you use it.
A Closer Look
Cloud computing is helping enterprises, governments, public and private institutions, and
research organizations shape more effective and demand-driven computing systems. Practical
examples of such systems exist across all market segments:
The three major models for deploying and accessing cloud computing environments are public
clouds, private/enterprise clouds, and hybrid clouds
Public clouds are the most common deployment models in which necessary IT infrastructure
(e.g., virtualized datacenters) is established by a third-party service provider that makes it
available to any consumer on a subscription basis. Such clouds are appealing to users because
they allow users to quickly leverage compute, storage, and application services. In this
environment, users’ data and applications are deployed on cloud datacenters on the vendor’s
premises. The infrastructure is made available to public.
Hybrid cloud – It is the composition of 2 or more clouds. Whenever private cloud resources are
unable to meet users’ quality-of-service requirements, hybrid computing systems, partially
composed of public cloud resources and privately owned infra- structures, are created to serve
the organization’s needs. These are often referred as hybrid clouds, which are becoming a
common way for many stakeholders to start exploring the possibilities offered by cloud
computing
The cloud computing reference model
Infrastructure-as-a-Service (IaaS),
Software-as-a-Service (SaaS)
Cloud computing has some interesting characteristics that bring benefits to both cloud service
consumers (CSCs) and cloud service providers (CSPs). These characteristics are:
No up-front commitments: You don’t have to contractually agree to a specific amount
of usage up-front, it is based on “pay as you go” approach.
On demand access
Nice pricing
Simplified application acceleration and scalability
Efficient resource allocation
Energy efficiency
Seamless creation and use of third- party services
Challenges Ahead
1. Data Security and Privacy
Even if the cloud service provider assures data integrity, it is your responsibility to carry
out user authentication and authorization, identity management, data encryption, and
access control.
2. Cost Management
Almost all cloud service providers have a “Pay As You Go” model, which reduces the
overall cost of the resources being used, there are times when there are huge costs
incurred to the enterprise using cloud computing. When there is under optimization of the
resources, let’s say that the servers are not being used to their full potential, add up to the
hidden costs.
3. Performance Challenges
If the performance of the cloud is not satisfactory, it can drive away users and decrease
profits. Even a little latency while loading an app or a web page can result in a huge
drop in the percentage of users.
Historical developments
The idea of renting computing services by leveraging large distributed computing facilities has
been around for long time. It dates back to the days of the mainframes in the early 1950s. From
there on, technology has evolved and been refined. This process has created a series of
favorable conditions for the realization of cloud computing.
In tracking the historical evolution, we briefly review five core technologies that played an
important role in the realization of cloud computing. These technolo- gies are distributed
systems, virtualization, Web 2.0, service orientation, and utility computing.
Distributed systems
Clouds are essentially large distributed computing facilities that make available their services
to third parties on demand.
Three major milestones have led to cloud computing: mainframe computing, cluster
computing and grid computing.
Mainframes were powerful, highly reliable computers specialized for large data movement
and massive input/output (I/O) operations. They were 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. One of the most attractive
features of mainframes was the ability to be 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.
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.
Service-Oriented Computing
Service orientation is the core reference model for cloud computing systems. Service-oriented
computing (SOC) supports the development of rapid, low-cost, flexible, interoperable, and
evolvable applications and systems.
Virtually any piece of code that performs a task can be turned into a service and expose its
functionalities through a network-accessible protocol.
Service-oriented computing introduces and diffuses two important concepts, which are also
fundamental to cloud computing: quality of service (QoS) and Software-as-a-Service (SaaS).
Quality of service (QoS) identifies a set of functional and nonfunctional attributes that can be
used to evaluate the behavior of a service from different perspectives. These could be
performance metrics such as response time, or security attributes, transactional integrity,
reliability, scalability, and availability. QoS requirements are established between the client and
the provider via an SLA that identifies the minimum values (or an acceptable range) for the QoS
attributes that need to be satisfied upon the service call.
The concept of Software-as-a-Service introduces a new delivery model for applications.
Utility computing is a vision of computing that defines a service-provisioning model for compute
services in which resources such as storage, compute power, applications, and infrastructure are
packaged and offered on a pay-per-use basis.
Application development
Applications that leverage cloud computing benefit from its capability to dynamically scale on
demand. One class of applications that takes the biggest advantage of this feature is that of Web
applications.
Another class of applications that can potentially gain considerable advantage by leveraging
cloud computing is represented by resource-intensive applications.
These can be either data-intensive or compute-intensive applications. In both cases, considerable
amounts of resources are required to complete execution in a reasonable timeframe.
Google AppEngine
Google AppEngine is a scalable runtime environment mostly devoted to executing Web
applications. Google App Engine is a cloud computing platform used as a service for developing
and hosting of web applications. AppEngine provides both a secure execution environment and a
collection of services that simplify the development of scalable and high performance web
applications. The services include in-memory caching, scalable data store, job queues and
messaging. Developers can build and test applications on their own machines using the
AppEngine software development kit (SDK), which replicates the production runtime
environment and helps test and profile applications. Once development is complete, developers
can easily migrate their application to AppEngine, and make the application available to the
world. The languages currently supported are Python, Java.
Microsoft Azure
Microsoft Azure is a cloud operating system and a platform for developing applications in the
cloud. It provides a scalable runtime environment for Web applications and distributed
applications in general. Applications in Azure are organized around the concept of roles.
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.
Besides roles, Azure provides a set of additional services that complement application execution,
such a support for storage, networking, caching, content delivery and others.
Hadoop
Hadoop is an open source software programming framework for storing a large amount of data
and performing the computation. Its framework is based on Java programming with some native
code in C and shell scripts.
Hadoop is an open-source software framework that is used for storing and processing large
amounts of data in a distributed computing environment. Hadoop is an implementation of
MapReduce, an application programming model, developed by Google. It provides 2
fundamental operations for data processing: Map & Reduce.
The former transforms and synthesizes the input data provided by the user. The latter aggregates
the output obtained by 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.
Yahoo! The sponsor of the Apache Hadoop project, has put considerable efforts into
transforming the project into an enterprise ready cloud computing platform for data processing.
Currently, Yahoo! Manages the largest Hadoop cluster in the world.
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).
Question Bank
1. Explain with suitable diagram the cloud computing reference model.
2. Discuss in detail the major deployment models for cloud computing.
3. What is cloud computing? Explain its characteristics and benefits.
4. Discuss about the milestones which have led to cloud computing
5. Explain the core technologies that play an important role in the realization of cloud
computing.
6. Write a note on challenges in cloud computing.