Session on CloudStack, intended for new users to CloudStack, provides an overview to varied audience levels information on usages, use cases, deployment and its architecture.
2. Agenda
• Overviewof CloudStack
• Few numbers, Users, Introduction etc.
• CloudStack Overview andArchitecture.
• Demo of CloudStack
• CloudStack Use Cases, Community and Getting Involved
• Q&A
3. What is Apache CloudStack?
Apache CloudStack is a scalable, multi-tenant, open source, purpose-
built, cloud orchestration platform for delivering turnkey Infrastructure-
as-a-Service clouds. the most mature, most scalable, most proven IaaS
platform available today.
4. Characteristics of Clouds
• On-Demand Self-Service
• Broad Network Access
• Resource Pooling
• Rapid Elasticity
• Measured Service
• API Access
CLOUD VIRTUALIZATION
5. Cloud 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
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: VMware CloudFoundry, Google AppEngine, Windows Azure,
Rackspace Sites, Red Hat OpenShift, Active State Stackato, Appfog
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, OpenNebula
7. CloudStack History
• 2008 – Vmops launches (rebrands Cloud.com)
• April 2010 – Cloud.com Releases CloudStack under GPLv3
• July 2011 - Citrix acquires CloudStack
• April 2012 - CloudStack donated to Apache Software
Foundation
• November 2012 – First Apache CloudStack Release (4.0)
• March 2013 - CloudStack becomes a top-level Apache project
• 2014 – Majority of committers are not from Citrix
10. Few Salient notes:
• Open Source (Apache-Licensed)
IaaS
• Vast Community of Users and
Providers
• Written in Java*
• Hypervisor Agnostic
• Time-Based Releases
• Proven product
• Strong Apache governance model
• 26 k commits
• Peaked at 2.5 Million lines of code
• 24k unique IP’s download our
packages in last 12 months
• 200 active code contributors
• 81 project committers
• 32 PMC members (20 organizations)
• Over 100 people working on
translation
• 2500 mailing list msgs per month
14. Pod 1
….
Cluster N
Access Layer
Host 2
Cluster 1
Simple view of CloudStack Architecture
Host 1
Hypervisor is the basic unit of
scale.
Cluster consists of one ore
more hosts of same hypervisor
All hosts in cluster have access
to shared (primary) storage
Pod is one or more clusters,
usually with L2 switches.
Availability Zone has one or
more pods, has access to
secondary storage.
One or more zones represent
cloud
Primary
Storage
Zone 1
….
L3 core
Secondary
Storage
Pod N
CloudStack
Management
Server
Internet
16. Feature Highlights
•Easy Installation
•Simple to configure and use in minutes.
•Broad Hypervisor support(KVM, XenServer, Xen Cloud Platform,
VMware via vCenter, Bare Metal via IPMI)
•Easy plugin model
•AWS API fidelity
•Scalability, High Availability, Load Balancing
•Broad vendor hardware for networking, storage support
•Choice of interfaces
— Web UI, command line, REST-based API
• Developer friendly, easy to get started, add, refactor,
contribute..(We will see in demo..)
17. • It’s the heart of the CloudStack system.
• Manages the assignmentof guest VMs to particularhosts. Uses algorithms like
First fit, Disperse, Fill first etc, supports overprovisioning.
• Manages the assignmentof public and privateIP addressesto particularaccounts
• Manages the allocationof storageto guestsas virtual disks.Managessnapshots,
templates,and ISO images, possibly replicating them acrossdata centers
The Management Server
18. Compute
CloudStack Provides On-demand
Access to Infrastructure Through a
Self-Service Portal
Citrix Confidential - Do Not Distribute
Network Storage
Admin
Users
Org A
Admin
Users
Org B
Users
End User
Admin
19. • CloudStack provides anAPI that gives programmaticaccessto all the
management featuresavailable in the UI
• The API enables the creation of command line tools and new user interfaces
to suit particular needs
• Authenticated on 8080 w/Keys
• Unauthenticated on 8096 (off by default)
• Python + Ruby clients available
• Responses in XML or JSON
API and Extensibility
21. Volume & Snapshot Management
Volume
VM 1Add / Delete
Volumes
Schedule
Snapshots
Hourly
Daily
Weekly
Monthly
Now
Create Templates
from Volumes
Volume Template
View Snapshot
History
….
12/2/2012 7.30 am 2/2/2012 7.30 am
22. Open Platform to Suit Customer Needs
Compute
XenServer VMware KVMOracle VM Bare metal
Hypervisor
Storage
NFS
Fiber
Channel
Swift
Block & Object
Local Disk iSCSI
Network
Network
Type
Load
balancer
Isolation Firewall VPN
Network & Network Services
23. Multi-tenancy & Account
Management • Domain is a unit of
isolation that
represents a customer
org, business unit or a
reseller
• Domain can have
arbitrary levels of sub-
domains
• A Domain can have
one or more accounts
• An Account represents
one or more users and
is the basic unit of
isolation
• Admin can limit
resources at the
Account or Domain
Admin
Cloud
Domain
Org A
Admin
Domain
ResellerA
Sub-Domain
Org C
Admin
User 1
User 2
Account
Group B
GroupA
Account
Resources
VMs, IPs,
Snapshots…
Resources
VMs, IPs,
Snapshots…
24. Primary:
• Primarystorageis associatedwith a cluster
• Storesthe disk volumes for all the VMs running on
hosts in a cluster
Secondary:
• Secondary storage is associated with a zone and
is available to all hosts in that zone.
• Stores Templates - OS images used to createVMs,
ISO,Disk volume snapshots(saved copies of VM
data)
Cloud Infrastructure – Storage
25. • One or more hosts grouped
into a cluster
• One or more clusters
groupedinto a pod
• One or more pods grouped into a zone
• One or more zones
controlledby one
managementserver
Cloud Infrastructure - Summary
Pod
Zone
Second
ary
Storag
e
CloudStack
Management
Server
26. CloudStack Networking
• Network Services: CloudStack manages various network services
viz., DHCP, VLAN allocation, Firewall, NAT/Port forwarding, routing,
VPN, Load Balancing, supported by various network hardware
vendors.
• Traffic Types: Management network, guest network, private network,
public network, link local network.
• Network Modes: Basic and Advanced
27. Basic Networking:
Customer 1 Customer 2
192.168.1.55192.168.1.56192.168.1.57 192.168.1.58192.168.1.59192.168.1.60
Intern
et
Physica
l Router
CS
Virtual
Router
VM
1
VM
2
VM
3
VM
1
VM
2
VM
3
• All zone tenants share a single flat
public network
• Tenant isolation provided by
Security Groups
• Hypervisor level firewall IP Address
filtering
• Layer 3 Isolation
• Scales much better than VLANs
• CloudStack virtual system provides
dhcp, dns services etc.
28. • Multiple VLANs for isolation
• L2TP-based VPN
• Virtual routeris gateway
• Load balancer available
• 1:1 NAT
• Meteringdata
• One virtual router per account
• Does not scale as well
Advanced Networking:
Intern
et
Physica
l Router
CS
Virtual
Router
1
VM VM VM
CS
Virtual
Router
1
VM VM VM
Public Network
Customer Private
Networks
2 3
Customer 1
2 3
Customer 2
VLAN 100 VLAN 200
29. Cloud Infrastructure – Large-Scale
Redundant Network
Secondary
Storage Servers
Primary
Storage
NFS
Secondary
Storage
Pod1
Pod2
Layer-3 switches with
firewall modules
Layer-2 switches
Internet
Pyrimar
Storage
Primary
Storage
Primary
Storage
NFS
Secondary
Storage
Internet
Computing Nodes
Managemen
t Server
Cluster
Primary
Storage Servers
30. Let’s Build Our Cloud
Requirements and configuration…
Demo….
32. Tooling and Support System
• Marvin
• CloudMonkey
• Simulator
• DevCloud
• Ansible Recipes
• Vagrant Support
• Dockerized CS
33. Use Cases(Many…)
• Private Cloud
• Dual-Workload Private Cloud
• Public Cloud (ISP/Providers)
• Hybrid Cloud
• Small to Very, Very Large
• DevOps
• AWS “insourcing”
35. Q && A
Thanks!
Questions: ?
if “I KNOW”:
return AnswerFactory.get_answer (“AnswerType”)
else:
“will find out and let you know”
Santhosh Kumar Edukulla
santhoshedukulla@apache.org
Santhosh.edukulla@gmail.com