EN-3610 Gerenciamento e Interoperabilidade de Redes Computação em Nuvem Introdução • Centralização do processamento – Surgimento da Teleinformática – Década de 60 • Execução de programas localmente – Computadores Pessoais – Década de 80 • Migração de programas e dados para a Internet – Computação em Nuvem – Atual História Duas Tecnologias • Virtualização: Habilidade de executar múltiplos sistemas operacionais em um único sistema de hardware e compartilhar os recursos de hardware • Computação em Nuvem: Disponibilização de serviços por demanda, permitindo a escala de recursos 4 Conceito de Servidor Tradicional Servidor Web Servidor de Aplicação Windows Linux IIS Glassfish Servidor BD Linux MySQL EMail Windows Exchange E se alguma coisa der errado... Servidor Web Windows IIS Servidor de Aplicação DOWN! Servidor BD Linux MySQL EMail Windows Exchange Conceito de Servidor Tradicional • Administradores de rede se referem aos servidores como uma unidade única que inclui hardware, SO, armazenamento e aplicações. • Se um servidor é sobrecarregado, um administrador deve adicionar um servidor. • Administradores podem implementar clusters de servidores para torná-los mais tolerante a falhas. No entanto, mesmo clusters tem limites na escalabilidade e nem todas aplicações trabalham em um ambiente de cluster. Conceito de Servidor Tradicional • Vantagens – – – – Fácil instalação Fácil desenvolvimento Facilidade de backup Qualquer aplicação/serviço pode ser executada neste tipo de arquitetura • Desvantagens – Aquisição e manutenção de hardware caros – Não é escalável – Difícil de replicar – Redundância difícil de implementar – Vulnerável a queda de hardware – Processador sub-utilizado em muitos casos Conceito de Servidor Virtual Camada do monitor de máquina virtual (VMM) entre SO convidado e hardware Virtualização Server 1 Guest OS Server 2 Guest OS Clustering Service Console VMM (Virtual Machine Monitor) x86 Architecture Intercepta requisições de hardware Conceito de Servidor Virtual • Servidor virtual encapsula o software do servidor do harware – Isto inclui o SO, as aplicações e armazenamento para o servidor. • Um servidor virtual pode usar um ou mais hosts, e um host pode hospedar mais de um servidor virtual. • Servidores virtuais não serão afetados pela perda de um host. • Hosts podem ser removidos e introduzidos sem grandes problemas. • Servidores virtuais podem ser escalados facilmente. – Se os recursos de um servidor virtual estiverem sobrecarregados, mais recursos podem ser alocados ao servidor virtual • Podem ser criados templates de servidores para multiplicar servidores virtuais idênticos • Servidores virtuais podem migrar de host para host. Conceito de Servidor Virtual • Vantagens – – – – – Alocação de recursos Alta redundância Alta disponibilidade Rápida implantação de servidores Reconfigurável enquanto servidores estão executando – Otimização de recursos físicos • Desvantagens – Mais difícil de projetar – Eventualmente mais caros Virtualização • Várias companhias – e.g. VMware, Microsoft, Sun, ... • Hardware support • Virtualização é uma tecnologia bem estabelecida Computação em nuvem leva virtualização para o próximo passo! • Você não precisa ter o hardware • “Aluga” de acordo com a necessidade Definição " A Nuvem é um grande reservatório de recursos virtualizados facilmente utilizáveis e acessíveis (como hardware, plataformas de desenvolvimento e/ou serviços). Esses recursos podem ser dinamicamente reconfigurados para ajustar a carga (escala) variável do sistema, permitindo também um uso ótimo dos recursos. Esse reservatório de recursos é geralmente explorado por um modelo pay-per-use (pagar para usar) no qual as garantias são oferecidas por um Provedor de Infraestrutura por meio de SLAs (Service Level Agreement - Acordo de Nível de Serviço) " Retirado de: Vaquero, L.M. and Rodero-Merino, L. and Caceres, J. and Lindner, M. "A break in the clouds: towards a cloud definition" em ACM SIGCOMM Computer Communication Review, 2008 Computação em Nuvem Arquitetura Características Características Comuns: Escala Massiva Computação Resiliente Homogeneidade Distribuição Geográfica Virtualização Orientada a Serviços Software Baixo Custo Segurança Avançada Características Essenciais: Serviços por Demanda Acesso Rede Banda Larga Elasticidade Varredura de Recursos Medição de Serviços Tipos de Cenário • Infraestrutura como Serviço (IaaS ): – Ex: Sistema Operacional completo • Plataforma como Serviço (PaaS ): – Ex: Ambiente de desenvolvimento • Software como Serviço (SaaS): – Ex: Editores de texto Software as a Service (SaaS) Platform as a Service (PaaS) Infrastructure as a Service (IaaS) Modelos de Desenvolvimento Nuvem pública • As nuvens públicas são aquelas que são executadas por terceiros. As aplicações de diversos usuários ficam misturadas nos sistemas de armazenamento. Um dos benefícios das nuvens públicas é que elas podem ser muito maiores do que uma nuvem privada, por exemplo, já que elas permitem uma maior escalabilidade dos recursos. Essa característica evita a compra de equipamentos adicionais para resolver alguma necessidade temporária, deslocando os riscos de infraestrutura para os prestadores de infraestrutura da nuvem. Nuvem privada As nuvens privadas são aquelas construídas exclusivamente para um único usuário (uma empresa, por exemplo). Diferentemente de um data center privado virtual, a infraestrutura utilizada pertence ao usuário, e, portanto, ele possui total controle sobre como as aplicações são implementadas na nuvem. Uma nuvem privada é, em geral, construída sobre um data center privado. Nuvem híbrida As nuvens híbridas combinam os modelos das nuvens públicas e privadas. Elas permitem que uma nuvem privada possa ter seus recursos ampliados a partir de uma reserva de recursos em uma nuvem pública. Essa característica possui a vantagem de manter os níveis de serviço mesmo que haja flutuações rápidas na necessidade dos recursos. Nuvem comunitária • Uma nuvem comunitária é formada quando várias organizações com requisitos similares compartilham uma infraestrutura. Vantagens • Usuário – Compatibilidade – Atualizações – Mobilidade • Não há necessidade de investimento em TI (HW, SW) e… – – – – sem custo de manutenção sem custo de pessoal sem custo de espaço físico sem custo de energia • Não há contratos complexos e duradouros de prestação de serviços • Cobra-se apenas por recursos x tempo de uso • Escala por demanda Vantagens • Vendedores e criadores – Amplo mercado – Economia • De tempo • De dinheiro Desafios • • • • • • • • Gargalo na conexão Privacidade e direito sobre os dados Confiabilidade do serviço Padronização DDoS (Ataque de Negação de Serviço Distribuído) Desempenho não é garantido Algumas tecnologias ainda em amadurecimento Não há jurisprudência sobre essa forma de contrato Desafios - Segurança • • • • Abusos de Computação em Nuvem Interfaces e APIs inseguras Ameaças Internas Problemas com Compartilhamento de Tecnologias Ex: EUCALYPTUS • Arcabouço para implementação de um IaaS • Plataforma para estudos científicos – Solução em Código Aberto e Modular • Interface para iniciar, controlar e acessar máquinas virtuais • Alocação de recursos de máquina física – Acordos de Nível de Serviço(SLAs) EUCALYPTUS - Arquitetura Ex: OpenStack • OpenStack é um software de código aberto, capaz de gerenciar os componentes de múltiplas infraestruturas virtualizadas. • Fornece APIs que em conjunto são capazes de controlar todos os recursos disponíveis na oferta dessa infraestrutura: máquinas virtuais, rede, armazenadores, balanceadores de carga. Conclusão • Tecnologia não amadurecida – Ausência de Definição e Arquitetura únicas • Utilização de técnicas de virtualização • Vantagens de redução de custos e mobilidade • Desvantagens sobre desconfiança dos usuários – Necessidade de incentivos à Computação em Nuvem • Tendência ao uso em larga escala – Adequação dos Provedores de Acesso à Internet Referências • Slides elaborados a partir de: • Markus Endler – Introdução à Computação em Nuvem. PUC-RJ. • Fernando Seabra Chirigati – Computação em Nuvem. UFRJ • Normam Wilde e Thomas Wuber. Virtualization and Cloud Computing.