O slideshow foi denunciado.

Flisol 2015

727 visualizações

Publicada em

Presentation at FLISOL 2015 about Cloud Computing with Free Software using CloudStack.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Flisol 2015

  1. 1. Cloud Computing e Software livre com CloudStack #flisol201525/04/2015
  2. 2. #whoami Ricardo Martins @ricardomartins ricardomartins.com.br/manpage facebook.com/blogricardomartins
  3. 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
  4. 4. 1.1 O que é computação em nuvem?
  5. 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
  6. 6. Processamento Armazenamento Software
  7. 7. 1.2 Tipos de Computação em Nuvem
  8. 8. Tipos de Computação em Nuvem ▧ Pública ▧ Privada ▧ Híbrida
  9. 9. 1.3 Pilares da Computação em Nuvem
  10. 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.
  11. 11. 1.4 Camadas da Computação em Nuvem
  12. 12. Camadas da Computação em Nuvem IaaS PaaS SaaS Abstração Controle
  13. 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. 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. 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.
  16. 16. Matriz de Responsabilidades
  17. 17. Aplicação Plataforma Infraestrutura Virtualização Servidor Servidor Servidor Storage Storage
  18. 18. Aplicação Plataforma Infraestrutura Virtualização Servidor Servidor Servidor Storage Storage Virtualização não é Computação em Nuvem
  19. 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. 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. 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. 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.
  23. 23. 2.1 O que é o CloudStack
  24. 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. 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
  26. 26. 2.2 História do CloudStack
  27. 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.
  28. 28. 2.3 Destaques do CloudStack
  29. 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. 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
  31. 31. Destaques do CloudStack Plataforma aberta e flexível
  32. 32. 2.4 Terminologias do CloudStack
  33. 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. 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
  35. 35. 2.5 Arquitetura do CloudStack
  36. 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. 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.
  38. 38. 2.6 CloudStack Storage
  39. 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;
  40. 40. 2.7 CloudStack Management Server
  41. 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
  42. 42. 2.8 Features: Alta Disponibilidade Balanceamento de Carga Snapshots Networking Security Groups Contabilidade Cloud Monkey Gerenciamento
  43. 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. 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. 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. 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. 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. 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. 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. 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
  51. 51. ▧ Guest Avançada - Compartilhada: Roteada por elemento L3 externo (Switch L3, Router, FW) Features: Networking
  52. 52. ▧ Guest Avançada - Isolada : Roteada pelo virtual router; Features: Networking
  53. 53. ▧ Guest Avançada - VPC: Roteada pelo virtual router multi-tier Features: Networking * LBVM: Load Balancing of Virtual Machines
  54. 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. 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. 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. 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.
  58. 58. 2.9 DevCloud
  59. 59. DevCloud ▧ Appliance Virtual para estudo; ▧ Formato OVA; ▧ https://cwiki.apache.org/confluence/display/CLOUDSTACK/DevCloud
  60. 60. 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
  61. 61. 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;
  62. 62. Obrigado! Perguntas? contato@ricardomartins.com.br

×