O documento fornece uma introdução à computação em nuvem e ao CloudStack, um software livre para implementar infraestrutura como serviço (IaaS). Apresenta os conceitos básicos de computação em nuvem, como tipos, pilares e camadas, e fornece uma visão geral do CloudStack, incluindo sua história, arquitetura, recursos de rede e armazenamento.
3. 1. Cloud Computing
▧ 1.1 O que é Computação em Nuvem
▧ 1.2 Tipos: Pública, Privada e Híbrida
▧ 1.3 Pilares da Computação em
Nuvem
▧ 1.4 Camadas
#roteiro
2. CloudStack
▧ 2.1 O que é
▧ 2.2 História
▧ 2.3 Destaques
▧ 2.4 Terminologias
▧ 2.5 Arquitetura
▧ 2.6 Storage
▧ 2.7 Management Server
▧ 2.8 Features
▧ 2.9 Devcloud
5. “É um estilo de computação onde recursos de
TI escaláveis e elásticos são fornecidos como
um serviço usando tecnologias de rede e/ou
Internet.
Gaertner
10. Pilares da Computação em Nuvem
▧ Flexibilidade:
○ Você não está limitado á um modelo específico de recurso;
▧ Elasticidade:
○ Capacidade de provisionar e desprovisionar rapidamente grandes
quantidades de recursos em tempo de execução;
▧ Escalabilidade:
○ Dimensione de acordo com a demanda;
■ Vertical: Adição de recursos (memória, cpu, disco) em uma
infraestrutura existente;
■ Horizontal: Adição de novos componentes de maneira
transparente ao lado de componentes já existentes.
▧ Confiabilidade:
○ Segurança e Alta Disponibilidade.
13. Camadas da Computação em Nuvem
▧ SAAS (Software as a Service)
O cliente utiliza aplicativos criados pelo provedor e que são executados em
uma infraestrutura em nuvem.
- Gmail, GoogleDocs;
- Heroku;
- Sales Force;
- Office 365;
- Dropbox.
14. Camadas da Computação em Nuvem
▧ PAAS (Platform as a Service)
O cliente pode desenvolver aplicações próprias a partir das ferramentas
disponibilizadas pelo provedor. Não administra ou controla a infraestrutura
na nuvem, mas pode controlar o seu ambiente de desenvolvimento e os
seus aplicativos.
- Google App Engine;
- AWS Elastic Beanstalk;
- Cloud Foundry;
- Tsuru (Globo.com);
- Azure.
15. Camadas da Computação em Nuvem
▧ IAAS (Infrastructure as a Service)
O cliente pode criar suas instâncias, configurar recursos como
armazenamento, memória, processadores, tráfego, rede, load balancers.
Além disso possui controle sobre os sistemas operacionais e aplicativos
instalados
- CloudStack;
- Openstack;
- Amazon AWS;
- Azure;
- Rackspace;
- Digital Ocean.
19. … Hypervisor, Virtualização, Paravirtualização ?!
Hypervisor é a camada de software/hardware que permite a execução concorrente de vários
sistemas operacionais em um mesmo computador.
É responsável pelo controle da execução das máquinas virtuais e também funciona como um
mediador entre os dispositivos virtuais e o hardware, como por exemplo transações de I/O.
Para isto precisa ter controle sobre o processador e sobre o resto do hardware.
Existem dois tipos de Hypervisors:
▧ Tipo 1, também chamado de nativo ou “bare-metal”.
▧ Tipo 2, também chamado de hospedado (hosted em inglês).
20. … Hypervisor, Virtualização, Paravirtualização ?!
▧ TIPO 1: NATIVO
Bare-metal é o termo dado a execução de
software diretamente sobre o hardware,
sem nenhuma outra camada de software.
O Hypervisor tem controle total sobre o
processador e o resto do hardware.
Exemplos: VMware ESXi, o Xen e o KVM
(Kernel-based Virtual Machine) que são
Kernels Linux modificados para trabalhar
como Hypervisors.
21. … Hypervisor, Virtualização, Paravirtualização ?!
▧ TIPO 2: HOSPEDADO
Este tipo de Hypervisor é executado como
um software sobre um sistema
operacional normal chamado de hospede.
Logo, nesta situação o Hypervisor tem
controle limitado sobre o hardware.
Exemplos: VirtualPC, VMware
Player/Fusion/Workstation, Parallels
Desktop/Workstation, VirtualBox, dentre
vários outros.
22. … Hypervisor, Virtulização, Paravirtualização ?!
▧ Virtualização (Full)
O hypervisor emula todo o hardware para as máquinas virtuais.
O sistema operacional da máquina virtual nem percebe que está rodando em um ambiente
virtualizado, e tudo o que ele precisa são os device drivers para os dispositivos que o
hypervisor emula.
A grande vantagem da Virtualização “Full” é a compatibilidade com qualquer sistema
operacional que rode no hardware emulado (sem a necessidade de alterações).
▧ Paravirtualização
O hypervisor interage de uma forma mais eficiente com o sistema que roda na máquina
virtual, mas isso tem um custo: o sistema operacional precisa ser modificado para ser
compatível com a paravirtualização. Caso contrário, a emulação tem que entrar em cena,
penalizando a performance.
24. “É um projeto de código aberto da Apache
Software Foundation (ASF), para a
implantação de IaaS em nuvens públicas,
privadas e híbridas.
25. O Apache CloudStack gerencia a rede, storage
e servidores que compõem a infra-estrutura da
sua nuvem.
Faz a orquestração de hypervisors e appliances
de rede permitindo um controle simples de
tarefas complexas.
O que é o CloudStack
27. História do CloudStack
▧ Começou em 2008, pela empresa Vmops;
▧ Em 2010, a VMops passou a se chamar Cloud.com;
▧ Ainda em 2010, o Cloudstack foi lançado, com 98% do código aberto;
▧ Em 2011 o Cloudstack foi comprado pela Citrix que liberou os 2% restantes sob a
licença GPLv3;
▧ Em 2012 a Citrix doou o Cloudstack para o Apache Software Foundation e ele foi aceito
pela Incubadora Apache;
▧ Em 2013 o CloudStack foi promovido à um projeto Top-Level da ASF comprovando
maturidade de código e da comunidade;
▧ A marca não está mais no nome da Citrix e agora está sob a licença Apache 2.0;
▧ Disponível para download na versão 4.4.3.
29. Destaques do CloudStack
▧ Agnóstico de Hypervisor: XenServer (diretamente via Pool Master), Hyper-V, KVM
(integrado ao libvirt via cloud agent), Vmware (integrado pelo vCenter);
▧ Arquitetura escalável: Suporta milhares de hosts e máquinas virtuais (* Case da Zynga
com mais de 50K hosts e centenas de milhares de máquinas virtuais);
▧ Alta Disponibilidade: Possui configurações que permitem failover automatico de
máquinas virtuais;
▧ Network-as-a-Service: L2, L3, Gateway Privados, VPN site-to-site e de usuário, IPs
públicos, IPs privados, Balanceamento de carga (HA-proxy, Netscaler e F5);
▧ Multi-Tenant: Permite a co-existência de contas diferentes utilizando recursos
compartilhados, porém isolados um dos outros;
▧ Livre escolha de interfaces: Web UI, CLI (CloudMonkey), CloudStack API;
30. Destaques do CloudStack
▧ APIs compatíveis com AWS e S3: AWSAPI permite integrar uma nuvem privada
CloudStack com a nuvem AWS conectando os recursos de rede L3, permitindo rotear
pacotes entre as nuvens;
▧ Permite ainda integrar uma solução de GSLB para auto escalar na nuvem da AWS
quando os recursos da nuvem Cloudstack privada estiver esgotada, usando por
exemplo o Citrix Netscaler com o CloudBridge;
▧ Suporta qualquer storage de objetos com suporte a S3 para armazenamento de
Snapshots, ISOs e Templates, como por exemplo, Ceph, RiakCS, xRootd
33. Terminologias do CloudStack
▧ Region: Similares às regiões da AWS,
são a primeira e maior unidade de
implementação de uma cloud.
Consiste em Zonas de
Disponibilidade;
▧ Zone: Zona de Disponibilidade.
Geralmente DataCenters distintos;
▧ Pods: Rack em um DataCenter;
▧ Clusters: Grupo de máquinas com o
mesmo tipo de hypervisor e que
compartilham o mesmo storage
primário;
▧ Hosts: Os servidores físicos;
Region
34. Terminologias do CloudStack
▧ Primary Storage: Storage
compartilhado no cluster. É onde
estão os discos das máquinas virtuais.
Pode ser o disco local de um Host ou
um storage compartilhado como NFS,
iSCSI, FiberChannel, etc;
* No VMware e Hyper-V, poder ser
zone-wide.
▧ Secondary Storage: Storage
compartilhando na zona. Nele estão
os templates de máquinas virtuais,
ISO's e Snapshots. Utiliza NFS e pode
usar Swift para replicar o conteúdo
entre zonas.
** À partir da versão 4.4.x, é possivel
copiar templates/iso de uma zona
para outra sem depender do swift
através do uso da API ou GUI.
Region
36. Arquitetura do CloudStack
▧ O hypervisor é a unidade básica para
escalabilidade;
▧ Um único Management Server pode
gerenciar múltiplas zonas e ele precisa
estar fora da cloud, pois o hypervisor
precisa ser entregue ao CloudStack
limpo, sem nada dentro;
▧ O cluster consiste em um ou mais
hosts do mesmo hypervisor
▧ Todos os hosts no cluster possuem
acesso ao storage primário
compartilhado;
37. Arquitetura do CloudStack
▧ Os pod's podem representar um ou
mais clusters, usualmente conectados
via switches L2;
▧ As zonas de disponibilidade possuem
um ou mais pod's, com acesso ao
storage secundário;
▧ Uma nuvem, pode ser representada
por uma ou mais zonas.
39. CloudStack Storage
▧ Storage Primário:
○ Qualquer dispositivo que possa ser montado em um nó do cluster;
○ Armazena os discos das VM's e snapshots de VM's (não é o snapshot de disco);
○ Funciona como shared storage para migração de VM's entre hosts, e pode utilizar
disco local, NFS, Cluster LVM, ISCSI, FC, FCoE.
▧ Storage Secundário:
○ Disponível entre zonas;
○ Mantém ISO's, Snapshots e Templates (Repositório). Templates e ISO's podem ser
privados ou públicos;
41. CloudStack Management Server
▧ Servidor de gerência do CloudStack
○ Todas as funcionalidades disponíveis na interface de usuário, também estão
disponíveis via chamadas API;
○ RestfulAPI
■ Sem autenticação na porta 8096 para localhost (desabilitada por padrão)
■ Autenticação na porta 8080
■ Repostas em JSON ou XML
43. Features: Alta Disponibilidade
▧ RFMTTR – “really fast mean time to recovery”;
▧ CloudStack não é uma solução de HA mágica;
▧ Monitora o "HA-enabled" das VM's para garantir que estão ok e que o hypervisor
também esteja ok. Irá reiniciar a instância em outro hypervisor se o atual estiver fora;
▧ Virtual Router redundante.
▧ VPC Virtual Router (Em roadmap)
44. Features: Balanceamento de Carga
▧ Utiliza HA Proxy;
▧ Suporta balanceamento de carga para distribuir o tráfego entre suas instâncias;
▧ Escolha entre round-robin, source ou least connection.
○ Round Robin: Direciona para cada um dos nós de modo alternado.
○ Source (proximidade): Direciona para o nó mais próximo.
○ Least Connection: Direciona para o nó com menos conexões.
45. Features: Snapshots
▧ Permite snapshots manuais ou recorrentes;
▧ Snapshots podem ser gerenciados automaticamente, escolhendo manter um número X,
ou manualmente, deletá-los;
▧ Podem ser convertidos em templates ou volumes para serem usados por outras
instâncias.
46. Features: Networking
▧ O que o CloudStack pode gerenciar:
○ DHCP;
○ Alocação de VLAN's nos hypervisors (não configura switch fisico);
○ Firewall;
○ NAT/Port Forwarding;
○ Roteamento;
○ VPN;
○ Balanceamento de Carga;
○ Suporte a SDN - Software Defined Network (Vmware NSX, BigSwitch Fabric);
○ Pode ainda gerenciar dispositivos físicos de rede (F5-Big IP, NetScaler, Juniper
SRX).
47. Features: Networking
▧ Tipos de Redes do CloudStack:
○ Management Network: Usada pelos hypervisors e o servidor de gerenciamento
para se comunicarem.
○ Public Network: Rede exposta (Internet);
○ Guest Network: Rede onde as VMs são provisionadas. Existem três tipos de redes
guest:
■ Guest Básica - Compartilhada com grupos de segurança;
■ Guest Avançada - Grupos de Segurança;
■ Guest Avançada - Compartilhada, Isolada, VPC
* É possível dedicar uma rede para tráfego do secondary storage
48. ▧ Guest Básica - Compartilhada com grupos de segurança.
○ Fornece uma única rede flat onde o isolamento dos hospedes pode ser fornecido
através da camada 3 (IP) utilizando grupos de segurança (filtragem por ip de
origem);
Features: Networking
49. ▧ Guest Avançada - Compartilhada com grupos de segurança.
○ Semelhante à rede básica porém fornece mais de uma rede onde o isolamento
dos hóspedes pode ser fornecido através da camada 3 (IP) utilizando grupos de
seguranca (filtragem por IP de origem);
Features: Networking
50. ▧ Guest Avançada - Compartilhada, Isolada ou VPC.
○ Este modelo fornece maior flexibilidade na definicão de rede guest e fornece
ofertas de redes personalizadas, como Firewall, VPN, Load Balancer e recursos de
VPC. O isolamento dos guests é realizado através da camada 2 (Ethernet) usando
por exemplo, VLANs ou SDN.
Features: Networking
53. ▧ Guest Avançada - VPC: Roteada pelo virtual router multi-tier
Features: Networking
* LBVM: Load Balancing of Virtual Machines
54. Features: Security Groups
▧ Isolamento tradicional feito via L3. Uma regra de Firewall no Hypervisor não permite que
uma instância fale com outra a não ser que estejam no mesmo security group, ainda que
estejam na mesma VLAN e mesmo range de IP's;;
▧ Limite padrão de 4,096 VLANs;
▧ Deny por padrão.
55. Features: Contabilização de Recursos
▧ Permite a contabilização do uso de recursos;
▧ Estatísticas de uso mostram: Contagem de VMs, uso de CPU, alocação e uso de disco e
uso de rede.
56. Features: CloudMonkey (CLI)
▧ Escrito em Python;
▧ Automatiza tarefas administrativas;
▧ Seguro: utiliza a API, par de Secret keys e assinatura hash para acessar o CloudStack.
57. Features: Gerenciamento
▧ Fácil de configurar e administrar, via interface gráfica de usuário, API e ferramentas de
linha de comando como o CloudMonkey;
▧ O wizard facilita a configuração e implantação de sua primeira Zona, Rede, POD, Cluster,
Host e Storage.
62. Onde encontrar mais informações?
▧ Lista de discussão (BR):
○ https://groups.google.com/forum/#!forum/cloudstack-br
▧ Grupo no Linkedin:
○ http://www.linkedin.com/groups?home=&gid=5062193
▧ Site:
○ http://cloudstack.apache.org/
▧ Listas de Discussão:
○ http://cloudstack.apache.org/mailing-lists.html
▧ Download:
○ http://cloudstack.apache.org/downloads.html
63. Quem usa?
▧ USP;
▧ Zynga;
▧ Globo.com;
▧ Apple;
▧ Nokia;
▧ Spotify;
▧ Dell;
▧ Disney;
▧ SAP;
▧ GoDaddy;
▧ Cern;
▧ Softlayer;
▧ Datapipe;
▧ Huawey;
▧ Promon Logicalis;
▧ Verizon;
▧ Zenoss;
▧ Alcatel-Lucent;
▧ Autodesk;
▧ NTT;
▧ Orange;
▧ ...
*** A USP é a maior cloud privada da
América Latina. Alguns dados do que eles
gerenciam com CloudStack:
▧ 6 Datacenters em 6 cidades;
▧ + 500 nós;
▧ + 10K cores;
▧ + 250 TB memória;
▧ + 15 PB disco;
▧ + 2000 interfaces de rede 10Gbps;
▧ + 7000 VM’s criadas;
▧ + 300 LAN’s;