Apache CloudStack: From API to UI (NYLUG)

959 views

Published on

Introduction to Apache CloudStack

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
959
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
20
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Apache CloudStack: From API to UI (NYLUG)

  1. 1. Apache CloudStack: From API to UI Joe Brockmeier PPMC Member Apache CloudStack (Incubating) jzb@apache.org Twitter: @jzb | Freenode: jzb
  2. 2. What is Apache CloudStack? •  Open  Source  (Apache-­‐Licensed)  IaaS  •  Community  of  Users  and  Providers  •  Wri?en  in  Java*  •  Provides  a  Turn-­‐Key  “Stack”  for  Running   Public,  Private,  or  Hybrid  Clouds  •  Hypervisor  AgnosMc*  •  Time-­‐Based  Releases  
  3. 3. In the beginning… •  Started  as  VMOps  Cloud  Stack  (2008)  •  Became  Cloud.com  in  2010  •  Released  CloudStack  under  GPLv3  –  but  Open   Core  (May  2010)  •  Acquired  by  Citrix  (July  2011)  •  EnMrely  Open  Source  (August  2011)  
  4. 4. Going to Apache •  Relicensed    Proposed  to  Apache  (April  3,   2012)  •  Accepted  as  an  IncubaMng  Project  (April  16,   2012)  •  First  Major  Release,  4.0.0-­‐incubaMng   (November  6,  2012)  •  First  Minor  Release,  4.0.1-­‐incubaMng   (February  12,  2013)  
  5. 5. Why Apache? •  Known  and  Proven  Governance  Model  •  AcMve  Mentoring  of  New  Projects  •  100%  Community-­‐Driven  •  More  than  3,000  Developers  •  Many  Successful  Projects:  Apache  HTTPD,   Tomcat,  Hadoop,  Cassandra,  Lucene,  etc.  
  6. 6. Apache Process •  100%  Community-­‐Driven  •  “If  It  Didn’t  Happen  on  the  Mailing  List…”  •  Clear  Governance  (PPMC,  Commi?er,   Contributor,  etc.)    •  Community  Over  Code  •  Rigorous  A?enMon  to  Licenses  •  Can  Seem  BureaucraMc    
  7. 7. Results!
  8. 8. Strengths Weapons (er, Strengths)
  9. 9. What CloudStack Provides
  10. 10. Hypervisor Support •  KVM  •  XenServer  •  Xen  Cloud  Plaiorm  •  VMware  via  vCenter  •  Bare  Metal  via  IPMI  
  11. 11. CloudStack Terminology •  Zone:  Availability  zone,  aka   Regions.  Could  be  worldwide.   Different  data  centers   •  Pods:  Racks  or  aisles  in  a  data   center   •  Clusters:  Group  of  machines   with  a  common  type  of   Hypervisor   •  Host:  A  Single  server   •  Primary  Storage:  Shared   storage  across  a  cluster   •  Secondary  Storage:  Shared   storage  in  a  single  Zone  
  12. 12. CloudStack Architecture Internet   Ø  Hypervisor  is  the  basic  unit  of   CloudStack   Management   scale.     Server  Zone  1   Ø  Cluster  consists  of  one  ore   more  hosts  of  same  hypervisor     L3 core Ø  All  hosts  in  cluster  have  access   to  shared  (primary)  storage  Pod  1   Access Layer Pod  N     Secondary   Ø  Pod  is  one  or  more  clusters,   ….   Storage   usually  with    L2  switches.     Cluster  N                                                                                                               Ø  Availability  Zone  has  one  or   more  pods,  has  access  to   ….   secondary  storage.     Ø  One  or  more  zones  represent   Cluster  1   cloud   Host 1 Primary     Storage   Host 2
  13. 13. CloudStack Storage •  Primary  Storage:   –  Anything  that  can  be  mounted  on  the  node  of  a  cluster.     –  Cluster  LVM…iSCSI…   –  Holds  disk  images  of  running  VMs   –  Support  for  CEPH  with  KVM  hypervisors  •  Secondary  Storage:   –  Available  across  the  zone   –  Holds  snapshots  and  templates  (image  repo)   –  Can  use  OpenStack  swim  or  any  object  store  (Gluster  FS…)   –  New  support  for  Caringo  •  Can  use  NFS  for  both  to  start  •  Storage  abstracMon  refactoring  underway  in  4.1.0  and  4.2.0  
  14. 14. Networking •  Extremely  flexible  to:   –  Provide  isolaMon  with  VLANs   –  Provide  isolaMon  at  L3  with  shared  L2  (scalability)   –  Support  hardware  devices  that  exposes  API   –  Deployed  on  exisMng  networking  infrastructure   –  Support  new  networking  paradigm  (SDN)   •  Support  for  Nicira  Virtual  P   •  Extensive  use  of  Open  VSwitch  
  15. 15. Management Server •  UI/API  bits  are  stateless  (state  is  stored  in  a   MySQL  database)  •  All  UI  funcMonality  is  available  as  an  API  call  •  Resiul  API     –  UnauthenMcated  API  on  8096  for  localhost   (disabled  by  default)   –  AuthenMcated  on  port  8080   –  Responses  in  XML  or  JSON  
  16. 16. Highly Scalable •  Up  to  10K  resources  managed  per   management  server  node  •  Internal  tesMng  w/somware  simulators  shows   up  to  30K  physical  resources  and  30K  VMs   managed  by  4  management  server  nodes.  •  Real  producMon  deployments  of  tens  of   thousands  of  resources  •   See  Alex  Huang’s  presentaMon:      h?p://is.gd/alexh_scale  
  17. 17. CloudStack Allocation •  How  are  VMs  placed,  storage  allocated,  etc.?  •  CloudStack  has  several  defaults   –  First  fit   –  Fill  first   –  Disperse  •  Don’t  like  those?  Create  your  own!  •  Allows  over-­‐provsioning  •  OS  Preference  
  18. 18. High Availability •  RFMTTR  –  “really  fast  mean  Mme  to  recovery.”  •  CloudStack  is  not  (alone)  a  magical  HA   soluMon.  •  Watches  HA-­‐enabled  VMs  to  ensure  they’re   up,  and  that  the  hypervisor  it’s  on  is  up.  Will   restart  on  another  if  the  hypervisor  goes   down.  •  Redundant  router.  
  19. 19. Load Balancing •  Uses  HA  Proxy  •  CloudStack  supports  load-­‐balancing  for   distribuMng  traffic  to  its  instances  •  Choose  between  round-­‐robin,  source,  or  least   connecMons  •  Choose  sMckiness  policy  (source,  lbcookie,   appcookie)  
  20. 20. Snapshots •  CloudStack  allows  you  to  take  snapshots   manually  or  set  up  recurring  snapshots.  •  Snapshots  can  be  managed  automagically   (keep  N  number)  and  manually  (delete   snapshot  manually).  •  Can  be  turned  into  templates  or  volumes  to   be  used  by  other  instances.  
  21. 21. CloudStack Networking •  CloudStack  manages   –  DHCP   –  VLAN  allocaMon   –  Firewall   –  NAT/Port  forwarding   –  RouMng   –  VPN   –  Load  Balancing  •  CloudStack  can  manage  physical  network  hardware   (F5-­‐Big  IP,  NetScaler,  Juniper  SRX)  
  22. 22. CloudStack Networking Types •  CloudStack  offers  Basic  and  Advanced   Networking   –  Basic:  Easy,  can  only  be  one  physical  network   •  Every  host,  system  VM,  and  guest  instance  has  a   unique  IP   –  Advanced:  Allows  mulMple  physical  networks   •  Each  account  has  a  public  IP,  assigned  to  virtual  router,   guest  IP  range  (e.g.  10.0.1.10/24),  and  VLAN  ID  for  the   isolated  guest  network   •  Guests  communicate  via  their  own  dedicated  VLAN    
  23. 23. CloudStack Networks •  Management  Network:  Used  by  hypervisors  and   management  server  to  communicate  •  Private  Network:  Default  network  for  system   VMs  (virtual  router,  secondary  storage  VM,   console  proxy  VM)  •  Public  Network:  Public-­‐facing  (e.g.  the  Internet)  •  Guest  Network:  Network  VMs  are  provisioned  on  •  Link-­‐local  Network:  Network  used  for   communicaMon  between  hypervisor  and  system   VMs.  (RFC  3927)  
  24. 24. Security Groups •  TradiMonal  isolaMon  has  been  via  VLAN  •  VLANs  provide  isolaMon,  but  at  the  cost  of   scaling   –  Standard  limit  is  4,096  VLANs   –  Hardware  that  supports  upper  limit  is  expensive   –  What  happens  with  4,097?  •  Amazon  and  others  use  Layer  3  isolaMon   (Security  Groups)  
  25. 25. Security Groups •  Assumes  a  quasi-­‐trusted  Layer  2  network  •  Filtering/isolaMon  happens  at  the  bridge  level   (think  ebtables)  •  Deny  by  default  
  26. 26. Accounts, Domains, and Projects •  CloudStack  has  a  top-­‐level  domain  called  ROOT  •  You  can  create  sub-­‐domains  •  You  can  create  3  types  of  accounts,  admins,   domain-­‐admins,  or  users  •  Projects  can  be  used  to  hold  resources  for  Mme-­‐ limited  projects  •  Supports  LDAP  integraMon  •  CloudStack’s  account  system  is  very  simple  –   don’t  make  it  more  complicated!    
  27. 27. Usage Accounting •  Provides  stats  that  can  be  used  for  billing  (but   is  not  a  billing  soluMon)  •  Usage  stats  show:  VM  count,  CPU  usage,  disk   allocaMon  and  use,  network  usage  over  Mme.  •  IntegraMon  howtos  for  imporMng  to  Excel,   Ubersmith,  Amysta,  and  Cloud  Portal.  
  28. 28. APIs •  Root  Admin,  Domain  Admin,  User  •  Set  of  methods  available  over  HTTP(S)  •  AuthenMcated  on  8080  w/Keys  •  UnauthenMcated  on  8096  (off  by  default)  •  Python  +  Ruby  clients  available  
  29. 29. AWS EC2 and S3 Compatibility •  Includes  an  EC2/S3  compaMbility  layer  •  See:   –  h?p://wiki.cloudstack.org/display/RelOps/ EC2+API+support+in+CloudStack   –  h?p://www.slideshare.net/sebasMengoasguen/ cloudstack-­‐ec2-­‐configuraMon  •  Euca  Tools,  Boto,  etc.  should  work  with   CloudStack  
  30. 30. CloudMonkey •  New  ASF  CloudStack  CLI  •  Python  code,  built  using  Marvin  •  h?ps://cwiki.apache.org/CLOUDSTACK/ cloudstack-­‐cloudmonkey-­‐cli.html  •  Available  from  CloudStack  source  or  pypi:   –  h?p://pypi.python.org/pypi/cloudmonkey/    
  31. 31. Use Cases •  Private  Cloud  •  Dual-­‐Workload  Private  Cloud  •  Public  Cloud  (ISP/Providers)  •  Hybrid  Cloud  •  Small  to  Very,  Very  Large  
  32. 32. Zynga •  Online  Games  •  Hybrid  Cloud  (Move   workloads  between   “zCloud”  and  public   cloud)  80/20  split  •  North  of  30K  Nodes  
  33. 33. Datapipe •  Public  Cloud  •  Geo-­‐distributed:     –  U.S.  (NJ    San  Jose,  CA)   –  Hong  Kong   –  Shanghai   –  London   –  Iceland  (w/in  90  days)  •  Smaller  (  100  Hosts)  but   massively  distributed  •  See:     h?p://is.gd/datapipe_cs  
  34. 34. ISWest •  Hosted  IaaS  Clouds   (Private  Environment)   from  Dedicated  Servers  •  Most  Customers  are   Small  (  15  VMs)  •  Mix  of  Hypervisors  •  FuncMoning  Cloud  in  “a   li?le  over  a  month.”  
  35. 35. Trying CloudStack
  36. 36. DevCloud •  DevCloud  is  a  VirtualBox  image  w/nested  virt.  •  Grab  the  DevCloud  image  from:  h?p://wiki.cloudstack.org/display/COMM/DevCloud  •  Log  in  via  the  GUI:    h?p://localhost:8080/client  •  SSH  to  DevCloud:  ssh -p 2222 root@localhost  Username:  admin      Password:  password  •  DevCloud  KVM  –  effort  to  run  DevCloud  on  a  KVM  host  
  37. 37. CloudStack Runbook •  Minimal  install  (1  server)  •  Wri?en  by  David  Nalley  w/fixes  from  the   community  •  h?p://people.apache.org/~ke4qqq/runbook/  •  Focuses  on  CentOS  w/KVM  –  other  runbooks   in  process  for  Ubuntu  w/Xen  or  KVM.  
  38. 38. Direction •  Currently  on  a  Four-­‐Month  Release  Cycle  •  4.1.0  Expected  Early  April,  4.2.0  in  August  •  4.0.2  “Any  Day  Now”  •  Releases  Supported  UnMl  Next  Major  Feature   Release  (e.g.,  4.0.0,  4.0.x  unMl  4.1.0)  •  Last  Major  Release  Will  Receive  Support  for  12   Months  (hasn’t  happened  yet)  
  39. 39. Expected in 4.1.0 •  AutoScale:  Work  with  loadbalancers  (like   NetScaler)  to  scale  up/down  resources.  •  Resize  Volumes  for  Instances  •  OpenVSwitch  Support  for  KVM  •  API  Request  Thro?ling  •  AWS-­‐like  Regions  •  Persistent  Networks  without  Running   Instances  
  40. 40. Get Involved •  Main  Site:  CloudStack.org  •  IRC:  #cloudstack  and  #cloudstack-­‐dev  •  Follow  @cloudstack  on  Twi?er  •  Lots  of  Presos:   h?p://slideshare.net/cloudstack  •  Mailing  Lists:     h?p://cloudstack.org/discuss/mailing-­‐ lists.html  
  41. 41. Contact Me Email:  jzb@apache.org    Phone:  +1  314-­‐669-­‐4JZB  (4592)  Blog:  h?p://dissociatedpress.net/    Twi?er:  

×