Deploying Infrastructure-as-a-Service with CloudStack

              Gustavo Ribeiro
               @gustavonfr
Historia

 Originalmente fundada sob o nome de VMOps - 2008
 Lançado o projeto open source CloudStack e mudança de
  nome para Cloud.com – May 2010
 Adquirida pela Citrix – July 2011
 Último release do Cloudstack: 3.0.2
O que é o CloudStack?

Plataforma Open Source de IaaS que suporta múltiplos
hypervisors, redes complexas, firewall, load balancer,
configuração de VPN e alta disponibilidade, num ambiente
que chamamos de multi-tenant. Com o CloudStack você
pode ter sua própria nuvem e oferecer serviço de
IaaS( pública ), utilizar somente dentro da sua empresa
( privada ) ou utilizar as vantagens da cloud pública e
privada e ter um ambiente híbrido.
O que ele realmente faz ?

 Provê separação de ambientes variados
 Alocação de recursos computacionais
 Expõe pro usuários final a abilidade de provisionar vários
  serviços computacionais de forma controlada (alocação
  de VLAN, regras de firewall, load balancer, criação de
  VM, etc)
 Gerenciamento de Alta Disponibilidade
 Massivamente escalável
 Permite aplicar limites de recursos
 Medição ao longo do tempo (billing)
Multi-tenant

 Abstração para o usuário final
    Sem interação direta com o hypervisor
    Sem conhecimento de detalhes do storage
 Separação da camada de rede
    Conta com uma VLAN dedicada/isolada (Tagged
     Networking)
    Isolamento Layer 3 também conhecido como Security
     Groups para redes untagged
 Opção de uso de hardware dedicado
Suporte a múltiplos hypervisors

   KVM
   XenServer
   Xen Cloud Platform / XCP
   VMware
   Oracle VM
Deployment
Management Server

 Interface web para o administrador e o usuário final
 API
 Gerencia a aloção de VM para um host particular, aloção
  de redes públicas e privadas para contas particulares,
  storage como discos virtuais
 Gerenciamento de snapshots, templates e ISOs, com a
  possibilidade de replicar ao longo de diferentes data
  centers
 Ponto único de configuração da nuvem.
Cloud Infrastructure

 Divisão de recursos em níveis no CloudStack
    Zonas
      • Pods
         – Clusters
Zona

 Em geral é usado como designar uma localização
  geográfica específica (datacenter).
 Cada zona possui seu próprio fornecimento de energia e
  uplink
 Compartilha o storage secundário(ISO, templates e
  snapshots) ao longo de toda zona.
 São visíves ao usuário final
Pod

 Em geral é usado para se referir a um rack ou a fileria
  deles
 Hosts nos mesmo pod estão na mesma subnet.
 Não são visíveis ao usuário final
Cluster

 Normalmente de 8 a 15 máquinas por cluster:
    Mesmo hypervisor (e mesma versão)
    Mesmos CPUs
    Mesma estratégia de networking (i.e. /dev/eth0 está
     conectada a mesma rede em toda as máquinas)
 Uso do storage primário(Discos das Vms)
 Seria um pool no XenServer, set no KVM, Vmware cluster
  no vCenter.
 Capaz de fazer live-migration sem interrupção pro
  usuário
Cloud Infrastructure
Networking

 CloudStack oferece 2 tipos de cenários de rede:
    Basic: Provê uma única rede onde o guest é isolado
     por um firewall layer 3 conhecido como Security
     Group(filtragem pelo ip de origem)
    Advanced: Múltiplas redes para os guests. Isoladas(VLAN)
     ou compartilhadas (isoladas via layer 3 security groups).
     Uso de redes públicas.
Networking

 Serviços gerenciados pelo CloudStack
      DHCP
      alocação de VLAN
      Firewall
      NAT/Port forwarding
      Routing
      VPN
      Load Balancing
Networking

 CloudStack pode também gerenciar hardwares físicos de
  rede (ou alternativas virtualizadas)
    F5-Big IP
    NetScaler
    Juniper SRX
Security groups

 Isolamento tradicional feito por VLAN
 VLANs isola bem,porém tem alguns problemas de
  escalabilidade
    O padrão tem um limite de 4096 VLANS
    Hardware que atualmente suporta até 4096 VLANs é
     MUITO caro.
    Independentemente, pessoas tendem a não gostar de ter
     limites arbitrários sobre o que eles podem fazer.
 Amazon e outros usam isolamento layer 3 (Security
  Groups)
Storage Primário

 Associado a um cluster para armazenar os discos das
  Vms

 Suporte a NFS e iSCSI de acordo com os hosts.

 Performance de disco
Storage Secundário

 Utilizado para armazenar templates, ISOs e snapshots
 Requer: NFS, mínimo de 100 GB, mesma zona dos guests
  o qual vai servir,
O que o usuário consome

 Service Offerings, definido pelo administrador
  CloudStack , provê escolha de CPU speed, número de
  CPUs, tamanho de RAM

 Disk Offerings, definido pelo administrador CloudStack,
  provê a escolha do tamanho do disco no storage
  primário.

 Network Offerings, definido pelo administrador
  CloudStack, descreve como será entregue rede para o
  usuário, como virtual router ou dispositivos externos.
Dashboard
Referências

   http://cloudstack.org
   Docs: http://docs.cloudstack.org
   IRC: #cloudstack Freenode
   Twitter: @cloudstack
   Mailing Lists
     https://lists.sourceforge.net/mailman/listinfo/cloudstack-users
     https://lists.sourceforge.net/mailman/listinfo/cloudstack-devel
 Forums
Crash Course in Open Source Cloud Computing

by Gustavo Ribeiro is licensed under a Creative Commons Attribution-ShareAlike 3.0
                               United States License.

Deploying infrastructure as-a-service with cloudstack

  • 1.
    Deploying Infrastructure-as-a-Service withCloudStack Gustavo Ribeiro @gustavonfr
  • 2.
    Historia  Originalmente fundadasob o nome de VMOps - 2008  Lançado o projeto open source CloudStack e mudança de nome para Cloud.com – May 2010  Adquirida pela Citrix – July 2011  Último release do Cloudstack: 3.0.2
  • 3.
    O que éo CloudStack? Plataforma Open Source de IaaS que suporta múltiplos hypervisors, redes complexas, firewall, load balancer, configuração de VPN e alta disponibilidade, num ambiente que chamamos de multi-tenant. Com o CloudStack você pode ter sua própria nuvem e oferecer serviço de IaaS( pública ), utilizar somente dentro da sua empresa ( privada ) ou utilizar as vantagens da cloud pública e privada e ter um ambiente híbrido.
  • 4.
    O que elerealmente faz ?  Provê separação de ambientes variados  Alocação de recursos computacionais  Expõe pro usuários final a abilidade de provisionar vários serviços computacionais de forma controlada (alocação de VLAN, regras de firewall, load balancer, criação de VM, etc)  Gerenciamento de Alta Disponibilidade  Massivamente escalável  Permite aplicar limites de recursos  Medição ao longo do tempo (billing)
  • 5.
    Multi-tenant  Abstração parao usuário final  Sem interação direta com o hypervisor  Sem conhecimento de detalhes do storage  Separação da camada de rede  Conta com uma VLAN dedicada/isolada (Tagged Networking)  Isolamento Layer 3 também conhecido como Security Groups para redes untagged  Opção de uso de hardware dedicado
  • 6.
    Suporte a múltiploshypervisors  KVM  XenServer  Xen Cloud Platform / XCP  VMware  Oracle VM
  • 7.
  • 8.
    Management Server  Interfaceweb para o administrador e o usuário final  API  Gerencia a aloção de VM para um host particular, aloção de redes públicas e privadas para contas particulares, storage como discos virtuais  Gerenciamento de snapshots, templates e ISOs, com a possibilidade de replicar ao longo de diferentes data centers  Ponto único de configuração da nuvem.
  • 9.
    Cloud Infrastructure  Divisãode recursos em níveis no CloudStack  Zonas • Pods – Clusters
  • 10.
    Zona  Em geralé usado como designar uma localização geográfica específica (datacenter).  Cada zona possui seu próprio fornecimento de energia e uplink  Compartilha o storage secundário(ISO, templates e snapshots) ao longo de toda zona.  São visíves ao usuário final
  • 11.
    Pod  Em geralé usado para se referir a um rack ou a fileria deles  Hosts nos mesmo pod estão na mesma subnet.  Não são visíveis ao usuário final
  • 12.
    Cluster  Normalmente de8 a 15 máquinas por cluster:  Mesmo hypervisor (e mesma versão)  Mesmos CPUs  Mesma estratégia de networking (i.e. /dev/eth0 está conectada a mesma rede em toda as máquinas)  Uso do storage primário(Discos das Vms)  Seria um pool no XenServer, set no KVM, Vmware cluster no vCenter.  Capaz de fazer live-migration sem interrupção pro usuário
  • 13.
  • 14.
    Networking  CloudStack oferece2 tipos de cenários de rede:  Basic: Provê uma única rede onde o guest é isolado por um firewall layer 3 conhecido como Security Group(filtragem pelo ip de origem)  Advanced: Múltiplas redes para os guests. Isoladas(VLAN) ou compartilhadas (isoladas via layer 3 security groups). Uso de redes públicas.
  • 15.
    Networking  Serviços gerenciadospelo CloudStack  DHCP  alocação de VLAN  Firewall  NAT/Port forwarding  Routing  VPN  Load Balancing
  • 16.
    Networking  CloudStack podetambém gerenciar hardwares físicos de rede (ou alternativas virtualizadas)  F5-Big IP  NetScaler  Juniper SRX
  • 17.
    Security groups  Isolamentotradicional feito por VLAN  VLANs isola bem,porém tem alguns problemas de escalabilidade  O padrão tem um limite de 4096 VLANS  Hardware que atualmente suporta até 4096 VLANs é MUITO caro.  Independentemente, pessoas tendem a não gostar de ter limites arbitrários sobre o que eles podem fazer.  Amazon e outros usam isolamento layer 3 (Security Groups)
  • 18.
    Storage Primário  Associadoa um cluster para armazenar os discos das Vms  Suporte a NFS e iSCSI de acordo com os hosts.  Performance de disco
  • 19.
    Storage Secundário  Utilizadopara armazenar templates, ISOs e snapshots  Requer: NFS, mínimo de 100 GB, mesma zona dos guests o qual vai servir,
  • 20.
    O que ousuário consome  Service Offerings, definido pelo administrador CloudStack , provê escolha de CPU speed, número de CPUs, tamanho de RAM  Disk Offerings, definido pelo administrador CloudStack, provê a escolha do tamanho do disco no storage primário.  Network Offerings, definido pelo administrador CloudStack, descreve como será entregue rede para o usuário, como virtual router ou dispositivos externos.
  • 21.
  • 22.
    Referências  http://cloudstack.org  Docs: http://docs.cloudstack.org  IRC: #cloudstack Freenode  Twitter: @cloudstack  Mailing Lists  https://lists.sourceforge.net/mailman/listinfo/cloudstack-users  https://lists.sourceforge.net/mailman/listinfo/cloudstack-devel  Forums
  • 23.
    Crash Course inOpen Source Cloud Computing by Gustavo Ribeiro is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States License.