Ahmad Shah Sultani presented on cloud computing using the Apache CloudStack open source platform. He discussed the history and characteristics of cloud computing, different service models (SaaS, PaaS, IaaS), and types of cloud storage. He also explained concepts like virtualization and the benefits of using open source software to build clouds. Sultani demonstrated how to deploy CloudStack on virtualized servers to create a private cloud and manage virtual machines through its web-based user interface.
1. Presented By: Ahmad Shah Sultani
M.Sc. Computer Science
South Asian University
New Delhi, India.
01-12-2014
2. Outline
Overview of Cloud Computing
Cloud Computing History
Characteristics of Cloud
Computing
Cloud Computing Service
Models
Types of Cloud Storage
Virtualization
Advantages & Disadvantages
Open Source Cloud Computing
Cloud Stack
Open Source Cloud Computing
Open Source Hypervisors
CloudStack Open Source Cloud
Computing
Deployment Architecture
Management Server
Hypervisor Host
Installation & Configuration
Log in UI Access
Dashboard Screenshots
Goals
Conclusion
References
3. What is Cloud Computing?
“Cloud computing is a style of computing
where massively scalable IT-related
capabilities are provided as a service across the
Internet to multiple external customers”
“Cloud computing: A pool of abstracted, highly
scalable, and managed infrastructure capable of
hosting end-customer applications and billed by
consumption”
“Cloud computing isWeb-based processing, whereby
shared resources, software, and information are provided
to computers and other devices (such as smart phones) on
demand over the Internet.”
4. What is Cloud Computing?
“Cloud computing is a style of computing where
massively scalable IT-related capabilities are
provided as a service across the Internet to
multiple external customers”
“Cloud computing: A pool of abstracted, highly
scalable, and managed infrastructure capable
of hosting end-customer applications and
billed by consumption”
“Cloud computing isWeb-based processing, whereby
shared resources, software, and information are provided
to computers and other devices (such as smart phones) on
demand over the Internet.”
5. What is Cloud Computing?
“Cloud computing is a style of computing where
massively scalable IT-related capabilities are
provided as a service across the Internet to
multiple external customers”
“Cloud computing: A pool of abstracted, highly
scalable, and managed infrastructure capable of
hosting end-customer applications and billed by
consumption”
“Cloud computing isWeb-based processing, whereby
shared resources, software, and information are
provided to computers and other devices (such as
smart phones) on demand over the Internet.”
6. Continued…
“Cloud Computing is a general term used to describe a
new class of network based computing that takes place
over the Internet”
LEADING FACET OF NETWORKING- CLOUD COMPUTING
7. HISTORY
The general idea behind the technology dates back to the 1960s,
when John McCarthy wrote that “computation may
someday be organized as a public utility.”
Then, grid computing, a concept that originated in the early
1990s as an idea for making computer power as easy to access
as an electric power grid also contributed to cloud
computing.
8. One of the first movers in cloud computing was
Salesforce.com, which in 1999 introduced the concept of
delivering enterprise applications via a simple website.
In 2002 Amazon started Amazon Web Services, providing
services like storage, computation and even human
intelligence.
The year 2006 also saw the introduction of Amazon’s Elastic Compute cloud (EC2) as a
commercial web service that allowed small companies and individuals to rent computers on
which to run their own computer applications.
10. But 2009 marked a key turning point in the evolution of cloud
computing, with the arrival of browser based cloud enterprise applications,
with the best known being Google Apps Working on Google Chrome.
11. A Golden Era in Computing..
Powerful multi-core
processors
General
purpose
graphic
processors
Superior software
methodologies
Virtualization
leveraging the
powerful hardware
Explosion of
domain
applications
Proliferation
of devices
Wider bandwidth for
communication
12. Characteristics of Clouds
1. On-Demand Self-Service
2. Broad Network Access
3. Resource Pooling
4. Rapid Elasticity
5. Measured Service
6. Per-usage based pricing model
7. IP-based architecture, etc…
13. Cloud Computing Service Models
USER CLOUD a.k.a. SOFTWARE AS A SERVICE
Single application, multi-tenancy, network-based, one-to-many delivery of
applications, all users have same access to features.
Examples: Salesforce.com, Google Docs, Red Hat Network/RHEL
DEVELOPMENT CLOUD a.k.a. PLATFORM-AS-A-SERVICE
Application developer model, Application deployed to an elastic service that
autoscales, low administrative overhead. No concept of virtual machines or
operating system. Code it and deploy it.
Examples: Google AppEngine, Windows Azure, Rackspace Site, Red Hat
Makara
SYSTEMS CLOUD a.k.a INFRASTRUCTURE-AS-A-SERVICE
Servers and storage are made available in a scalable way over a network.
Examples: EC2,Rackspace CloudFiles, OpenStack, CloudStack,
Eucalyptus, Ubuntu Enterprise Cloud, OpenNebula
14.
15. Software as a Service (SaaS)
SaaS is a software delivery methodology that
provides licensed multi-tenant access to
software and its functions remotely as a
Web-based service.
Usually billed based on usage
Usually multi tenant environment
Highly scalable architecture
17. Platform as a Service (PaaS)
PaaS provides all of the facilities required
to support the complete life cycle of
building and delivering web applications
and services entirely from the Internet.
Typically applications must be developed
with a particular platform in mind
Multi tenant environments
Highly scalable multi tier architecture
19. Infrastructure as a Server (IaaS)
IaaS is the delivery of technology infrastructure
as an on demand scalable service
Usually billed based on usage
Usually multi tenant virtualized
environment
Can be coupled with Managed Services for
OS and application support
22. Cloud Storage
Cloud storage means "the storage of data online in
the cloud," wherein a company's data is stored in and
accessible from multiple distributed and connected
resources that comprise a cloud.
Cloud storage can provide the benefits of greater
accessibility and reliability; rapid deployment; strong
protection for data backup, archival and disaster
recovery purposes; and lower overall storage costs as a
result of not having to purchase, manage and maintain
expensive hardware. However, cloud storage does have the
potential for security and compliance concerns.
23. Types of Cloud Storage
1. Public Cloud
2. Private Cloud
3. Hybrid Cloud
24. Public Cloud
A form of cloud storage
where the enterprise and
storage service provider are
separate and the data is
stored outside of the
enterprise's data center.
25. Private Cloud
The phrase used to describe a cloud
computing platform that is implemented
within the corporate firewall, under the
control of the IT department.
A private cloud is designed to offer the
same features and benefits of public
cloud systems, but removes a number of
objections to the cloud computing
model including control over enterprise
and customer data, worries about
security, and issues connected to
regulatory compliance.
26. Hybrid Cloud
A combination of public cloud
storage and private cloud storage
where some critical data resides
in the enterprise's private cloud
while other data is stored and
accessible from a public cloud
storage provider.
27.
28. Virtualization
Virtualization is “something which is not REAL, but displays
the full qualities of the REAL”.
Virtualization :
• hardware platform,
• operating system,
• storage device,
• network resources,
• Software implementation.
29. Virtualization
App App App
Operating System
Hardware
Traditional Stack
App App App
OS OS
Hardware
OS
Hypervisor
Virtualized Stack
31. Virtualization
Hardware virtualization
In hardware virtualization, the host machine is the actual
machine on which the virtualization takes place, and the
guest machine is the virtual machine. The words host and
guest are used to distinguish the software that runs on
the actual machine from the software that runs on the
virtual machine. The software or firmware that creates a
virtual machine on the host hardware is called a
hypervisor or Virtual Machine Manager.
32. Desktop virtualization
Desktop virtualization (sometimes called client
virtualization) is a concept which separates a personal
computer desktop environment from a physical
machine using the client–server model of computing.
35. Core Advantages
Cost saving: You pay for what you use
Easy on installation and maintenance
Increased storage
Highly automated
Flexibility
Better mobility
Shared resources
Back up and restoration
36. Disadvantages
Data security and privacy
Network connectivity and bandwidth
Service unavailability due to power outage
Dependence on outside agencies
Limited flexibility
Knowledge and integration
Long term stability of service provider
38. Why Open Source?
User-Driven Solutions to Real Problems
Lower barrier to participation
Larger user base, users helping users
Aggressive release cycles stay current with the state-of-the-art
Open data, Open standards, Open APIs
39. Open Virtual Machine Formats
Open Virtualization Format (OVF) is an open
standard for packaging and distributing virtual
appliances or more generally software to be run in virtual
machines.
Formats for hypervisors/cloud technologies:
• Amazon - AMI
• KVM – QCOW2
• VMware – VMDK
• Xen – IMG
• VHD – Virtual Hard Disk - Hyper-V
40. Open Source Hypervisors
Open Source
Xen, Xen Cloud Platform (XCP)
KVM – Kernel-based Virtualization
VirtualBox* - Oracle supported Virtualization Solutions
OpenVZ* - Container-based, Similar to Solaris Containers or BSD Zones
LXC – User Space chrooted installs
Proprietary
VMware
Citrix Xenserver
Microsoft Hyper-V
OracleVM (Based on OS Xen)
41. Open Source Compute Clouds
Year Started License Hypervisors
Supported
2008 GPL Xenserver, Xen Cloud
Platform, KVM,
VMware
2006 GPL Xen, KVM, VMware
2010
(Developed by
NASA by Anso
Labs
previously)
Apache VMware ESX and ESXi,
Microsoft Hyper-V, Xen,
KVM and Virtual Box
Other open source compute software include Abiquo, Red Hat’s CloudForms and OpenNebula
Numerous companies are building cloud software on OpenStack including Nebula, Piston Inc., CloudScaling
42. CloudStack Open Source
Cloud Computing
Apache CloudStack is open source software designed to
deploy and manage large networks of virtual machines, as a
highly available, highly scalable Infrastructure as a Service
(IaaS) cloud computing platform.
CloudStack is used by a number of service providers to
offer public cloud services, and by many companies to
provide an on-premises (private) cloud offering, or as part
of a hybrid cloud solution.
Provides a friendly Web-based UI for managing the cloud.
43. CloudStack currently supports the most popular
hypervisors:
VMware, KVM, XenServer, Xen Cloud Platform (XCP)
and Hyper-V.
Users can manage their cloud with an easy to use Web
interface, command line tools, and/or a full-featured
RESTful API.
Apache CloudStack is a mature, turnkey integrated
Infrastructure-as-a-Service (IaaS) Open Source software
platform that allows users to build feature-rich public and
private cloud environments.
46. Small Scale CloudStack Deployment
A firewall provides a connection
to the Internet. The firewall is
configured in NAT mode. The
firewall forwards HTTP requests
and API calls from the Internet
to the Management Server. The
Management Server resides on
the management network.
A layer-2 switch connects all
physical servers and storage.
A single NFS server functions as
both the primary and secondary
storage.
The Management Server is
connected to the management
network.
47. Deployment Architecture Overview
The minimum installation
consists of one machine
running the CloudStack
Management Server and
another machine to act as the
cloud infrastructure (in this
case, a very simple
infrastructure consisting of
one host running hypervisor
software).
In its smallest deployment, a
single machine can act as
both the Management Server
and the hypervisor host
(using the KVM hypervisor).
48. Management Server
Provides the web interface for both the administrator and
end user.
Provides the API interfaces for both the CloudStack API as
well as the EC2 interface.
Manages the assignment of guest VMs to a specific
compute resource
Manages the assignment of public and private IP addresses.
Allocates storage during the VM instantiation process.
Manages snapshots, disk images (templates), and ISO
images.
Provides a single point of configuration for your cloud.
49. Hypervisor Host
A host is a single computer.
Hosts provide the
computing resources that
run guest virtual machines.
Each host has hypervisor
software installed on it to
manage the guest VMs. For
example, a host can be a
Citrix XenServer server, a
Linux KVM-enabled
server, an ESXi server, or a
Windows Hyper-V server.
For a host to function in
CloudStack, you must do
the following:
Install hypervisor software
on the host
Assign an IP address to the
host
Ensure the host is
connected to the
CloudStack Management
Server.
50. Installation
Overview of
Installation Steps
Choosing a Deployment
Architecture
Choosing a Hypervisor:
Supported Features
Network Setup
Storage Setup
Best Practices
Minimum System
Requirements
Management Server,
Database, and Storage
System Requirements
Host/Hypervisor System
Requirements
51. Management Server Installation
Prepare the Operating System
Turn on NTP for time synchronization.
Install NTP and Turn on NTP for time synchronization.
Downloading vhd-util
Installing the required packages
DEB package repository
Install the database server
Set up the database
Prepare NFS Shares
Using the Management Server as the NFS Server
Prepare the System VM Template
Setup Complition
52. Host Hypervisor Installation and
Configuration
Prepare the Operating System
Install NTP and Turn on NTP for time
synchronization.
Install and configure the Agent
Configure CPU model for KVM guest
Install and Configure libvirt
Configure the Security Policies
Configure the network bridges
Configuring the firewall
Open ports in RHEL/CentOS OR Ubuntu
Add the host to CloudStack
53. Log In to the UI (User Interface)
192.168.12.240:8080/client > Ubuntu 14.4
192.168.12.200:8080/client > CentOS 6.5 Minimal
192.168.12.199:8080/client > CentOS 6.5 Live
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75. Goals
To Successfully, build the Cloud Platform
To Analyse the Performance of the different platforms
To Develop Applications on the cloud.
76. Conclusion
Cloud Computing is outpacing the IT industry
Real business value can be realized by customers of all sizes
Cloud solutions are simple to acquire, don’t require long
term contracts and are easier to scale up and down as
needed
Proper planning and migration services are needed to
ensure a successful implementation
Public and Private Clouds can be deployed together to
leverage the best of both
Third party monitoring services ensure customer are
getting the most out of their cloud environment
Security Compliance and Monitoring is achievable with
careful planning and analysis
From the NIST Cloud Computing
On-demand self-service.
A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service’s provider.
Broad network access.
Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
Resource pooling.
The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage, processing, memory, network bandwidth, and virtual machines.
This is different than virtual private hosting which is constrained to a single host or hosted Exchange server with fixed storage limits.
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 capability1 at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.
Cloud Software as a Service (SaaS) – The Application Cloud
The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
Cloud Platform as a Service (PaaS) – The Development Cloud
The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations.
Cloud Infrastructure as a Service (IaaS). – Systems Cloud
The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls).
Microsoft Confidential
An OVF package consists of several files, placed in one directory. A one-file alternative is the OVA package, which is a TAR file with the OVF directory inside.
OVF is a packaging format for software appliances. From a technical point of view, an OVF is a transport mechanism for virtual machine templates. One OVF may contain a single VM, or many VMs (it is left to the software appliance developer to decide which arrangement best suits their application). OVFs must be installed before they can be run; a particular virtualization platform may run the VM from the OVF, but this is not required. If this is done, the OVF itself can no longer be viewed as a “golden image” version of the appliance, since run-time state for the virtual machine(s) will pervade the OVF. Moreover the digital signature that allows the platform to check the integrity of the OVF will be invalid.
VHD – Virtual Hard Disk format started by Connectix (now part of Microsoft) made open through the Microsoft Open Specification Promise.
Top choices for Cloud Computing are Xen and KVM.
OpenVZ, container virtualization for Linux, is an interesting option as it has a very minimal overhead to scale application space similar to containers like BSD Jails. Advantage is that memory allocation is soft and unutilized memory can be used by other applications.
CloudStack – www.cloudstack.org - CloudStack is a sponsored by Citrix systems released under GPLv3 that provides a highly capable IaaS solution for service providers and enterprises.
Robust Web Interface
Comprehensive API
Secure-Single Sign-On
Dynamic Workload Management
Xenserver, Xen Cloud Platform, KVM, VMware, OracleVM support
Secure AJAX Console for VMs
Networking-as-a-Service (Create VLANs to segregate traffic)
EC2 API Compatibility
Usage Metering
Eucalyptus – http://open.eucalyptus.com - IaaS platform originally targeted to provide migration path from Amazon EC2 to private cloud.
Amazon AWS Interface Compatibility
Supports Amazon AMI
High Availability
Network Management, Security Groups, Traffic Isolation
Self Service
S3 compatible Storage Bucket-Based Storage
Xen and KVM Hypervisor Support (VMware in Enterprise Edition)
User Group and Role-Based Management
OpenStack – www.openstack.org - Sponsored by Rackspace, a hosting provider is made up by three primary projects.
OpenStack Compute (Nova) – Nova is a cloud orchestration platform similar to Amazon EC2
Orchestration of popular hypervisors (Xen, Xenserver, KVM, Hyper-V, VMware, Linux Containers)
Floating IP Addresses (keep IPs and DNS correct when restarting VMs)
VNC proxy through the Web
Apache 2.0 License
Android/iOS Clients
Block Storage Support (AOE, iSCSI, Sheepdog)
OpenStack Storage (Swift) – Is a EBS style solution used for long term storage not real time. Swift is used creating redundant, scalable object storage using clusters of standardized servers to store petabytes of accessible data.
Features:
Store and Manage files Programmatically
Create public and private folders
Using Commodity Hardware
Fault tolerant (Nodes/HDD)
Scale-out, Scale-Up
OpenStack Image Service(Glance) - OpenStack Image Service (code-named Glance) provides discovery, registration, and delivery services for virtual disk images.
Features:
Provides images-as-a-service
Supports Raw, VHD, VDI, qcow2, VMDK, OVF
Restful API
Backend Options – Swift, Local, S3, HTTP
Version Control and Logging
OpenNebula – http://www.opennebula.org/ – Cloud Computing Toolkit
Apache license