Cloud Computing
Module – 1 : Introduction to Cloud Computing
1. The vision of cloud computing
2. Definition of Cloud
3. A Closer look
4. On premise data center v/s cloud
5. Characteristics and benefits
6. Evolution of Cloud Computing
7. Cloud Computing reference model
8. Challenges ahead
9. Computing platforms and technologies
Cloud Computing - Overview
What is Cloud Computing?
⮚ Cloud computing is the most recent emerging paradigm promising to turn the vision of “computing utilities”
into a reality.
⮚ Cloud computing is a technological advancement that focuses on the way we design computing systems,
develop applications, and leverage existing services for building software.
⮚ It is based on the concept of dynamic provisioning, which is applied not only to services but also to compute
capability, storage, networking, and information technology (IT) infrastructure in general.
⮚ Resources are made available through the Internet and offered on a pay-per-use basis from cloud computing
vendors.
⮚ Today, anyone with a credit card can subscribe to cloud services and deploy and configure servers for an
application in hours, growing and shrinking the infrastructure serving its application according to the
demand, and paying only for the time these resources have been used.
View of Cloud Computing:
“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 long as I need it”.
1. The Vision Of Cloud Computing
CC services are:
► Cloud computing allows anyone with a credit card to provision virtual
hardware, runtime environments, and services.
► Despite its evolution, the use of cloud computing is often limited to a single
service at a time or, more commonly, a set of related services offered by the
same vendor.
► Many of the technological elements contributing to this vision already exist.
o Different stake- holders leverage clouds for a variety of services.
o The need for ubiquitous storage and compute power on demand is the most common
reason to consider cloud computing.
o A scalable runtime for applications is an attractive option for application and system
developers that do not have infra-structure or cannot afford any further expansion of
existing infrastructure.
o The capability for Web-based access to documents and their processing using
sophisticated applications is one of the appealing factors for end users.
► Vision of CC are:
o In the near future it will be possible to find the solution that matches our needs by
simply entering our request in a global digital market that trades cloud computing
services.
o The existence of such a market will enable the automation of the discovery
process and its integration into existing software systems, thus allowing users to
transparently leverage cloud resources in their applications and systems.
o Establishment of a global cloud computing marketplace and by defining effective
standards for the unified representation of cloud services as well as the
interaction among different cloud technologies.
o A considerable shift toward the core capabilities of cloud computing into large
datacenters, it is possible to reduce or remove the need for any technical
infrastructure on the service consumer side.
o This approach provides opportunities for optimizing datacenter facilities and fully
utilizing their capabilities to serve multiple users.
o This consolidation model will reduce the waste of energy and carbon emissions,
thus contributing to a greener IT on one end and increasing revenue on the other
end.
2. Defining a Cloud
Definition of Cloud:
► The term cloud has historically been used in the telecommunications industry as an abstraction
of the network in system diagrams.
► 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.
► Cloud computing is 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) that can be rapidly provisioned and released with minimal management effort or
service provider interaction.
► A cloud is a type of parallel and distributed system consisting of a collection of interconnected
and virtualized computers that are dynamically provisioned and presented as one or more unified
computing resources based on service-level agreements established through negotiation between
the service provider and consumers.
► NIST Defines Cloud Computing as “Cloud computing is 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)
that can be rapidly provisioned and released with minimal management effort or
service provider interaction.”
► According to Reese, User 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).
⮚ Zero capital expenditure is necessary to get started.
⮚ You pay only for what you use as you use it.
3. 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:
⮚ Large enterprises can offload some of their
activities to cloud-based systems.
⮚ Small enterprises and start-ups can afford to
translate their ideas into business results more
quickly, without excessive up-front costs.
⮚ System developers can concentrate on the
business logic rather than dealing with the
complexity of infrastructure management and
scalability.
⮚ End users can have their documents
accessible from everywhere and any device.
Major Deployment models for Cloud Computing
► 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.
► Private Clouds - Institutions such as
governments and banks that have
high security, privacy, and regulatory
concerns prefer to build and use their
own private or enterprise clouds.
► Hybrid Clouds - partially composed
of public cloud resources and
privately owned infrastructures, are
created to serve the organization’s
needs.
4. On Premise Data center vs Cloud
5. Characteristics and Benefits
Cloud computing has some interesting characteristics that bring benefits to both
cloud service consumers (CSCs) and cloud service providers (CSPs).
Characteristics of Cloud Computing:
⮚ No up-front commitments
⮚ On-demand access
⮚ Nice pricing
⮚ Simplified application acceleration and scalability
⮚ Efficient resource allocation
⮚ Energy efficiency
⮚ Seamless creation and use of third-party services
The most evident benefit from the use of cloud computing systems and technologies
is the increased economical return due to the reduced maintenance costs and
operational costs related to IT software and infrastructure.
6. Evolution of Cloud Computing
► Computer technology has gone through
five generations of development, with each
generation lasting from 10 to 20 years.
Successive generations are overlapped in
about 10 years. For instance,
► From 1950
mainframes,
to 1970, a handful of
including the IBM 360 and
CDC 6400, were built to satisfy the
demands of large businesses and
government organizations.
► From 1960 to 1980, lower-cost
minicomputers such as the DEC PDP 11
and VAX Series became popular among
small businesses and on college campuses.
► From 1970 to 1990, widespread use of
personal computers built with VLSI
microprocessors.
► From 1980 to 2000, massive numbers of
portable computers and pervasive devices
appeared in both wired and wireless
applications.
High-Performance Computing
► The speed of HPC systems has increased from Gflops in the early 1990s to now
Pflops in 2010. This improvement was driven mainly by the demands from
scientific, engineering, and manufacturing communities
High-Throughput Computing
► The development of market-oriented high-end computing systems requires HTC
systems that pays more attention to high-flux computing. The main application
for high-flux computing is in Internet searches and web services by millions of
users simultaneously. The performance goal thus shifts to measure high
throughput or the number of tasks completed per unit of time.
Three New Computing Paradigms
► Introduction of SoA leads to the development of Web services.
► Virtualization technology develops internet of clouds.
► Radio-frequency identification (RFID), Global Positioning System (GPS), and
sensor technologies has triggered the development of the Internet of Things
(IoT).
Computing Paradigm Distinctions
The field of parallel computing overlaps with distributed computing to a great extent, and cloud
computing overlaps with distributed, centralized, and parallel computing.
► Centralized computing this is a computing paradigm by which all computer resources are
centralized in one physical system. All resources (processors, memory, and storage) are fully
shared and tightly coupled within one integrated OS.
► Parallel computing in parallel computing, all processors are either tightly coupled with
centralized shared memory or loosely coupled with distributed memory.
► Distributed computing A distributed system consists of multiple autonomous computers, each
having its own private memory, communicating through a computer network.
► Cloud computing An Internet cloud of resources can be either a centralized or a distributed
computing system. Clouds can be built with physical or virtualized resources over large data
centers that are centralized or distributed.
► Ubiquitous computing refers to computing with pervasive devices at any place and time using
wired or wireless communication. The Internet of Things (IoT) is a networked connection of
everyday objects including computers, sensors, humans, etc. The IoT is supported by Internet
clouds to achieve ubiquitous computing with any object at any place and time.
► Finally, the term Internet computing is even broader and covers all computing paradigms over
the Internet.
7. Cloud Computing Reference Model
► A fundamental characteristic of cloud computing is the capability to deliver, on
demand, a variety of IT services that are quite diverse from each other.
► It is possible to classify cloud computing services offerings into three major
categories: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), and
Software-as-a-Service (SaaS). These categories are related to each other which
provides an organic view of cloud computing.
► Infrastructure-as-a-Service solutions deliver infrastructure on demand in the
form of virtual hardware, storage, and networking. Virtual hardware is utilized to
provide compute on demand in the form of virtual machine instances. These are
created at users’ request on the provider’s infrastructure, and users are given
tools and interfaces to configure the software stack installed in the virtual
machine.
► Platform-as-a-Service solutions are the next step in the stack. They deliver
scalable and elastic runtime environments on demand and host the execution of
applications. These services are backed by a core middleware platform that is
responsible for creating the abstract environment where applications are
deployed and executed.
► Software-as-a-Service solutions provide applications and services on demand.
Most of the common functionalities of desktop applications—such as office
automation, document management, photo editing, and customer relationship
management (CRM) software are replicated on the provider’s infrastructure and
made more scalable and accessible through a browser on demand. These
applications are shared across multiple users whose interaction is isolated from the
other users.
8. Challenges Ahead
► New, interesting problems and challenges are regularly being posed to the cloud
community, including IT practitioners, managers, governments, and regulators.
A new set of challenges concerning the dynamic provisioning of cloud computing
services and resources are:
❑ In IaaS – How many resources need to be provisioned, and for how long should they be
used, in order to maximize the benefit?
❑ Security in terms of confidentiality, secrecy, and protection of data in a cloud environment
is another important challenge.
❑ Assurance on the confidentiality of data and compliance to security standards, which give a
minimum guarantee on the treatment of information on cloud computing systems, are
sought.
❑ Legal issues may also arise. These are specifically tied to the ubiquitous nature of cloud
computing, which spreads computing infrastructure across diverse geographical locations.
❑ Different legislation about privacy in different countries may potentially create disputes as
to the rights that third parties (including government agencies) have to your data.
❑ European countries are more restrictive and protect the right of privacy.
9. 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.
► 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.
❑ 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.
❑ Besides EC2 and S3, a wide range of services can be leveraged to build virtual computing
systems. including networking support, caching systems, DNS, database (relational and not)
support, and others.
► 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.
❑ 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, set quotas to contain the costs generated, and make the application available to the
world.
❑ The languages currently supported are Python, Java, and Go.
► 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, which identify a
distribution unit for applications and embody the application’s logic.
❑ 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
✔ The virtual machine role provides a virtual environment in which the computing stack
can be fully customized, including the operating systems.
► 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 Map transforms and synthesizes the input data provided by the user; the
Reduce aggregates the output obtained by the map operations.
❑ Hadoop is an integral part of the Yahoo! cloud infrastructure and supports several
business processes of the company. Currently, Yahoo! manages the largest
Hadoop cluster in the world, which is also available to academic institutions.
► [Link] and [Link]
❑ [Link] is a cloud computing platform for developing social enterprise
applications.
❑ The platform is the basis for [Link], a Software-as-a-Service solution for
customer relationship management.
❑ [Link] 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.
❑ It is also possible to develop your own components or integrate those available in
AppExchange into your applications.
❑ 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.
❑ The [Link] platform is completely hosted on the cloud and provides complete
access to its functionalities and those implemented in the hosted applications
through Web services technologies.
► Manjrasoft Aneka
❑ Manjrasoft Aneka [165] 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).
❑ Developers can choose different abstractions to design their application: tasks,
distributed threads, and map-reduce. These applications are then executed on
the distributed service-oriented runtime environment, which can dynamically
integrate additional resource on demand.
❑ Services manage most of the activities happening at runtime: scheduling,
execution, accounting, billing, storage, and quality of service.
Summary
► From the perspective of software design and development, new challenges
arise in engineering computing systems.
► Cloud computing offers a rich mixture of different technologies, and
harnessing them is a challenging engineering task.
► Cloud computing introduces both new opportunities and new techniques
and strategies for architecting software applications and systems.
► Some of the key elements that have to be taken into account are
virtualization, scalability, dynamic provisioning, big datasets, and cost
models.