32
EN-3610 Gerenciamento e Interoperabilidade de Redes Computação em Nuvem

Gerenciamento e Interoperabilidade de Redesprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/ger2013/nuvem.pdf · Disponibilização de serviços por demanda, permitindo a escala de

  • Upload
    letruc

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

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

4

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

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

de

Aplicação

DOWN!

Servidor

Web

Windows

IIS

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

x86 Architecture

VMM (Virtual Machine Monitor)

Server

1

Guest OS

Server

2

Guest OS

Clustering

Service

Console

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.

• 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

Conceito de Servidor Virtual

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:

Software Baixo Custo

Virtualização Orientada a Serviços

Segurança Avançada

Homogeneidade

Escala Massiva Computação Resiliente

Distribuição Geográfica

Características Essenciais:

Varredura de Recursos

Acesso Rede Banda Larga Elasticidade

Medição de Serviços

Serviços por Demanda

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.