Grupo de Pesquisa em Software e Hardware Livre Joinville Minicurso Prof. Charles Christian Miers Computação em Nuvem Coordenador Colmeia charles.miers@udesc.br
Roteiro Definições Virtualização Data center Computação em Nuvem Principais classificações: Modelos de Serviços Modelos de implantação Arquitetura de referência Soluções de nuvem de código aberto: OpenStack Soluções de nuvem gratuitas (até certo uso): Amazon Web Services 2
Data Centers (DC) Ambiente especializado para hospedagem de recursos computacionais Infraestrutura especializada de energia e refrigeração Preocupação com redundância, escalabilidade e segurança Fonte: www.actionasp.com 3
DC Redundância, Segurança e Escalabilidade Prover redundância, segurança e escalabilidade pode ser complexo Expectativa atual é de serviços 7 x 24 Exemplo de estrutura de um site de Internet Banking (anos 90) simplificado 4
Arquitetura Usual de um DC Rede de Dados/ Armazenamento separadas Múltiplas conexões físicas por servidor 5
Servidores para Data Center Servidores de rack: Altura em unidades de rack (1U, 2U, 4U) Intel SR1550ALNA 1U Rack Blade servers: Gabinete com elementos compartilhados (Ex.: Fonte, ventilação, rede, etc. Maior densidade IBM BladeCenter H (7U) 6 6
Servidores Rack x Blade 7 Fonte: www.dell.com
DC Infraestrutura física Alta densidade computacional Alta demanda por energia e refrigeração Fonte: www.nytimes.com 8
DC Infraestrutura Física Ex.: Google Data Center (The Dalles, Ore) Google 9 Represa
Tipos de Data Centers Serviços de Data Center: Empresa que provê serviços de Data Center a outras empresas Exemplo: Tivit, Telefonica, Locaweb, UOL, Diveo, etc. Privados: Uso primário: atender as necessidades da própria empresa Exemplo: Google, Microsoft, UOL, Amazon, IDC USP, etc. 10
Data Centers Modelos de Negócios Três principais modelos: Hospedagem de servidores (Co-Location Service Provider) Aluguel de servidores e espaço em disco (Managed Services Provider) Hospedagem de aplicações web (Application Service Provider ASP) 11
Recursos Computacionais e Data Centers Problemas da abordagem atual de Data Centers: Dimensionados para picos Recursos adicionais podem ser providos se máquinas adicionais ficarem ligadas. I/O consume boa parte do tempo das máquinas ligadas Green IT: Impacto desta infraestrutura 12
Virtualização: Contexto Capacidade de processamento aumentou consideravelmente 257 GFlop/s pico (benchmark Linpack) 11/95 = 1º do Top500 11/2007 = Aprox. 3 servidores baseados em chip Quad-Core Intel Xeon série 5400 Fonte: www.intel.com 13
Virtualização: Motivação Máquinas subutilizam os seus recursos Exemplo processador: Boa parte do tempo ficam na espera de I/O (ex.: rede, disco) Aplicações não utilizam o processador o tempo todo Uma solução para aproveitar melhor os recursos pode ser a virtualização 14
Virtualização: Motivação Aumento da utilização do hardware Antes de Virtualizar Depois de Virtualizar Fonte: www.vmware.com 15
O que é virtualização? Conceito amplo de Virtualização: Abstração de um conjunto de recursos (computacionais e/ou de comunicação) Abstração representa recursos com características diferentes Alguns exemplos já devem ser conhecidos: VLANs (Virtual LANs): abstração segmento rede VPNs (Virtual Private Networks): abstração enlace Java Virtual Machine: abstração da plataforma de execução da aplicação RAID: abstração de armazenamento 16
Virtualização e Máquinas Virtuais Máquina Virtual (VM:) Hardware físico é representado por um hardware virtual Múltiplas VMs podem ser executadas na mesma máquina física VMs gerenciadas pelo Monitor de Máquinas Virtuais Função essencial: ISOLAMENTO VM 1 Aplic. 1 VM 2 Aplic. n Aplic. 1 MS Windows 7 Aplic. x GNU/Linux Monitor de Máquinas Virtuais (VMM) Hardware 17
Virtualização: Definições Básicas Virtualização é um meio de executar múltiplos sistemas operacionais e aplicações em um mesmo equipamento Exemplo: Executar o MS-Windows Server e GNU/Linux Xubuntu em um mesmo computador 18
Virtualização: Definições Básicas: SO Sistemas Operacionais: 19
Virtualização: Definições Básicas: VMM Portas Firewire Ethernet Portas USB Monitor (VMM) CD/DVD Teclado Placa de Som Controladora SCSI Mouse Controladora SATA/IDE 20
Monitor de Máquinas Virtuais Monitor de Máquinas Virtuais (MMV) ou Hypervisor Executado sobre um sistema operacional ou diretamente sobre o hardware VM 1 Aplic. 1 VM 2 Aplic. n Aplic. 1 MS-Windows Server (Guest) Aplic. x GNU/Linux (SO Guest) Monitor de Máquinas Virtuais (VMM) SO Host (ex. GNU/Linux, MS-Windows, etc.) Hardware 21
Virtualização: Tipos de Hypervisors Classificação: Tipo 1 (bare-metal) Tipo 2 (hosted) VM1 Guest Host VM1 VM2 Processo Guest Hypervisor Hypervisor SO Hardware Hardware VMware ESX, Microsoft Hyper-V, Xen VM2 Host VMware Workstation, Microsoft Virtual PC, Sun VirtualBox, QEMU, KVM 22
Virtualização A virtualização é uma ideia recente? 23
Virtualização: Origens an efficient, isolated duplicate of the real machine Communications of the ACM, vol 17, no 7, 1974, pp.412-421 24
Virtualização: Histórico 25
Principais Tipos de Virtualização Emulação: Máquina virtual simula um hardware com CPU diferente do hardware físico MMV precisa converter instruções SO funciona sem modificações Ex.: uma máquina virtual x86 em um computador com processador PowerPC (Virtual PC for Power Mac) Virtualização Nativa/ Full Virtualization: Máquina virtual simula um hardware com mesma CPU do hardware físico MMV precisa controlar instruções, sem convertê-las SO funciona sem modificações Ex.: Intel x86 sobre Intel x86 (VMWare, Parallels) 26
Tipos de Virtualização Virtualização Assistida por Hardware: Hardware auxilia no isolamento das máquinas virtuais Hardware se encarrega de partes ineficientes e/ou complexas da virtualização via software Exemplos Processadores Intel com tecnologia VT + GNU/Linux XEN Intel VT-c + VMWare 27
Usos de Máquinas virtuais Consolidação de servidores físicos: Menos máquinas físicas para gerenciar Menor $$ de infra-estrutura Disaster Recovery / Manutenção: Mais fácil migrar uma máquina virtual que reinstalar um SO Ambiente de testes: Servidor físico pode ser recriado em ambiente lógico para testar novas aplicações 28
Infraestruturas de Virtualização corporativa Virtualização pode trazer outros problemas à rede: Falha de uma máquina física pode derrubar vários serviços de uma única vez Se uma das VMs começar a utilizar muitos recursos, pode afetar as outras VMs Em uma rede corporativa é necessário agregar mecanismos de provisionamento, monitoração e controle 29
Ex.: Solução para consolidação de servidores Ex.: VMWare vsphere + vcenter: VMs ficam todas armazenadas em um storage compartilhado pelos servidores físicos Máquinas físicas com hypervisor embutido em hardware Gerenciamento monitora as máquinas físicas VMs são migradas automaticamente se máquina física cair ou ficar sobrecarregada Pode ligar máquinas físicas e rebalancear carga das VMs, para atender picos de demanda Pode redistribuir VMs e desligar máquinas físicas, para economizar energia em períodos de pouco uso 30
Ex.: Solução para consolidação de Servidores Mail Server Citrix SQL Server SAP DNS Oracle Apache ESX Server 1 ESX Server 2 ESX Server 3 Fonte: www.vmware.com 31
Tabela Periódica da Virtualização 32 Fonte: Virtualization II: Desktops and applications are next the 451 group
Soluções mais populares Nome Tipo Licença QEMU Emulação LGPL/GPL VMware Full virtualization Proprietário z/vm Full virtualization Proprietário Xen Paravirtualização GPL UML Paravirtualização GPL 33
Exemplo de rede virtualizada 34
Virtualização de processos Construção de linguagem: Java,.NET Emulação através da plataforma Transição entre plataforma E.g., Apple s 68000-PowerPC para Intel Virtualização da aplicação Sandboxing, mobilidade 35 35
Sistemas de Armazenamento 36
Abordagem Tradicional: Direct Attached Storage (DAS) Direct Attached Storage: Cada servidor com seu disco Ilhas de Informação Menor eficiência (espaço disponível por servidor, redundância e backup por servidor) 37
Rede de Armazenamento: Storage Area Network (SAN) Storage Area Network: Discos compartilhados via rede própria Maior eficiência (concentra-se redundância e espaço total de armazenamento 38
Exemplo de uma topologia de SAN Switch SAN Servidores Arrays de Discos (Storages) Unid. Fita Enlaces Redundantes entre Dispositivos 39 Switch SAN
Backup em SAN Unidades de Backup conectadas diretamente na SAN Acesso direto aos discos, sem ocupar a rede de dados para o Backup 40
Disaster Recovery com SAN Como os dados (e mesmo o sistema operacional) podem estar nos Storages, se um servidor quebrar pode-se reinicializar o sistema em outro equipamento Especialmente quando combinado com virtualização 41
Escalabilidade Horizontal Se os servidores tiverem um mecanismo de redundância para uma aplicação (ex.: cluster), então a adição de novos servidores ou storages permite uma fácil escalabilidade 42
Fibre Channel (FC) Fibre Channel (FC) Tecnologia para uma SAN especializada para armazenamento Rápida e confiável Velocidades de 2, 4, 8, 10, 16 Gbps SAN construída com sistemas de armazenamento em disco, Host Bus Adapters (HBAs) e switches especializados 43
Equipamentos Fibre Channel Switches e HBAs Brocade DCX8510 16 Gbps FC Switch Fonte: Brocade.com Brocade 815/825 8Gbps FC HBAs Fonte: Brocade.com HP 8/20q 8Gbps FC Switch Fonte: HP.com 44
iscsi iscsi (SCSI over IP) SAN construída sobre com placas de rede e switches Ethernet (1/10 Gbps) tradicionais Menor custo que FC Dell Equalogic PS6500E (48 discos SATA de 2TB, 2 controladoras com 4xGbE Fonte: Dell.com 45
Network Attached Storage - (NAS) Um conjunto de discos que está ligado à rede local (LAN) através de Ethernet É um servidor de armazenamento especializado com seu próprio endereço IP, disponível para vários clientes e servidores Fornece os dados sob a forma de arquivos, comporta-se como um servidor de arquivos independente do resto dos servidores da rede Apenas para Armazenamento de Arquivos e NÃO para BD Exemplos: NetApp, FreeNAS, etc. 46
DAS x SAN x NAS Rede de Dados Serv. Arquivos Serv. Arquivos MS-Windows/GNU/Linux c/ SAN Windows/Linux c/ DAS SAN Appliance para Serv. Arquivos (SO Próprio) Switch SAN Storage Array 47
Appliances Dispositivo com hardware e software dedicado para prover um serviço específico na rede HW/SW especializado/personalizado para a função Solução turn-key Facilidade de Gerenciamento Poucas possibilidades de expansão Tipicamente proprietários 48
Exemplos de Appliances Cisco ASA Security Appliance Mirapoint Message Appliance (servidor de e-mail) Fontes: Mirapoint, Barracuda, Cisco 49
Paradas em uma infraestrutura de TI Planejadas: Atualizações, correções, manutenções em geral Não-planejadas Problemas em elementos físicos Equipamento de rede, servidor, Fonte, Disco Falta de energia Eventos Lógicos Falha em software 50
Disponibilidade Proporção do tempo em que o sistema está operando corretamente Refere-se a capacidade do sistema em atender os usuários sempre que eles necessitem Downtime: tempo em que o sistema está indisponível 51
Medida de disponibilidade Disponibilidade % Downtime/ano Downtime/mês Downtime/semana 90% ( 1 nove") 36.5 dias 72 h 16.8 h 99% ( 2 noves") 3.65 dias 7.20 h 1.68 h 99.9% ( 3 noves") 8.76 h 43.2 min 10.1 min 99.95% 4.38 h 21.56 min 5.04 min 99.99% ( 4 noves") 52.56 min 4.32 min 1.01 min 99.999% ( 5 noves") 5.26 min 25.9 s 6.05 s 99.9999% ("6 noves") 31.5 s 2.59 s 0.605 s 52
Hardwares mais propensos a falhas Componentes com partes móveis Ventiladores, discos Componentes que geram muito calor Fontes Componentes muito novos Versão 1.0 de um novo hardware Componentes muito antigos Gastos 53
Softwares mais propensos a falhas Software recém escrito V1.0 Novos recursos disponibilizados no software Correções recentes de bugs / falhas Partes do código pouco utilizadas Código para tratamento de erros ou recuperação Recursos ainda não utilizados Código antigo funcional em um novo ambiente computacional 54
Infraestrutura para redundância: Data Center Data Center necessita de: UPS redundante Gerador redundante Capacidade adicional de ar-condicionado e respectiva redundância Força de duas subestações 55
Redundância e Alta Disponibilidade Redundância: Duplicação de um elemento da infraestrutura de TI Eliminação de pontos únicos de falhas Permite continuar o funcionamento da rede no caso de falha do componente duplicado Alta Disponibilidade / High-Availability (HA): Implementar redundância nos componentes funcionais para eliminar pontos únicos de falha Sistema que resiste a falha de componentes 56
Eliminação do Ponto único de falha Procurar cobrir os itens que falham mais frequentes, usando redundância Procurar depois cobrir qualquer componente, ainda que improvável Shit happens Dependendo da necessidade, procurar cobrir a falha de qualquer componente 57
Principais redundâncias Principais redundâncias: Enlaces Equipamentos de rede Servidores Componentes de servidores e equipamentos Exemplo: fonte, disco, etc. 58
Escalabilidade Vertical x Horizontal Escalabilidade Vertical: Aumento de recursos do sistema através de upgrades no hardware existente ou substituição do hardware existem por outro de maior capacidade Escalabilidade Horizontal: Aumento de servidores para atender a demanda (novos servidores trabalhando em paralelo com servidores antigos) Exemplo: clusters e nuvens computacionais Software de provisionamento deve tratar o paralelismo Como benefício auxiliar, há um aumento de disponibilidade 59
Data Centers e Computação sob demanda Data Centers fornecem uma grande capacidade computacional, porém com demanda limitada Ex.: Entrega do Imposto de Renda A maioria das declarações são entregues no último dia Se uma organização contratar processamento de um provedor: Os servidores ficarão ociosos parte do tempo; ou O cluster deverá ser manualmente reconfigurado para atender a demanda final; ou Faltará recursos para a aplicação Alternativa: e se estes recursos computacionais fossem similares a forma como água e luz são consumidas? 60
Utility Computing Utility Computing ou Computação sob demanda: Recursos Computacionais são: Fornecidos automaticamente conforme a necessidade Tarifados de acordo com o consumo Exemplos de uso: Oferecer serviços sem precisar comprar infraestrutura Baixo custo de investimento para novas empresas de serviços Atender de forma automática picos em demanda Pensem no último dia de submissão do Imposto de Renda 61
Utility Computing x Data Centers Tradicionais Data Centers (ainda) não fornecem Utility Computing: Data Centers tradicionais: Eu recebo o que pago Utility Computing: Eu pago o que recebo Data Centers geralmente não possuem mecanismos para alocar automaticamente recursos para os usuários conforme a demanda Alocação é feita manualmente e em geral é estática 62
Serviços sob Demanda Conforme necessário, a nuvem fornece os recursos para o usuário Linha azul: O que o cliente usa Linha vermelha: Recursos do data center 63
Evolução para Computação em Nuvem 64
Conceito de Computação em Nuvem Paradigma onde recursos computacionais residem em data centers distribuídos, sendo oferecidos como serviços de forma escalável e elástica e utilizados de forma transparente de qualquer lugar Recursos podem ser aplicações, armazenamento, middleware, processamento, etc.. 65
Origem do termo Cloud Computing Comes from the early days of the Internet where we drew the network as a cloud we didn t care where the messages went the cloud hid it from us Kevin Marks, Google Primeira nuvem em torno de redes (abstração TCP/IP) Segunda nuvem em torno de documentos (abstração dos dados WWW) As nuvens emergentes abstraem a complexidade de infraestrutura quanto a servidores, aplicativos, dados e plataformas heterogêneas 66
Computação em Nuvem: Relações Tecnologias correlatas: Utility Computing: Computação como uma ferramenta disponibilizada via serviços Computação em Grade: Grade: fornecer recursos computacionais como ferramentas que podem ser alocadas ou liberadas Nuvem: provisionamento sob demanda (escalabilidade automática) SOA: Padrão arquitetural e estratégia para desenvolvimento de soluções Computação em nuvem é uma solução orientada a serviços 67
Computação em Nuvem: Definição NIST Special Publication SP 800-145(Draft 01/2011) Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. 68
Computação em Nuvem: Características Cinco características essenciais (NIST): On-demand self-service Pool de recursos com independência de localização Acesso via rede Elasticidade Serviço mensurável 69
Computação em Nuvem: Características On-demand self-service: Usuário pode provisionar recursos computacionais conforme necessitar, de forma automática, sem demandar interação manual do provedor Exemplo: + CPU, + armazenamento 70
Computação em Nuvem: Características Elasticidade: Recursos podem ser rapidamente provisionados (de forma automática ou não) para atender o aumento de demanda Os recursos também podem ser rapidamente desalocados caso não haja demanda Consumidor frequentemente tem a impressão que os recursos disponíveis para alocação são ilimitados e podem ser alocados a qualquer hora, em qualquer quantidade Máquinas virtuais Horário normal Horário de pico 71
Computação em Nuvem: Características Pool de Recursos: Recursos em pool para atender múltiplos consumidores - modelo multi-tenant Recursos físicos virtuais dinamicamente alocados de acordo com a demanda do consumidor Infraestrutura deve ser capaz de compartilhar recursos entre diversos usuários/empresas, com garantia de isolamento de dados entre elas Exemplo de recursos: armazenamento, processamento, memória, banda, virtual machines, etc Recursos podem estar em Data Centers distribuídos pelo mundo (até mesmo transparentes) Consumidor geralmente não tem controle/conhecimento da localização exata dos recursos Pode ser possível de se especificar localização em diferentes níveis Exemplo: país, região, Data Center,... 72
Computação em Nuvem: Características Acesso via Rede: Recursos devem estar disponíveis via rede (tipicamente via Internet) Acesso via mecanismos padronizados que permitam o acesso via múltiplas plataformas Exemplo: não só a partir de PCs, mas cada vez mais considerando acesso de celulares (smartphones) e outros dispositivos móveis (netbooks, e-readers, tablets,...) 73
Computação em Nuvem: Características Serviço Mensurável: Serviço deve fornecer métricas de uso Dois modelos de tarifação são mais comuns: Conforme uso (modelo de Utility Computing): banda, CPU, espaço em disco, transações, etc. Serviço por assinatura (mensal/anual) 74
Classificação: Nuvens Computacionais Nuvens chegaram ao mercado antes de uma padronização Resultado: Nomes de produtos versus tipos Modelo de classificação mais aceitos são os modelos do NIST: Modelo SPI Modelos de implantação 75
Classificação: Modelo SPI (NIST) Modelo SPI Software/Platform/Infrastructure: SaaS (Software-as-a-Service) PaaS (Platform-as-a-Service) IaaS (Infrastructure-as-a-Service) 76
Modelo SPI Aprimorado 77
Modelo SPI: SaaS SaaS (Software-as-a-Service): Aplicação final executando na nuvem Aplicação mantida pelo provedor Usuário controla apenas dados e configurações da aplicação Exemplo: web-based e-mail, Flicker, Salesforce.com, MS-Live, Google Apps (Docs, Reader, etc.) 78
Modelo SPI: PaaS PaaS (Platform-as-a-Service): Aplicações criadas por usuários ou adquiridas de terceiros Aplicações usam APIs, ferramentas e linguagem de programação suportadas pelo provedor Usuário controla aplicação, podendo controlar aspectos de hospedagem da mesma Exemplo: Google Apps Engine e MS-Azure 79
Modelo SPI: IaaS IaaS (Infrastructure-as-a-Service): São fornecidos recursos computacionais fundamentais (processamento, armazenamento, rede, etc.) Exemplo: Amazon EC2 / S3, Rackspace Cloud Server / CloudFiles, Locaweb Cloud Server, UOL Cloud Prime 80
SPI: Diferentes combinações 81
SPI: Controle e Responsabilidade 82
Modelo SPI: exemplos 83
Modelo de Implantação Tipos: Nuvem Privada Nuvem Comunitária Nuvem Pública Nuvem Híbrida 84
Modelo de Implantação (NIST) Nuvem Privada: Somente uma entidade usa a nuvem Tipicamente dentro dos limites da entidade Pode estar em ambiente terceirizado e/ou com gerenciamento terceirizado Exemplo: Nuvem da USP, Nuvem da Empresa X Nuvem Comunitária: Extensão da Nuvem Privada Uso compartilhado por diversas entidades, com foco nas necessidades de uma comunidade Exemplo: Nuvem Acadêmica, Governamental, etc. 85
Modelo de Implantação (NIST) Nuvem Pública: Uso Público Uma organização é dona da infraestrutura e vende os serviços de nuvem Nuvem Híbrida: Infraestrutura é composta de duas ou mais nuvens (Privada, Comunitária ou Pública) interligadas por padrões e/ou mecanismos proprietários Portabilidade de dados e aspectos de gerenciamento para atender características de nuvens computacionais Exemplo: resiliência, balanceamento de carga 86
Modelo de Implantação (NIST) 87
Modelo de Referência (NIST) 88
Computação em Nuvem: Elementos 89
Soluções de Nuvens Abertas 90
Principais soluções de nuvens abertas OpenStack: é uma solução para criação de nuvens públicas e privadas Conta com a colaboração de grandes empresas CloudStack: desenvolvido pela Apache/ Citrix, permite a criação de nuvens públicas e privadas OpenShift: desenvolvido pela Red Hat, é uma solução PaaS Cloud Foundry: software aberto e lançado pela VMWare OpenNebula: solução aberta para virtualização de data centers e nuvens empresariais Eucalyptus Cloud: software para a construção de nuvens privadas e híbridas Nimbus, focada no fornecimento de recursos IaaS para a comunidade científica 91
Principais soluções de nuvem gratuita São gratuitas até um limite (espaço, tráfego, etc) Algumas das mais conhecidas: Amazon AWS DropBox MS Skydrive Google Drive 92
Soluções de nuvem de código aberto As principais soluções de nuvem em código aberto são: OpenStack CloudStack Open Compute Project (OCP) 93
Linha do tempo Nuvens Computacionais 94
Licenças empregadas em nuvens abertas BSD/MIT A licença BSD é pouco restritiva Permite modificar o software e distribuir sob outra licença Apache (v2.0,v1.1) - exige a inclusão do aviso de copyright e disclaimer, mas não é uma licença copyleft LGPL Licença intermediária Possui algumas restrições a menos que a GPL GPL - A GPL permite que os programas sejam distribuídos e reaproveitados mantendo os direitos do autor. Licença copyleft 95
Principais licenças das nuvens computacionais de código aberto 96
Linguagens usadas nas nuvens computacionais de código aberto 97
Nuvens abertas IaaS 98
Desenvolvedores do OpenStack 99
Revisão do código por grandes corporações 100
Ecossistema OpenStack 101
Desenvolvedores do OpenStack 102
Concorrência OpenStack 103
Referências www.openstack.org https://access.redhat.com/products/cloud/openstack/ www.brasilopenstack.com.br/ http://www.trystack.org http://csrc.nist.gov/publications/nistpubs/800-144/sp800-144.pdf http://csrc.nist.gov/publications/nistpubs/800-145/sp800-145.pdf http://csrc.nist.gov/publications/nistpubs/800-146/sp800-146.pdf 104
Perguntas? Site: www.colmeia.udesc.br e-mail: contato@colmeia.udesc.br Obrigado!
Este trabalho está licenciado sob uma licença Creative Commons Atribuição-Compartilhamento pela mesma licença 2.0 http://creativecommons.org/licenses/by-sa/2.0/br/