introduction to apache cloudstack by david nalley

32
Introduction to Apache CloudStack David Nalley @ke4qqq [email protected]

Upload: buildacloud

Post on 02-Jul-2015

375 views

Category:

Software


3 download

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 1: Introduction to Apache CloudStack by David Nalley

Introduction to Apache CloudStackDavid Nalley

@ke4qqq

[email protected]

Page 2: Introduction to Apache CloudStack by David Nalley

#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

Questions

Intro to Apache CloudStack

Page 4: Introduction to Apache CloudStack by David Nalley

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

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

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

Where do we dive in?

Intro to Apache CloudStack

Page 8: Introduction to Apache CloudStack by David Nalley

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

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

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

CloudStack Storage - Secondary

NFS

Object Storage (S3 or Swift API)

Intro to Apache CloudStack

Page 12: Introduction to Apache CloudStack by David Nalley

Networking

The bane of any cloud operators existence

Intro to Apache CloudStack

Page 13: Introduction to Apache CloudStack by David Nalley

Networking - Challenges

Network guys are luddites (generally)

We have scale issues

Intro to Apache CloudStack

Page 14: Introduction to Apache CloudStack by David Nalley

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

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

Resources, hierarchy, failure

domains

Regions

Zones (DCs)

Pods

Clusters

Machines

Intro to Apache CloudStack

Page 17: Introduction to Apache CloudStack by David Nalley

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

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

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
Page 21: Introduction to Apache CloudStack by David Nalley

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

{

"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

"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

{

"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

{

"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

knife cs stack create hadoop_cluster_a

Page 27: Introduction to Apache CloudStack by David Nalley

Prereqs

Configuration management

Automated provisioning

Monitoring

Intro to Apache CloudStack

Page 28: Introduction to Apache CloudStack by David Nalley

Jevon’s Paradox

Intro to Apache CloudStack

Page 29: Introduction to Apache CloudStack by David Nalley

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

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

Questions

Intro to Apache CloudStack

Page 32: Introduction to Apache CloudStack by David Nalley

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