cloud computing & cloudstack open source
TRANSCRIPT
Presented By: Ahmad Shah SultaniM.Sc. Computer Science
South Asian UniversityNew Delhi, India.
01-12-2014
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
“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 is Web-based processing, whereby shared resources, software, and information are provided to computers and other devices (such as smart phones) on demand over the Internet.”
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 is Web-based processing, whereby shared resources, software, and information are provided to computers and other devices (such as smart phones) on demand over the Internet.”
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 is Web-based processing, whereby shared resources, software, and information are provided to computers and other devices (such as smart phones) on demand over the Internet.”
What is Cloud Computing?
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
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.
The general idea behind the technology dates back to the 1960s,
HISTORY
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.
Then came Google Docs in 2006,
But 2009 marked a key turning point in the evolution of cloudcomputing, with the arrival of browser based cloud enterprise applications, with the best known being Google Apps Working on Google Chrome.
A Golden Era in Computing..Powerful multi-core processors
General purpose graphic
processors
Superior software methodologies
Virtualization leveraging the
powerful hardware
Wider bandwidth for communication
Proliferation of devices
Explosion of domain
applications
Characteristics of Clouds1. 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…
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
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
SaaS Examples
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
PaaS Examples
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
IaaS Examples
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.
Types of Cloud Storage
1. Public Cloud
2. Private Cloud
3. Hybrid Cloud
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.
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.
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.
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.
Virtualization
Hardware
Operating System
App App App
Traditional Stack
Hardware
OS
App App App
Hypervisor
OS OS
Virtualized Stack
Virtualization
Types of Virtualization
Hardware Virtualization
Desktop Virtualization
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.
Hardware 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.
Desktop virtualization
500
625700
810
1000
1300
300
600
900
1200
1500
2012 2013 2014 2015 2016 2017
Cloud Storage Subscriber Numbers
Million
Forecast
Source: Institute of Engineering and Technology, IHS © Graphic News
Trends of Cloud Computing
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
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
Building Compute Cloudswith Open Source Software
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
Open Virtual Machine FormatsOpen 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
Open Source HypervisorsOpen 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)
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 AnsoLabs 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 OpenNebulaNumerous companies are building cloud software on OpenStack including Nebula, Piston Inc., CloudScaling
CloudStack Open SourceCloud 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.
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.
Choosing a Deployment Architecture
Choosing a Deployment Architecture
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.
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).
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.
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.
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
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
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
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
Goals To Successfully, build the Cloud Platform
To Analyse the Performance of the different platforms
To Develop Applications on the cloud.
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
References & Useful links• Apache Cloud Stack: http://cloudstack.apache.org/• Amazon AWS: http://aws.amazon.com/free/• AWS Cost Calculator:
http://calculator.s3.amazonaws.com/calc5.html• Windows Azure: http://www.azurepilot.com/• Google App Engine (GAE):
http://code.google.com/appengine/docs/whatisgoogleappengine.html
• Graph Analytics: http://www.umiacs.umd.edu/~jimmylin/Cloud9/docs/content/Lin_Schatz_MLG2010.pdf
• For miscellaneous information: http://www.cse.buffalo.edu/~bina