Chapter 1 - Introduction
Chapter 1 - Introduction
FUNDAMENTALS
Instructor: Saeid Abrishami
References
2
Introduction
Cloud Architecture
Virtualization
Programming Models
Big Data and Analytics in Cloud
Resource Management and Scheduling
Green Cloud Computing
Inter-Cloud and Brokerage
Edge and Fog Computing
Cloud Computing Fundamentals
Cloud Computing at a glance
5
Computing is being transformed into a model
consisting of services that are commoditized and
delivered in a manner similar to utilities such as water,
electricity, gas, and telephony
Users (consumers) need to pay providers only when
they access the computing services
In such a model, users access services based on their
requirements, regardless of where the services are
hosted
Cloud computing is the most recent emerging
paradigm promising to turn the vision of “computing
utilities” into a reality
Cloud Computing Fundamentals
Cloud Computing at a glance
7
The term cloud often denotes the
infrastructure as a “cloud” from which
businesses and users can access applications
as services from anywhere in the world and on
demand
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
Cloud Computing Fundamentals
The vision of cloud computing
8
I cannot invest
in
infrastructure, I
just started my I have
business…. infrastructure and
middleware and I
can host
applications
I want to focus on
application logic
and not
maintenance and
Global Cloud
scalability issues
Marketplace I have
infrastructure and
provide application
services
I want to access
and edit my
documents and
photos from
everywhere..
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
The long-term vision of cloud computing is that IT
services are traded as utilities in an open market.
Today, the discovery of services is mostly done by
human intervention
We imagine that 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
Cloud Computing Fundamentals
Defining a cloud
11
ISO definition
Cloud computing is a paradigm for enabling
network access to a scalable and elastic pool of
shareable physical or virtual resources with self‐
service provisioning and administration on‐
demand
Gartner definition
A style of computing where scalable and elastic
IT‐enabled capabilities are provided as a service
to multiple customers using Internet technologies
Cloud Computing Fundamentals
Defining a cloud
14
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
Cloud Computing Fundamentals
5-4-3 Principles of Cloud computing
16
Rapid elasticity
Capabilities can be rapidly and elastically provisioned, in
some cases automatically, to quickly scale out and
rapidly released to quickly scale in. To the consumer, the
capabilities available for provisioning often appear to be
unlimited and can be purchased in any quantity at any
time.
Measured service
Cloud systems automatically control and optimize
resource use by leveraging a metering capability at
some level of abstraction appropriate to the type of
service (e.g., storage, processing, bandwidth, and active
user accounts)
Cloud Computing Fundamentals
Another Important
19
Characteristic
Multitenancy
Cloud computing is a shared resource that
Public cloud
The cloud infrastructure is provisioned for open use by the
general public.
It may be owned, managed, and operated by a business,
academic, or government organization, or some combination
of them
Private cloud
The cloud infrastructure is provisioned for exclusive use by a
single organization comprising multiple consumers (e.g.,
business units)
It may be owned, managed, and operated by the
organization, a third party, or some combination of them
Private cloud
Virtual Private Cloud: is a segment of a public
cloud, designated for a user with additional
provisions and features for meeting that user’s
specific security and compliance requirements
Example: Amazon’s VPC
Community cloud
The cloud infrastructure is shared by several
organizations and supports a specific community
that has shared concerns
Hybrid cloud
The cloud infrastructure is a composition of two or
more distinct cloud infrastructures (private,
community, or public).
Applications
23
Development and
Runtime Platform
Compute
Cloud Manager
Private
Resources
Platform as a
Service
Runtime Environment for Applications
Development and Data Processing Platforms
Examples: Windows Azure, Hadoop, Google AppEngine, Aneka
Infrastructure as a
Service
Virtualized Servers
Storage and Networking
Examples: Amazon EC2, S3, Rightscale, vCloud
Cloud Computing Fundamentals
Software as a Service (SaaS)
26
The platform and tools for application development and
middleware systems are hosted by a vendor and
offered to application developers, allowing them simply
to code and deploy without directly interacting with the
underlying infrastructure
It is the responsibility of the service provider to provide
scalability and to manage fault tolerance, while users
are requested to focus on the logic of the application
developed by leveraging the provider’s APIs and
libraries
Examples: Google App Engine, Microsoft Azure
Services
Cloud Computing Fundamentals
Infrastructure as a Service
28
The capability provided to the consumer is to
provision processing, storage, networks, and other
fundamental computing resources on a pay-per-use
basis where he or she is able to deploy and run
arbitrary software, which can include operating
systems and applications.
Virtual hardware is utilized to provide compute on
demand in the form of virtual machine instances.
Virtual storage is delivered in the form of raw disk
space or object store.
Example: Amazon Elastic Compute Cloud (EC2),
GoGrid, and FlexiScale
Cloud Computing Fundamentals
Anything as a Service (XaaS)
29
No up-front commitments
Reduced capital and operational cost
On-demand access and scalability
Simplified application acceleration and
scalability
Availability of vast cloud resources for every
kind of application or use
Efficient resource allocation
Energy efficiency
Cloud Computing Fundamentals
Drawbacks of Cloud Computing
32
Distributed systems
Virtualization
Web 2.0
Service orientation
Utility computing
2010: Microsoft
1970: DARPA’s 1999: Grid Azure
TCP/IP Computing
1984: IEEE 1997: IEEE 2008: Google
802.3 802.11 (Wi- AppEngine
Ethernet & LAN Fi)
1966: Flynn’s Taxonomy
SISD, SIMD, MISD, 1989: TCP/IP
2007: Manjrasoft
MIMD IETF RFC
Aneka
1122
1969:
ARPANET 1984: 2005: Amazon
1951: UNIVAC I, DEC’s AWS (EC2,
First Mainframe VMScluster S3)
1975: Xerox
PARC 2004: Web
Clouds Invented Ethernet 1990: Lee-Calliau 2.0
WWW, HTTP,
1960: Cray’s
Grids First
HTML
Supercomputer
Clusters
Mainframes
Cluster computing started as a low-cost
alternative to the use of mainframes and
supercomputers
Cheap commodity machines could be connected
by a high-bandwidth network and controlled by
specific software tools that manage them as a
single system
Starting in the 1980s, clusters become the
standard technology for parallel and high-
performance computing
Known tools and frameworks: Condor, MPI, PVM
Cloud Computing Fundamentals
Distributed Systems
Grids
39
Grid computing appeared in the early 1990s as an
evolution of cluster computing
In an analogy to the power grid, grid computing
proposed a new approach to access large
computational power, huge storage facilities, and a
variety of services
Grids initially developed as aggregations of
geographically dispersed clusters by means of Internet
connections.
These clusters belonged to different organizations, and
arrangements were made among them to share the
computational power
Cloud Computing Fundamentals
Distributed Systems
Grids
40
Virtualization technologies are also used to
replicate runtime environments for programs
Applications in the case of process virtual
machines (which include the foundation of
technologies such as Java or .NET), instead of
being executed by the operating system, are run
by a specific program called a virtual machine
This approach is used in cloud computing to
provide a platform for scaling applications on
demand, such as Google AppEngine and
Windows Azure
Cloud Computing Fundamentals
Web 2.0
46
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
This evolution has transformed the Web into a rich
platform for application development and is known as Web
2.0
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
Cloud Computing Fundamentals
Web 2.0
47
Service Composition
Service Orchestration: a single centralized executable
business process (the orchestrator) that coordinates
the interaction among different services. The
orchestrator is responsible for invoking and combining
the services
like in an orchestra
Service Choreography: is a global description of the
participating services, which is defined by exchange of
messages, rules of interaction and agreements
between two or more endpoints
like in a dancing stage
Principles of designing an SOA platform
Standardized service contract: Services adhere to a
given communication agreement, which is specified
through one or more service description documents
Loose coupling: Services are designed as self-
contained components, maintain relationships that
minimize dependencies on other services, and only
require being aware of each other
Abstraction: A service is completely defined by
service contracts and description documents. They
hide their logic, which is encapsulated within their
implementation
Service-oriented computing introduces important
concepts
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
QoS requirements are established between the client and
the provider via an SLA (Service Level Agreement)
Software-as-a-Service in which application service
providers (ASPs) deliver software services-based
solutions across the wide area network from a central
datacenter
One of the most popular expressions of service
orientation is represented by Web Services
(WS)
These introduce the concepts of SOC into the
World Wide Web, by making it consumable by
applications and not only humans
Web services are software components that
expose functionalities accessible using a
method invocation pattern that goes over the
HTTP
Quality of Service
Static UDDI Service Discovery
Management
Direct UDDI Service Publication
Security
WSDL Service Description
SOAP
XML-based
Messaging
HTTP, FTP,e-mail, MQ, IIOP, …. Network
<?xml version=“1.0”>
Envelope
<soap:Envelope xmlns:soap=“http//www.w3.org/2001/12/soap-envelope”
soap:encondingStyle=“http//www.w3.org/2001/12/soap-encoding”>
Header: Metadata &
<soap:Header></soap:Header> Assertions
<soap:Body xmlns:m=http://www.stocks.org/stock>
<m:GetStockPrice>
<m:StockName>IBM<m:StockName>
</m:GetStockPrice>
</soap:Body>
Body: Method Call
</soap:Envelope>
<?xml version=“1.0”>
Envelope
<soap:Envelope xmlns:soap=“http//www.w3.org/2001/12/soap-envelope”
soap:encondingStyle=“http//www.w3.org/2001/12/soap-encoding”>
Header: Metadata &
<soap:Header></soap:Header> Assertions
<soap:Body xmlns:m=http://www.stocks.org/stock>
<m:GetStockPriceResponse>
<m:Price>34.5<m:Price>
</m:GetStockPriceResponse>
</soap:Body>
Body: Execution Result
</soap:Envelope>
In a RESTful system, a client sends a request over
HTTP using the standard HTTP methods (PUT, GET,
POST, and DELETE), and the server issues a
response that includes the representation of the
resource.
By relying on this minimal support, it is possible to
provide whatever it needed to replace the basic and
most important functionality provided by SOAP, which
is method invocation
The content of data is still transmitted using XML as
part of the HTTP content, but the additional markup
required by SOAP is removed
Cloud Computing Fundamentals
Utility-oriented computing
68
AWS offers comprehensive cloud IaaS services
ranging from virtual compute, storage, and
networking to complete computing stacks
AWS is mostly known for three services
Elastic Compute Cloud (EC2)
Amazon Elastic Block Store (EBS)
provides persistent block storage volumes for use with
Amazon EC2 instances in the AWS Cloud.
Simple Storage Service (S3)
Users can store objects of any size, from simple files to
entire disk images, and have them accessible from
everywhere.
Network
Dedicated EBS
Model vCPU* Mem (GiB) Storage (GiB) Performance
Bandwidth (Mbps)
(Gbps)
c5.large 2 4 EBS-Only Up to 3,500 Up to 10
c5.xlarge 4 8 EBS-Only Up to 3,500 Up to 10
c5.2xlarge 8 16 EBS-Only Up to 3,500 Up to 10
c5.4xlarge 16 32 EBS-Only 3,500 Up to 10
c5.9xlarge 36 72 EBS-Only 7,000 10
c5.18xlarge 72 144 EBS-Only 14,000 25
c5d.large 2 4 1 x 50 NVMe SSD Up to 3,500 Up to 10
Google AppEngine is a scalable runtime environment
mostly devoted to executing 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
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
The languages currently supported are Java, PHP,
Node.js, Python, C#, .Net, Ruby and Go
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.
It is also possible to develop your own components or
integrate those available in AppExchange into your
applications.
Cloud Computing Fundamentals
Cloud Open Source Tools
77
OpenStack (IaaS)
RedHat OpenShift Origin (PaaS)
Cloud Foundry (PaaS)
Cloud Infrastructure Automation Tools
Chef
Puppet
Zenoss
OpenStack is a free and open-source software
platform for cloud computing, mostly deployed as
infrastructure-as-a-service (IaaS), whereby virtual
servers and other resources are made available to
customers
The software platform consists of interrelated
components that control diverse, multi-vendor
hardware pools of processing, storage, and
networking resources throughout a data center
Users either manage it through a web-based
dashboard, through command-line tools, or through
RESTful web services
Cloud Computing Fundamentals
OpenStack
Components
79
OpenStack Compute (Nova)
is a cloud computing fabric controller, which is the main
part of an IaaS system
It is designed to manage and automate pools of
computer resources and can work with widely available
virtualization technologies such as Vmware, KVM, Xen
Networking (Neutron)
is a system for managing networks and IP addresses
Users can create their own networks, control traffic, and
connect servers and devices to one or more networks
Administrators can use software-defined networking
(SDN)
Image (Glance)
Provides discovery, registration, and delivery
services for disk and server image
Object Storage (Swift)
Is a scalable redundant storage system
Objects and files are written to multiple disk
drives spread throughout servers in the data
center, with the OpenStack software responsible
for ensuring data replication and integrity across
the cluster
Cloud Computing Fundamentals
OpenStack
Components
83
Dashboard (Horizon)
Provides administrators and users with a graphical
interface to access, provision, and automate
deployment of cloud-based resources
The design accommodates third party products and
services, such as billing, monitoring, and additional
management tools
Database as a Service(Trove)
Elastic map reduce (Sahara)
Shared file system (Manila)
Cloud Computing Fundamentals
OpenShift Origin (OKD)
84
Chef
Is a systems and cloud infrastructure‐automation framework
that makes it easy to deploy servers and applications to any
physical, virtual, or cloud location
Puppet
Is an IT automation tool to manage infrastructure from