Minicurso Computação em Nuvem Glauber Cassiano Batista Ricardo Sohn Membros Colméia
Roteiro Geral 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 gratuitas (até certo uso): Amazon Web Services Soluções de nuvem de código aberto: OpenStack
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
DC Infraestrutura física Alta densidade computacional Alta demanda por energia e refrigeração Fonte: www.nytimes.com 7
DC Infraestrutura Física E.g., Google Data Center (The Dalles, Ore) Google Represa 8
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. 9
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) 10
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 11
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 é a virtualização 12
Virtualização: Motivação Aumento da utilização do hardware Antes de Virtualizar Depois de Virtualizar Fonte: www.vmware.com 13
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 14
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 15
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 16
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, etc 17
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) 18
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 19
Paravirtualização Paravirtualização: Hardware auxilia no isolamento das máquinas virtuais Hardware se encarrega de partes ineficientes e/ou complexas da virtualização via software SO precisa ser desenvolvido para se acoplar ao hypervisor Exemplo: Xen Contêiner: Uso de contêiner para isolar um processo dentro do SO Exemplo: LXC Docker, Microsoft Azure com Orleans 20
Usos de Máquinas virtuais Consolidação de servidores físicos: Disaster Recovery / Manutenção: Menos máquinas físicas para gerenciar Menor $$ de infra-estrutura 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 21
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 22
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 Apache v2 UML Paravirtualização GPL 23
Exemplo de rede virtualizada 24
Sistemas de Armazenamento 25
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) 26
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 27
Exemplo de uma topologia de SAN Switch SAN Servidores Arrays de Discos (Storages) Unid. Fita Enlaces Redundantes entre Dispositivos Switch SAN 28
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. 29
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 30
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, discos, etc. Falta de energia Eventos Lógicos Falha em software 31
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 32
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 33
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? 34
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 35
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 36
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 37
Evolução para Computação em Nuvem 38
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.. 39
Computação em Nuvem: Relações Tecnologias correlatas: Utility Computing: Computação em Grade: Computação como uma ferramenta disponibilizada via serviços 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 40
Computação em Nuvem: Definição NIST Special Publication SP 800-145 (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. 41
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 42
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 43
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) 44
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.) 45
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 Exemplos: Red Hat OpenShift, Google Apps Engine e MS-Azure 46
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 47
SPI: Diferentes combinações 48
SPI: Controle e Responsabilidade 49
Conceitos básicos: Classificações: Computação em nuvem SaaS, PaaS, IaaS (SPI): nomenclatura NIST Outros *aas também existem na literatura: Storage as a Service (STaaS): espaço de armazenamento Security as a Service (SECaaS): serviços como autenticação, antivirus e detecção de intrusão Data as a Service (DaaS): semelhante ao SaaS, mas com foco em aplicações cujo principal atrativo são os dados Exemplo: informações geográficas Desktop as a Service (DaaS): virtualização de desktop... Nem sempre a classificação é óbvia, por mais abrangente que seja a taxonomia usada 50
Modelo de Implantação Tipos: Nuvem Privada Nuvem Comunitária Nuvem Pública Nuvem Híbrida 51
Modelo de Referência (NIST) 52
Computação em Nuvem: Elementos 53
Soluções de Nuvens Abertas 54
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 OneDrive Google Drive 55
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) 56
Linha do tempo Nuvens Computacionais 57
Licenças empregadas em nuvens abertas BSD/MIT A licença BSD é pouco restritiva 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 Permite modificar o software e distribuir sob outra licença 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 58
Principais licenças das nuvens computacionais de código aberto 59
Linguagens usadas nas nuvens computacionais de código aberto 60
Referências http://csrc.nist.gov/publications/nistpubs/800-144/sp 800-144.pdf http://csrc.nist.gov/publications/nistpubs/800-145/sp 800-145.pdf http://csrc.nist.gov/publications/nistpubs/800-146/sp8 00-146.pdf 61
Perguntas?
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/