36
Gerenciamento e Interoperabilidade de Redes Computação em Nuvem

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

Embed Size (px)

Citation preview

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

Uso

Co

mp

uta

r

Time

Média

Período de

Inatividade

“On / Off “

Cargas On/Off (ex.:. Job batch)

Desperdício da capacidade provisionada

Time to market pode ser retardado

Co

mp

uta

r

Tempo

“Carga Imprevista“

Uso Médio

Pico de demanda inesperada

Desempenho comprometido pelo pico

Difícil provisionar nos casos extremos

Uso Médio

Co

mp

uta

r

Tempo

“Crescimento Rápido“

Serviços que precisam cresce e escalar

Crescer é um desafio grande na TI

Deployment complexo

Co

mp

uta

r

Tempo

Uso Médio

“Carga Sazonal“

Serviços c/ micro sazonalidades

Picos devido a demandas periódicas

Complexidade da TI + desperdício

O que computação em nuvem pode resolver?

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

Desafios – quanto mais nós são adicionados na rede...

Fog Computing

Fog Computing

– Fog computing (computação em névoa)

– Paradigma que estende a computação em nuvem para a borda da rede.

– Similar a nuvem, névoa provê dados, armazenamento, computação e serviços de aplicações para usuários

– Baixa latência e ciente de localidade

– Envia os dados corretos para a nuvem para aramazenamento e análise de big data

– Heterogeneidade de objetos conectados

– Acesso predominante por meio sem fio e dispositivos móveis

Ex: OpenStack

• OpenStack é um software de código aberto, capaz de gerenciar os componentes de múltiplas infraestruturas virtualizadas.

• É um sistema operacional de nuvem

• 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.

• A Rackspace (provedor de infraestrutura americano) e a NASA (agência espacial americana) foram os principais contribuidores iniciais para o projeto

OpenStack

OpenStack - Componentes

• OpenStack Compute (

– Gerenciamento de instâncias virtuais;

● OpenStack Object Storage

- Armazenamento de objetos em um ambiente distribuído;

● OpenStack Image Service

● Controle de imagens de S.O.;

● OpenStack Identity

● Controle de autenticação e autorização entre ações;

● OpenStack Dashboard

● Gerenciamento web

● OpenStack Networking

● Gerenciamento de rede

● OpenStack Block Storage

● Gerência para armazenamento de blocos (sistema de arquivos).

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.

• Ramin Elahi – Fog computing and its ecosystem – UC Santa Cruz Silicon Valley