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 Windows IIS Servidor de Aplicação Linux 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 Homogeneidade Virtualização Software Baixo Custo Computação Resiliente Distribuição Geográfica Orientada a Serviços 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.