introduction to apache cloudstack by david nalley
DESCRIPTION
Apache CloudStack is a mature, easy to deploy IaaS platform. That doesn't mean that it can be done without thought or preparation. Learn how CloudStack can be most efficiently deployed, and the problems to avoid in the process. About David Nalley David is a recovering sysadmin with a decade of experience. He’s a committer on the Apache CloudStack (incubating) project, a contributor to the Fedora Project and the Vice President of Infrastructure at the Apache Software Foundation.TRANSCRIPT
![Page 2: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/2.jpg)
#whoami
Recovering sysadmin
Apache CloudStack and Apache jclouds
Work for Citrix Open Source Business Office
VP Infra, Apache Software Foundation
Intro to Apache CloudStack
![Page 3: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/3.jpg)
Questions
Intro to Apache CloudStack
![Page 4: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/4.jpg)
A brief history of CloudStack
2008-2010 – Stealth mode startup (VMOps)
2009 – First production in public cloud
2010 – Released as open source (GPLv3)
2011 – Cloud.com acquired by Citrix
2012 – Transferred to the ASF (ASLv2)
2013 – Graduated as TLP
Intro to Apache CloudStack
![Page 5: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/5.jpg)
Cloud
Infrastructure as a Service
• Compute, Network, Storage
Cloud requires:
• On-demand
• Self-service
• Scalable
• Measurable
Intro to Apache CloudStack
![Page 6: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/6.jpg)
What is CloudStack
Orchestration platform for Infrastructure as a
Service
Focused heavily on compute
Somewhat monolithic – by design
Written in Java
Intro to Apache CloudStack
![Page 7: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/7.jpg)
Where do we dive in?
Intro to Apache CloudStack
![Page 8: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/8.jpg)
IaaS is Orchestration
IaaS doesn’t really provide new services, it
orchestrates existing services
•Hypervisors
•Storage
•Network
•Isolation
•Accounting
Intro to Apache CloudStack
![Page 9: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/9.jpg)
CloudStack Hypervisor Support
KVM
XenServer
VMware vSphere
Hyper-V
Oracle VM (reappearing in 4.5)
LXC
Baremetal
Intro to Apache CloudStack
![Page 10: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/10.jpg)
CloudStack Storage - Primary
Local
NFS
iSCSI
Distributed (GlusterFS, Ceph, etc)
$anything_hypervisor_supports
Intro to Apache CloudStack
![Page 11: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/11.jpg)
CloudStack Storage - Secondary
NFS
Object Storage (S3 or Swift API)
Intro to Apache CloudStack
![Page 12: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/12.jpg)
Networking
The bane of any cloud operators existence
Intro to Apache CloudStack
![Page 13: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/13.jpg)
Networking - Challenges
Network guys are luddites (generally)
We have scale issues
Intro to Apache CloudStack
![Page 14: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/14.jpg)
Scale
VLANs – don’t scale
Firewalls – don’t scale
Loadbalancers – don’t scale
Intro to Apache CloudStack
![Page 15: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/15.jpg)
How we scale the network
Amazon’s Security Groups
In CloudStack we reuse the Security Groups
terminology.
SDN
The interesting pieces aren’t in Layer 2-3,
but 4-7, and still being developed.
Intro to Apache CloudStack
![Page 16: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/16.jpg)
Resources, hierarchy, failure
domains
Regions
Zones (DCs)
Pods
Clusters
Machines
Intro to Apache CloudStack
![Page 17: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/17.jpg)
Actual use
UI is beautiful
…..but…..
API is where real people do work.
Intro to Apache CloudStack
![Page 18: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/18.jpg)
API
Native CloudStack API
http://cloudstack.apache.org/docs/api/
EC2, GCE APIs
https://github.com/imduffy15/ec2stack
https://github.com/NOPping/gstack
Intro to Apache CloudStack
![Page 19: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/19.jpg)
API
Use an abstraction library (jclouds, fog,
libcloud)
Use tools that use abstraction libraries
(knife-cloudstack,
Intro to Apache CloudStack
![Page 20: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/20.jpg)
![Page 21: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/21.jpg)
Stop thinking of VMs
{
"name": "hadoop_cluster_a",
"description": "A small hadoop cluster with hbase",
"version": "1.0",
"environment": "production",
"servers": [
{
"name": "zookeeper-a, zookeeper-b, zookeeper-c",
"description": "Zookeeper nodes",
"template": "rhel-5.6-base",
"service": "small",
"port_rules": "2181",
"run_list": "role[cluster_a], role[zookeeper_server]",
"actions": [
{ "knife_ssh": ["role:zookeeper_server", "sudo chef-client"] }
]
},
{
"name": "hadoop-master",
"description": "Hadoop master node",
"template": "rhel-5.6-base",
"service": "large",
"networks": "app-net, storage-net",
"port_rules": "50070, 50030, 60010",
"run_list": "role[cluster_a], role[hadoop_master], role[hbase_master]"
},
{
"name": "hadoop-worker-a hadoop-worker-b hadoop-worker-c",
"description": "Hadoop worker nodes",
"template": "rhel-5.6-base",
"service": "medium",
"port_rules": "50075, 50060, 60030",
"run_list": "role[cluster_a], role[hadoop_worker], role[hbase_regionserver]",
"actions": [
{ "knife_ssh": ["role:hadoop_master", "sudo chef-client"] },
{ "http_request": "http://${hadoop-master}:50070/index.jsp" }
]
}
]
}
![Page 22: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/22.jpg)
{
"name": "hadoop_cluster_a",
"description": "A small hadoop cluster with hbase",
"version": "1.0",
"environment": "production",
![Page 23: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/23.jpg)
"servers": [
{
"name": "zookeeper-a, zookeeper-b, zookeeper-c",
"description": "Zookeeper nodes",
"template": "rhel-5.6-base",
"service": "small",
"port_rules": "2181",
"run_list": "role[cluster_a], role[zookeeper_server]",
"actions": [
{ "knife_ssh": ["role:zookeeper_server", "sudo chef-client"] }
]
},
![Page 24: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/24.jpg)
{
"name": "hadoop-master",
"description": "Hadoop master node",
"template": "rhel-5.6-base",
"service": "large",
"networks": "app-net, storage-net",
"port_rules": "50070, 50030, 60010",
"run_list": "role[cluster_a], role[hadoop_master], role[hbase_master]"
},
![Page 25: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/25.jpg)
{
"name": "hadoop-worker-a hadoop-worker-b hadoop-worker-c",
"description": "Hadoop worker nodes",
"template": "rhel-5.6-base",
"service": "medium",
"port_rules": "50075, 50060, 60030",
"run_list": "role[cluster_a], role[hadoop_worker], role[hbase_regionserver]",
"actions": [
{ "knife_ssh": ["role:hadoop_master", "sudo chef-client"] },
{ "http_request": "http://${hadoop-master}:50070/index.jsp" }
]
![Page 26: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/26.jpg)
knife cs stack create hadoop_cluster_a
![Page 27: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/27.jpg)
Prereqs
Configuration management
Automated provisioning
Monitoring
Intro to Apache CloudStack
![Page 28: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/28.jpg)
Jevon’s Paradox
Intro to Apache CloudStack
![Page 29: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/29.jpg)
Rants
Portability is a red herring – Config
Management is a prereq
Portability is pointless – moving data is the
problem
Scale is hard – expect to iterate, a lot.
Failure is even harder – fail proactively
Intro to Apache CloudStack
![Page 30: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/30.jpg)
Next gen predictions
Lots of people need IaaS
Many people need workload orchestration
(Kubernetes, Apache Mesos, etc)
Intro to Apache CloudStack
![Page 31: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/31.jpg)
Questions
Intro to Apache CloudStack
![Page 32: Introduction to Apache CloudStack by David Nalley](https://reader034.vdocument.in/reader034/viewer/2022052622/559513071a28ab84598b4600/html5/thumbnails/32.jpg)
Get Involved
Web: http://cloudstack.apache.org/
Mailing Lists: cloudstack.apache.org/mailing-lists.html
IRC: irc.freenode.net: 6667 #cloudstack
Twitter: @cloudstack
LinkedIn: www.linkedin.com/groups/CloudStack-Users-Group-3144859
If it didn’t happen on the mailing list, it didn’t happen.
Intro to Apache CloudStack