Relatório 3
Volume Único (2011)
Relatório 3: Perspectivas e Desafios da Computação em
Nuvem na Internet do Futuro
Markus Endler, José Viterbo e Hubert Fonseca
30 de abril de 2011
Perspectivas e Desafios da Computação em Nuvem na
Internet do Futuro
Markus Endler1 , José Viterbo2 e Hubert Fonseca3
1
[email protected], 2 [email protected], 3 [email protected]
Departamento de Informática
Pontifı́cia Universidade Católica do Rio de Janeiro (PUC-Rio)
Rio de Janeiro, Brasil
Empresas e indivı́duos vêm cada vez mais migrando suas aplicações de computadores locais para serviços oferecidos remotamente através da Internet, utilizando o
paradigma de computação em nuvem, no qual recursos computacionais são disponibilizados na forma de serviços e usados de acordo com a necessidade especı́fica
do usuário. Este relatório visa discutir os novos requisitos de infra-estrutura de
rede, middleware, aplicações e protocolos necessários para dar suporte à utilização
da computação em nuvem. Com esta finalidade, primeiramente, são apresentados os
principais termos e conceitos relativos à computação em nuvem (Cloud Computing).
São propostos alguns cenários futuros. Além disso, são discutidos os projetos de
pesquisas que abordam tendências promissoras nesta área. Finalmente, são discutidos os novos requisitos de infraestrutura de rede para viabilizar um acesso integrado
e ubı́quo a serviços em nuvem e enumerados alguns setores nas quais a computação
em nuvem deverá oferecer oportunidades de pesquisa e desenvolvimento no paı́s.
1
Introdução
O rápido desenvolvimento das tecnologias de processamento e armazenamento de dados e a crescente disseminação do acesso à Internet vêm tornando os recursos computacionais menos custosos, mais potentes e disponı́veis de forma ubı́qua. Essas tendências tecnológicas viabilizaram
o surgimento de um novo paradigma de computação denominado computação em nuvem, no
qual recursos, tais como capacidade de processamento, de armazenamento e de comunicação,
são disponibilizados na forma de serviços e usados de acordo com a necessidade especı́fica do
usuário, que pode contratá-los através da Internet à medida em que se tornem necessários, ou
liberá-los, quando deixam de sê-lo [ZCB10].
Este novo paradigma tem o potencial para transformar uma grande parte da indústria de tecnologia da informação e comunicação (TIC), uma vez que os desenvolvedores com idéias inovadoras para novos serviços na Internet já não precisarão realizar elevados investimentos em
hardware para implementar seus serviços ou incorrer em grandes despesas com equipes para
operá-los. Eles não precisarão se preocupar com provisionamento de recursos em excesso para
um serviço cuja popularidade fique aquém de suas espectativas, o que acarretaria o desperdı́cio
de recursos valiosos. Também não precisarão se preocupar com o provisionamento de recursos
insuficientes para aqueles serviços que eventualmente se tornem muito populares, o que poderia
levar à perda de receitas e potenciais clientes. Além disso, empresas com grande carga de traRelatório 3
1 / 27
balho computacional serão capazes de obter resultados tão rapidamente quanto seus programas
possam ser escalonados, uma vez que o custo de mil servidores para uma hora não será maior
do que usar um servidor por mil horas. Esta elasticidade de recursos, sem pagar um preço especial para grande escala, não tem precedentes na história da indústria de TIC. Como resultado, a
computação em nuvem se tornou um tema popular e vem sendo investigado por pesquisadores
de diversas áreas [AFG+ 10]. Além disso, grandes empresas como Google, Amazon, Microsoft
e outras têm investido pesadamente nos últimos anos para oferecer plataformas em nuvem mais
poderosas, confiáveis e com melhor custo-benefı́cio, e muitas outras empresas em diversas áreas
estão redesenhando seus modelos de negócios a fim de obter os benefı́cios deste novo paradigma
de computação.
Mas qual é o impacto da computação em nuvem sobre as tradicionais tecnologias da Internet
e o próprio uso da mesma? Por um lado, há um consenso de que um dos grandes entraves para
uma adoção ainda mais abrangente desse paradigma está nas atuais limitações da rede internet: a
pequena largura de banda de muitas redes de acesso, que inviabilizam a transferência de grandes
volumes de dados de, para e entre as nuvens, e a deficiência em mecanismos que garantam a
Qualidade de Serviço (QoS), a segurança e a confidencialidade da comunicação entre o usuário
e o provedor da nuvem. Por outro lado, a computação em nuvem traz uma série de novos usos
(e tipos de tráfego) para as tecnologias de redes que não eram conhecidas ou imaginadas há
10 anos atrás. Por exemplo, quem pensaria que haveria uma empresa em nuvem (o Skype) que
ofereceria telefonia usando VoIP em larga escala e de graça ou a baixı́ssimo custo? Ou então, que
haveria serviços em nuvem para colaboração e gerenciamento de projetos (Basecamp), gestão de
relacionamento com o cliente (Salesforce), compartilhamento de arquivos de graça (Dropbox,
Box.net, etc.) ou para divulgação e compartilhamento de vı́deos por qualquer pessoa (YouTube)?
Portanto, computação em nuvem ampliou drasticamente os usos da rede Internet, fazendo dela a
maior e mais importante infraestrutura de comunicação geral do nosso planeta. Hoje em dia, são
poucas as pessoas ou empresas que conseguem sobreviver sem acesso a serviços em nuvem.
Todas essas aplicações, no entanto, também fizeram com que os serviços em nuvem fossem
cada vez mais identificados com a própria rede. Ou seja, que a própria Internet seja entendida
como uma rede de serviços em nuvem, e que o usuário final implicitamente assuma que a rede
possui capacidade não só de transmitir dados, como também de armazenar suas fotos, vı́deos,
documentos etc., processar informações, identificar a disponibilidade ou atividade de usuários
conhecidos (compartilhamento de informação de presença), coletar informações de interação
com os serviços, ajudar nas tomadas de decisão do dia-a-dia, e muitas outras funções.
O objetivo desse relatório não é nem o de descrever as tecnologias que fundamentam a
computação em nuvem e nem o de reapresentar os já bem conhecidos benefı́cios econômicos
do uso de serviços em nuvem, que podem ser consultados em [AFG+ 10]. Em vez disso, discutiremos computação em nuvem do ponto de vista de futuros cenários de uso — na perspectiva do
usuário —, dos impactos sobre as tecnologias de rede e dos desafios para a interoperabilidade de
serviços de nuvem e da criação de federações de nuvens, que nós vislumbramos como uma dos
futuros desenvolvimentos nessa área.
Relatório 3
2 / 27
1.1
Organização do documento
A próxima seção apresenta definições dos principais termos e conceitos relacionados à
computação em nuvem. A Seção 3 propõe alguns cenários futuros de utilização deste paradigma.
A Seção 4 apresenta projetos de pesquisa que abordam alguns tópicos em evidência relacionados à computação em nuvem. A Seção 5 discute os novos requisitos de infraestrutura de rede
para viabilizar um acesso integrado e ubı́quo a serviços em nuvem. Na Seção 6 são enumerados
alguns setores nos quais a computação em nuvem deverá ter uma grande importância em nosso
paı́s, oferecendo oportunidades de pesquisa e desenvolvimento. Finalmente, a Seção 7 apresenta
as considerações finais.
Relatório 3
3 / 27
2
Conceitos Básicos
Nesta seção são apresentados os conceitos fundamentais relativos à tecnologia de Computação
em Nuvem e abordados os principais aspectos dessas plataformas.
2.1
Definição e principais aspectos
A computação em nuvem pressupõe o uso de grandes repositórios de recursos virtualizados —
hardware, plataformas de desenvolvimento e/ou serviços —, facilmente acessı́veis através da
Internet, que são tipicamente explorados utilizando-se um modelo do tipo pagamento-por-uso,
no qual os fornecedores de infraestrutura oferecem garantias na forma de SLAs (service level
agreements) customizadas. Além disso, os recursos podem ser reconfigurados dinamicamente
de modo a se ajustar a cargas variadas, otimizando sua utilização [VRCL08]. Propriedades
importantes que ajudam a caracterizar a computação em nuvem são:
• A ilusão de recursos computacionais infinitos, disponibilizados sob demanda, eliminando
a necessidade do planejamento para a provisão de recursos a longo prazo;
• A eliminação da necessidade de se fazer grandes investimentos iniciais em infra-estrutura,
permitindo com que negócios sejam iniciados com um parque computacional pequeno e
que aumentem sua infra-estrutura a medida em que suas necessidades demandarem;
• A possibilidade da contratação de recursos computacionais a curto prazo, por exemplo,
processadores por hora, armazenagem por um dia. Uma vez que estes não são mais
necessários, capacidade de finalizar os contratos.
Geralmente o termo é utilizado tanto para definir aplicações que são acessadas pela Internet
como para descrever serviços de datacentros. No primeiro caso, as aplicações já conhecidas por
serem utilizadas nos desktops, como editores de texto, planilhas ou, até mesmo, editores de imagens, são acessadas através da internet, e todo o processamento e armazenamento de dados que
seriam realizados no próprio computador do usuário, agora ocorrem na nuvem. Já nos serviços
de datacentros, o termo se refere ao conjunto de recursos, como servidores, balanceadores de
carga, armazenamento, etc, que são comercializados por uso e cobrados de acordo com o tempo
de utilização. Este novo modelo de negócios trouxe uma série de benefı́cios técnicos e financeiros para consumidores de seus serviços tais como: rápido provisionamento, escalabilidade,
facilidade para lançamento de novos produtos/serviços por empresas de menor tamanho, entre
outros.
A capacidade de provisionar e liberar rapidamente grandes quantidades de recursos em tempo
de execução — a elasticidade — é, talvez, a caracterı́stica mais inovadora de computação na
nuvem. Esta propriedade difere sutilmente da escalabilidade, que corresponde à possibilidade de
permitir o aumento da capacidade de trabalho pela adição proporcional da quantidade de recursos. Tradicionalmente, a escalabilidade é projetada para garantir que o custo operacional possa
crescer linearmente de acordo com a carga de trabalho. Usualmente, não há preocupação com a
remoção de recursos nem a preocupação se os recursos são plenamente utilizados [SPC09a].
Relatório 3
4 / 27
2.2
Classificação
Provedores de Computação em Nuvem podem oferecer serviços em diferentes nı́veis de
abstração de recursos, simulando as funções realizadas por aplicações, sistemas operacionais
ou o hardware puro. Assim, a taxonomia mais comum é a que classifica serviços de computação
em nuvem em três possı́veis categorias:
Software como um Serviço (SaaS): Inspirado em um modelo de aluguel de software oferece
aplicações completas que executam em servidores de um datacentro e podem ser acessadas por
usuários finais, geralmente através de um cliente fino (thin client), geralmente um browser web
ou um aplicativo móvel. Exemplos tı́picos de SaaS são: Yahoo mail, Flickr, Gmail, Google Docs
e Google calendar. Nesse caso, o usuário não tem qualquer participação no projeto/criação da
aplicação, configuração de servidores, rede ou infra estutura de armazenamento.
Plataforma como um Serviço (PaaS): oferece um sistema operacional, runtimes para linguagens de programação e ferramentas para desenvolvimento, teste e deployment de software com
os quais usuários podem desenvolver as suas próprias aplicações. O provedor de PaaS efetua
updates, realiza patches e outras tarefas rotineiras de manutenção. Exemplos conhecidos são:
Microsoft Windows Azure e Google App Engine (GAE). Em PaaS, os usuários controlam o
desenho e implementação da aplicação mas não possuem controle sobre a infraestrutura de hardware. Em princı́pio, existem as seguintes variantes básicas de PaaS: plataformas para aplicações
sociais (Facebook API), para aplicações Web, e para aplicações empresariais (Force.com), e
ferramentas para aplicações de nuvem arbitrárias (Cloud IDEs).
Infraestrutura como um Serviço (IaaS): provê aos usuários acesso direto aos recursos de
processamento, armazenamento e outros recursos, e permite que que estes configurem os recursos e instalem sistemas operacionais de acordo com as suas necessidades especı́ficas. Geralmente, o IaaS funciona segundo o modelo “pay as you go” , isto é, paga-se apenas pelos recursos efetivamente usados. Exemplos de IaaS incluem Amazon Elastic Compute Cloud (EC2),
Rackspace e IBM Computing on Demand.
2.3
Nuvens públicas, privadas e hı́bridas
Quando a nuvem é fornecida para o público em geral e sob um contrato onde se paga pelo
montante utilizado, chamamos a mesma de nuvem pública. Os serviços comercializados são
geralmente chamados de computação utilitária (Utility Computing). Alguns exemplos são as
plataformas da Amazon, Google AppEngine e Microsoft Azure.
O termo nuvem privada é utilizado para designar um novo estilo de computação disponibilizado pelo provedor interno de TI, que se comporta de forma semelhante a um ambiente de
computação na nuvem externo. Neste modelo, capacidades de TI elásticas e escaláveis são oferecidas como serviços para usuários internos. A grande diferença entre a computação na nuvem
pública e privada reside nos serviços de acesso e nos serviços de controle. São muitos os requisitos tecnológicos necessários para que o modelo privado funcione de forma adequada. Entre
Relatório 3
5 / 27
eles estão tecnologias de virtualização, automação, padrões e interfaces, que permitam o acesso
compartilhado a servidores virtuais.
Na literatura encontramos, além dos modelos de nuvem publica e privada, outros modelos que
combinam os dois conceitos [SPC09b]. O modelo de computação hı́brida prevê uma utilização
mista, porém integrada, dos dois paradigmas, i.e., a combinação de serviços de computação na
nuvem externos com recursos internos. Esta colaboração deve ser realizada de forma coordenada,
de forma a garantir integração no nı́vel dos dados, processos e camadas de segurança [HSH09].
Outra alternativa para tratar as limitações tanto das nuvens públicas quanto das nuvens
provadas é a chamada nuvem privada virtual (Virtual Private Cloud - VPC). Este tipo de nuvem
consiste em uma plataforma em execução sobre uma nuvem privada pública, mas empregando
tecnologias de redes privadas virtuais (VPN), que permitem que os provedores do serviço projetem seus próprios mecanismos e topologia de segurança, como, por exemplo, as regras de firewall [ZCB10]. As VPC são essencialmente um projeto mais holı́stico, uma vez que não apenas
virtualizam servidores e aplicações, mas também a camada subjacente da rede. Para a maioria
das empresas, a tecnologia de VPC provê uma transição suave e integrada de uma infraestrutura
de serviços proprietária para uma infraestrutura de nuvem, graças a camada de rede virtualizada.
2.4
Tecnologias de Virtualização
Em ambientes de computação em nuvem, diversos provedores de recusos compartilham infraestrutura, distribuı́dos em diversos datacentros. Atualmente, diversas formas de virtualização
dos recursos computacionais são utilizadas. A virtualização de memória, por exemplo, permite
a um processo utilizar muito mais memória do que a máquina fı́sica oferece, além de dividir o
recurso com outras centenas de processos. A execução de múltiplas tarefas é outro exemplo,
pois um mesmo processador tem seu tempo de processamento dividido entre várias atividades,
e cada um dos processos não interfere nem percebe a presença dos demais. Ou ainda diversos
processadores podem formar um cluster e serem utilizados como somente um processador com
uma velocidade muito maior.
Virtualização é uma técnica que combina ou divide recursos computacionais para simular
um ou mais diferentes ambientes operacionais. A virtualização pode ser usada com diversas
finalidades, entre elas:
• Consolidação de servidores. É possı́vel consolidar a capacidade de processamento ociosa
de máquinas, assim utilizando menos máquinas para executar tarefas computacionais.
• Consolidação de aplicações. Pode ser necessário simular ambientes oepracionais antigos
em hardwares recentes para executar aplicações legadas sobre a infraestrutura disponı́vel.
• Sandboxing. Máquinas virtuais são ambientes isolados e seguros (sandboxes) para
execução de sistemas não confiáveis.
• Múltiplos ambientes de execução. É possı́vel controlar o QoS de múltiplos ambientes de
execução simultâneos, provendo os recursos necessários a cada um.
• Hardware virtual. A virtualização pode simular hardwares que não existem fı́sicamente,
como adaptadores ethernet, roteadores, entre outros.
Relatório 3
6 / 27
• Múltiplos sistemas operacionais simultâneos.
Múltiplos ambientes podem ser
necessários para executar diferentes aplicações em um mesmo contexto.
• Debugging. Pode ser útil para debugar mais facilmente sistemas complexos como sistemas operacionais ou drivers.
• Migração de software. É simples transferir sistemas entre máquinas virtuais.
• Appliances. Permite o empacotamento de aplicações junto aos sistemas operacionais relacionados.
• Testes e QA. Pode ajudar a produzir cenários que são dificilmente criados em máquinas
reais, facilitando assim testes e controle de qualidade.
Algumas ferramentas comuns de virtualização atualmente são VMWare, Xen, OpenVZ e Virtual Box.
2.5
Virtualizacão de Rede
Virtualização é um conceito que não se limita a desktops e servidores, mas pode ser estendida
também para elementos de rede. A Infra-estrutura de rede é composta de equipamentos que
podem ser vistos como máquinas com um sistema operacional especı́fico (runtime) dedicado à
execução de uma tarefa, como por exemplo, roteamento, encaminhamento de pacotes (switches)
ou firewalls.
A virtualização de equipamentos de interconexão de redes começa no suporte para
multiplexação que as próprias máquinas virtuais oferecem para as interfaces de rede. As interfaces de redes virtuais se comportam exatamente como interfaces fı́sicas, com endereços MAC
distintos, e suporte para unicast, multicast, broadcast e VLANs. Além disso, cada máquina virtual tem seu próprio endereço IP. Portanto, máquinas virtuais se comportam, sob o ponto de vista
de interconexão à rede, como sistemas reais, podendo ser interligadas a switches e roteadores
como se fossem máquinas fı́sicas distintas. Tipicamente, a placa de rede fı́sica é programada
para operar em modo promı́scuo e o driver de rede é modificado para fazer a multiplexão e
demultiplexação de seu uso pelas diferentes interfaces virtuais. Dispositivo virtuais de rede
(TUN/TAP) emulam, respectivamente, o comportamento da camada de rede e de enlace. O TAP
permite a criação de bridges enquanto o TUN executa roteamento. Assim, com o uso dos drivers
TUN/TAP, qualquer par de aplicações pode enviar e receber dados como se estivessem tratando
com um disposito externo. Essa é a base usada para prover uma comunição em rede virtual.
Os equipamentos de interconexão de rede, como switches e roteadores, não são máquinas
virtuais propriamente ditas, mas podem ser emulados de forma similar. Atualmente existem
três formas de prover essa emulação: a) oferecer, como parte da máquina virtual, suporte para
equipamentos de interconexão de rede virtuais (e.g. soluções adotadas pela VMware, Microsoft e
Citrix), b) prover máquinas dedicadas compatÌveis com os hypervisors mais comuns no mercado
(e.g. Vyatta), e c) construir um hardware especı́fico com suporte a virtualização de equipamentos
de interconexão (e.g. produtos da linha Catalyst da Cisco).
Relatório 3
7 / 27
Portanto, é possı́vel construir uma infra-estrutura de rede completa totalmente virtualizada. A
arquitetura exata e as opções de projeto, como em uma rede real, dependem, caso a caso, em
função de requisitos especı́ficos.
Relatório 3
8 / 27
3
Cenários
A seguir, são apresentados cenários futuros que ilustram nossa visão de como se desenvolverá o
emprego da tecnologia de computação em nuvem.
3.1
Uma visão de serviços providos transparentemente por federações de nuvens
A infraestrutura de nuvens em breve se confundirá com a própria rede. Ou seja, por um lado
os componentes, serviços e protocolos da Internet servirão de backbone para interação entre as
diferentes instâncias e tipos de nuvem, mas por outro lado, as nuvens se tornarão parte integrante
da internet, oferecendo serviços de dados, de processamento, de comunicação e de sensoriamento.
Essa infraestrutura emergente será composta de federações de nuvens de várias naturezas e
interclouds (veja Seção 4.1) e terá como principal caracterı́stica a seleção e interoperabilidade
transparentes entre as nuvens. Da perspectiva do usuário, as nuvens serão meramente os provedores de diferentes serviços na rede, e não haverá mais a necessidade do usuário acessar diretamente um determinado tipo, ou provedor, de nuvem. Em vez disso, seus aplicativos irão transparentemente interagir com uma ou mais dessas nuvens. Assim sendo, o usuário vislumbrará a
rede (e suas nuvens) como provedores de:
• Serviços de armazenamento e compartilhamento de dados;
• Serviços para processamento de dados;
• Serviços para matchmaking e manutenção de contatos sociais;
• Serviços para comunicação multi-modal;
• Repositório de aplicativos;
• Serviços para monitoramento e controle de máquinas, veı́culos e imóveis privados e coletivos/públicos;
• Serviços para monitoramento e diagnóstico automatizado de pessoas e do meio ambiente.
• Meta-serviços para a descoberta de serviços de provedores de nuvem, negociação automatizada do SLA;
• Meta-serviços para a criação de workflows de serviços em nuvem heterogêneos.
Para tal, diferentes tipos de nuvens (privadas, públicas e hı́bridas) serão criadas e interconectadas, e as principais fontes de dados e informações serão os próprios usuários (seus perfis,
parâmetros de QoS, aplicativos e conteúdos, em diversas mı́dias), e sensores em seres vivos, embutidos em aparelhos, veı́culos ou robôs, provenientes de radares e satélites, e/ou espalhados no
meio ambiente. Já outras nuvens terão funções especı́ficas de replicação (de dados ou processamento), de roteamento de fluxos de dados , ou de transformação e processamento de agregações
de dados.
Relatório 3
9 / 27
3.2
Um cenário corporativo
Pedro é Engenheiro de Petróleo da Petrobrás e está viajando para uma reunião da diretoria em
Brası́lia onde irá apresentar um novo método algorı́tmico para estimar os custos da operação
nas camadas pré-sal, que desenvolveu nos últimos seis meses. Mas após chegar ao aeroporto,
já pronto para embarcar para Brası́lia, é informado por um colega do CENPES que alguns dos
parâmetros geológicos possuem um comportamento diferente do que havia sido assumido. Assim, sabe que precisa ajustar o seu programa e refazer as simulações sobre a base de dados
geofı́sicos que estão na nuvem privada da empresa, a fim de poder apresentar estimativas corretas na reunião que terá em algumas horas. Felizmente, o seu smartphone executa um aplicativo
móvel que permite modificar, parametrizar e executar o seu sistema de qualquer lugar. Através
desse aplicativo Pedro não só consegue parar a simulação na nuvem da empresa que havia iniciado antes de sair de casa, como também modificar os parâmetros do algoritmo, recompilar e
iniciar a simulação novamente. O aplicativo móvel também permite visualizar, em tempo real,
os gráficos que estão sendo gerados na simulação remota.
Para ter certeza que a nova versão do seu sistema está correta, resolve também executar a
simulação em uma outra base de dados geofı́sicos de um projeto com a universidade, para os
quais conhece a estimativa de custo. Esta base de dados está armazenada em outra nuvem pública
e codificada em outro formato, diferente daquele esperado pelo seu programa de simulação. Felizmente, Pedro sabe que existem serviços de nuvem públicos para a transformação de formatos
de dados geofı́sicos. Assim, em seu aplicativo apenas insere o nome da base de dados geofı́sicos
da universidade, indica o formato desejado dos dados, e direciona o volume de dados transformados para o seu repositório na nuvem privada da empresa. Depois agenda o inı́cio da simulação
sobre esses dados para quando todos os dados tiverem chegado em seu repositório. Como agora
é a hora de embarcar para Brası́lia, desativa o acompanhamento on-line da primeira simulação, e
configura o sistema simulador para que envie os relatórios finais (com os gráficos) das simulações
para seu endereço GMail, e a transferência dos resultados numéricos para o seu notebook, assim
que este se reconectar a alguma rede 3G ou Wifi.
Após aterrisar em Brası́lia e ligar o seu smartphone, durante a viagem de táxi confere os
relatórios em seu e-mail, e satisfeito com os resultados, sabe que poderá mostrar os dados detalhados sobre as simulações durante a reunião , e assim convencer a Diretoria de que o seu método
de estimativa é confiável. Ao final da tarde, após a longa reunião, Pedro é convidado pelo Diretor
de Exploração para um jantar na Brasserie Alice, onde é informado de sua promoção na empresa.
3.3
Um cenário de monitoramento do meio ambiente
Após a tragédia do deslizamento de encostas ocorrido na Região Serrana do Rio de Janeiro
em 2011, várias áreas devastadas pelas chuvas foram transformadas em áreas de preservação
ambiental e parcialmente reflorestadas. A fim de acompanhar a recuperação desses ecossistemas, engenheiros florestais, biólogos e ambientalistas desenvolveram — juntamente com engenheiros elétricos e de telecomunicação — um sistema de redes de sensores, com tecnologia de
comunicação 3G, para coleta continuada de dados pluviométricos, do solo, da flora e fauna destas
áreas de recuperação. Os dados brutos coletados pela rede de sensores de cada região é continuamente armazenada uma nuvem gerenciada pela Secretaria do Meio ambiente da prefeitura local.
Relatório 3
10 / 27
Porém, todos os dados também são acessı́veis para o público, e em especial para a Defesa Civil e
especialistas em Meio Ambiente. Estes, em uma parceria com pesquisadores em Departamentos
de Matemática Aplicada e de Ciência da Computação de diversas Universidades, desenvolveram
uma série de aplicativos em nuvem, para o processamento desse grande volume de dados, incluindo simulações e predições de desenvolvimento, todas disponı́veis em repositórios públicos
de aplicativos. Assim, agora é possı́vel monitorar e analisar em detalhe o desenvolvimento da
fauna e flora de cada área, recomendar medidas de proteção adicionais, estimar melhor os riscos
devido a mudanças climáticas e fazer análises comparativas entre áreas em regiões similares,
mas em diferentes estágios de recuperação.
Como tanto os dados como os aplicativos são públicos, eles passaram a ser usados não só pelo
poder público, como também pela iniciativa privada e por pessoas fı́sicas para conhecer melhor
uma região e por exemplo, estimar o valor de terrenos na vizinhança das áreas em recuperação.
Uma dessas aplicações inclusive é utilizável a partir de smartphones: ela e indica o grau de risco
a qual uma pessoa próxima a área está sujeita dependendo de sua localização geográfica, e da
umidade relativa do ar e da pressão atmosférica na região.
3.4
Um cenário de saúde
Em várias cidades brasileiras a população vem sendo acometida por uma nova epidemia, com
alto ı́ndice de contágio entre humanos. A virose apresenta sintomas um pouco diferentes e requer tratamentos diferentes para as pessoas contagiadas, em função de suas infecções anteriores.
Felizmente, há alguns anos, a maioria dos hospitais do paı́s, as secretarias de saúde pública e os
seguros de saúde optaram por usar formatos de dados abertos e disponibilizar serviços de consulta e atualização de dados de pacientes na forma de serviços em nuvem. Assim, sempre que
um novo paciente é internado com suspeita de estar infectado, o hospital é capaz de realizar uma
consulta abrangente em todos os registros de dados de saúde do paı́s — gerenciados em vários
serviços em nuvem —, para rapidamente obter o histórico completo de infecções e tratamentos
prévios daquele paciente e assim ajudar na decisão sobre o tratamento mais adequado.
Como primeiro passo dessa consulta, é feita uma busca por todos os serviços de dados de
saúde em nuvem que tenham registros referentes aquele paciente. A seguir, é executado um
protocolo de autenticação e troca de credenciais mútua, bem como a configuração do grau de
segurança, privacidade e direitos de armazenamento dos dados consultados. Em seguida, os
dados consultados são transformados para o formato desejado pelo hospital requisitante através
de outro serviço de transformação de dados. Assim que os médicos do hospital identificam a
variante do vı́rus no paciente — e decidem sobre o melhor tratamento —, o serviço em nuvem do
hospital manda automaticamente uma notificação sobre o novo caso para a nuvem da secretaria
de saúde local, informando alguns dados, como o bairro de residência e de trabalho do paciente,
sua idade, etc, mas omitindo outros dados, como o nome, que não são relevantes do ponto de
vista estatı́stico. Isso permite que esses dados sejem publicados como dados governamentais
abertos, ficando disponı́veis para consulta pública, de tal forma que, por exemplo, um portal
jornalı́stico é capaz de acessar essas informações e divulgar para seus leitores o estado atual da
epidemia. Além disso, de tempos em tempos as secretarias de saúde publica dos estados então
agregam os seus dados de pacientes da epidemia e acionam serviços de processamento em nuvem
para tentar identificar correlações estatı́sticas entre os casos detectados e condições climáticas,
Relatório 3
11 / 27
condições sócio-econômicas do local e do paciente, históricos de doenças pré-existentes, etc.
Essas estatı́sticas também são usadas para direcionar melhor toda a estratégia de saúde pública
dos governos federal, estaduais e municipais, orientando o planejamento e a aquisição os recursos
de medicamentos e vacinas para os diferentes órgãos envolvidos.
Relatório 3
12 / 27
4
Pesquisas Relacionadas
Nessa seção são discutidas as abordagens dos principais projetos de pesquisa recentes envolvendo aspectos relacionados à computação em nuvem.
4.1
Padrões de Interoperabilidade de nuvens.
Permitir a interoperabilidade entre sistemas é hoje um dos principais desafios para a computação
em nuvem. Um cenário de interoperabilidade pode ocorrer, por exemplo, quando um provedor de
computação em nuvem está executando com pouca capacidade de armazenamento ou quer oferecer armazenamento para um cliente em uma região geográfica especı́fica na qual esse provedor
não dispõe de um datacentro. Em qualquer dessas situações, o provedor de nuvem teria que realizar a subcontratação de armazenamento de outro prestador de serviço, e, para isso, precisaria
encontrar outra nuvem pronta, disposta e capaz de aceitar uma transação de subcontratação de
armazenamento. Em geral, os sistemas teriam que ser capazes de estabelecer uma comunicação
confiável, com a prévia troca de assinaturas e/ou informações necessárias relacionadas ao cliente,
e, finalmente, realizar o transferência dos dados armazenados.
Entretanto, os numerosos fornecedores de computação em nuvem existentes introduziram seus
próprios modelos e serviços, tornando o cenário dos sistemas de nuvem diferenciado. Por exemplo, provedores de nuvem oferecem diferentes serviços de armazenamento de dados com seus
padrões especı́ficos, como é o caso do S3 da Amazon [Ama08] e o GFS da Google [GGL03].
Assim como nos primórdios da indústria de hardware de computador, quando cada fornecedor fabricava e comercializava a sua própria versão (incompatı́vel) de equipamentos, as nuvens
são diversas e dependentes do fornecedor. Embora grandes esforços estejam sendo feitos para
padronizar aspectos técnicos importantes das nuvens — particularmente pelo Instituto Americano de Padrões e Tecnologia (NIST) —, a consolidação e padronização ainda estão longe da
realidade. A seguir são discutidas duas abordagens distintas para essa questão, a federação de
nuvens e o intercloud.
4.1.1
Federação de nuvens computacionais
Com a finalidade de oferecer suporte a um grande número de consumidores de serviços em
todo o mundo, os provedores de infraestrutura de computacção em nuvem vem instalando datacentros em diversas localizações geográficas para prover redundância e garantir a segurança
dos dados em caso de falhas de alguma instalação. No entanto, ao mesmo tempo em que os
clientes de computação em nuvem não são capazes de expressar sua preferência sobre o local
onde querem que seus serviços sejam hospedados, os provedores do serviço são incapazes de
prever a distribuição geográfica dos usuários que consumirão seus serviços. Dessa forma, os
provedores de computação em nuvem podem não ser capazes de atender às expectativas de QoS
dos consumidores de seus serviços provenientes de várias localizações geográficas.
Para superar esse problema, alguns projetos propõem a criação de uma federação de ambientes de computação em nuvem para facilitar o provisionamento de serviços à medida em que
são necessários, de forma oportunista e escalável, atendendo os compromissos de QoS de forma
consistente, sob condições de carga de trabalho e de rede variáveis [BRC10] [RBL+ 09]. O obRelatório 3
13 / 27
jetivo geral é criar um ambiente que permita aos prestadores de serviços de computação nuvem:
(i) expandir ou redimensionar dinamicamente a sua capacidade de provisionamento com base
em picos repentinos na demanda de carga de trabalho alocando recursos computacionais e de armazenamento disponı́veis em outros prestadores de serviços; (ii) funcionar como peças de uma
federação para fornecimento de recursos com base no mercado, onde os fornecedores de serviços
possam hospedar seus serviços com base em padrões e acordos (Service Level Agreements) regidos por preços do mercado competitivo; e (iii) prover os serviços solicitados de forma confiável,
com base em tecnologias de virtualização, assegurando elevados padrões de QoS e minimizar os
custos do serviço.
A Figura 1 ilustra a arquitetura proposta por [BRC10] para estabelecer a interoperabilidade
entre nuvens. Os principais serviços que compõem essa arquitetura são os coordenadores de
nuvens (cloud coordinators) e os negociadores de nuvens (cloud brokers). Um coordenador de
nuvem é responsável pelo gerenciamento da nuvem de um provedor em um domı́nio especı́fico,
e pela filiação desta nuvem à federação global, que deve ser norteada pelas regras de mercado
e seguir protocolos de negociação. Ele oferece um ambiente de programação, gerenciamento e
implementação para aplicações em uma federação de nuvens. Um negociador de nuvem age em
nome dos usuários para identificar os prestadores de serviços de nuvem adequados e negocia com
os coordenadores dessas nuvens para realizar uma alocação de recursos que atenda aos requisitos
de QoS dos usuários.
Figure 1: Seleção e coordenação de utilização integrada de diferentes serviços em nuvem.
4.1.2
Intercloud
O termo intercloud foi introduzido pela Cisco e se refere a uma malha de nuvens interligadas
para oferecer um ambiente universal de computação em nuvem com base em padrões abertos.
Como o nome sugere, é similar ao modelo da Internet, onde tudo é federado em uma infraestrutura ubı́qua de múltiplos provedores. Em [BLS+ 09], os autores discutem as principais questões
relacionadas a mecanismos, padrões (de máquinas virtuais e dados) e protocolos para viabilizar a
interoperabiliade entre nuvens heterogêneas. Os autores chamam esses mecanismos e protocolos
Relatório 3
14 / 27
de “Intercloud Root e Intercloud Protocols”, respectivamente.
A principal diferença entre o intercloud e uma federação de nuvens é que o intercloud é
baseado em padrões futuros e interfaces abertas, enquanto a federação utiliza mecanismos especı́ficos de cada fornecedor de serviços. Na visão do intercloud, todas as nuvens deverão
ter um entendimento comum de como as aplicações devem ser executadas. Futuramente, as
solicitações de serviços submetidas a uma nuvem incluirão informações suficientes — sobre
recursos, segurança, nı́vel de serviço, localização geográfica, etc — para que a nuvem seja capaz de processar o pedido e colocar em execução as aplicações necessárias. Isso irá criar o
verdadeiro modelo de utilidade, no qual todos os requisitos são cumpridos de acordo com a
descrição e uma aplicação pode executar em qualquer nuvem como apresentada, recebendo os
recursos necessários para suportá-la.
É provável que o intercloud se desenvolva naturalmente como resultado da contı́nua inovação
em todo o ecossistema da nuvem. Federação é um dos pré-requisitos para esse objetivo, proporcionando melhorias contı́nuas na interoperabilidade de nuvens com o objetivo de dar as empresas
muitas novas opções para escolher. A capacidade de federar a migração da identidade, do acesso
e do conjunto de dados também é um dos requisitos fundamentais para o intercloud. Esta interoperabilidade a nı́vel de infraestrutura deve funcionar de forma transparente, a fim de lançar
aplicações no ambiente de nuvem e gerenciar a integração.
Os benefı́cios do intercloud já se tornaram uma realidade prática de várias formas. Uma significativa parte da visão intercloud pode ser conseguida com uma forte tecnologia de federação
que ofereça uma interconexão entre diferentes nuvens e os datacentros internos. Usuários e suas
empresas podem evitar exclusividade e executar suas tarefas no ambiente que melhor atenda
às suas necessidades, com base no custo, desempenho, segurança, conformidade, localização
geográfica, latência, etc. Em suma, algumas das metas mais importantes do intercloud podem
ser alcançadas usando a tecnologia que já está chegando ao mercado. O intercloud é suportado
pelo Open Cloud Standards Incubator (OCSI), criado pelo Distributed Management Task Force
(DMTF), cujo conselho inclui representantes de empresas como a VMware, IBM, Microsoft,
Citrix e HP, e o Fórum Global de Tecnologia Inter-Cloud (GICTF1 ), que inclui representantes da
NTT, KDDI, NEC, Hitachi, Fujitsu, Toshiba, IBM, Sun, Oracle, Cisco, RICOH, CTC, etc.
4.2
Mapeamento Flexı́vel de Serviços em Recursos
O aumento dos custos operacionais e da demanda de energia dos sistemas compostos, torna fundamental maximizar a eficiência, rentabilidade e utilização desses sistemas [QKP+ 09]. O processo de mapear serviços em recursos, isto é, alocar os recursos computacionais para a execução
dos serviços solicitados, é uma tarefa complexa, pois exige que o sistema determine a melhor
configuração de software e hardware — tamanho do sistema e conjunto de recursos — para assegurar que as metas de QoS dos serviços sejam atingidas, ao mesmo tempo em que a eficiência
e utilização do sistema são maximizadas. Esse processo é complicado ainda mais pelo comportamento incerto tanto dos recursos quanto dos serviços. Conseqüentemente, há uma necessidade
imediata para elaboração de modelos de desempenho e técnicas de mapeamento de serviços
baseados no mercado que assegurem a utilização eficiente do sistema, sem causar prejuı́zos às
1
http://www.gictf.jp/index e.html
Relatório 3
15 / 27
metas de QoS.
O Centro de Computação Autonômica da NSF propôs uma abordagem autônomica fim-afim para provisionamento da carga de trabalho em nuvens. Os pesquisadores identificaram o
provisionamento de máquinas virtuais como a parte do problema que apresenta maiores desafios
para esses ambientes, devido a uma mistura muito variada e dinâmica de tipos de aplicações e da
demanda de carga de trabalho. Para lidar com a subutilização de recursos fı́sicos e o aumento de
custo resultante do provisionamento insuficiente de recursos, os pesquisadores propuseram o uso
de uma abordagem de agregação de recursos online robusta e descentralizada, para conseguir o
provisionamento de máquinas virtuais. Eles empregaram também uma abordagem baseada em
modelos para estimar o tempo de serviço a partir de seu provisionamento, para lidar com as
exigências de recursos imprecisas fornecidas pelos usuários do serviço.
4.3
Migração de Máquinas Virtuais
A virtualização pode proporcionar benefı́cios ainda mais significativos para os sistemas de
computação em nuvem, se for possı́vel efetuar a migração de máquinas virtuais para balancear
a carga através de um datacentro. Além disso, a migração de máquinas virtuais permite o provisionamento de recursos robusto e altamente responsivo. A migração de máquinas virtuais
evoluiu a partir de técnicas de migração de processos. Clark et al. [OSSN02] analisaram os
benefı́cios da migração ao vivo de máquinas virtuais e apontaram que a migração de um sistema
operacional inteiro e todas as suas aplicações como uma única unidade permite evitar muitas
das dificuldades enfrentadas pelas abordagens de migração em nı́vel de processo. O principal
benefı́cio da migração de máquinas virtuais é evitar pontos de concentração de carga. No entanto, isso não é simples. Atualmente, as operações de detectar esses pontos de concentração e
iniciar a migração não acontecem com a agilidade necessária para responder às mudanças súbitas
de carga de trabalho. Além disso, as informações contidas na memória sobre o estado do processamento devem ser transferidas de forma consistente e eficiente, levando em consideração os
recursos para aplicativos e servidores fı́sicos de forma integrada.
4.4
Gerenciamento e análise de tráfego
Análise de tráfego de dados é importante para os datacentros atuais. Por exemplo, muitas
aplicações web dependem de análise de dados de tráfego para otimizar a experiência dos clientes.
Os operadores de rede também precisam saber como o tráfego flui através da rede, a fim de tomar
diversas decisões relativas ao gerenciamento e planejamento da rede. Entretanto, existem vários
desafios para que os métodos de medição e análise de tráfego de redes utilizados nos provedores
de serviço de Internet (ISPs) possam ser estendidos para datacentros. Em primeiro lugar, a densidade de links é muito maior do que em ISPs ou redes corporativas. Em segundo lugar, a maioria
dos métodos existentes podem calcular as matrizes de tráfego entre algumas centenas de servidores finais, mas mesmo um datacentro modular pode ter milhares de servidores. Finalmente, os
métodos existentes geralmente assumem alguns padrões de fluxo que são razoáveis em Internet
e redes corporativas, mas os aplicativos implantados em datacentros, tais como o MapReduce,
alteram significativamente o padrão de tráfego. Além disso, no uso que as aplicações fazem
da rede e dos recursos computacionais e de armazenamento, há maior acoplamento do que é
Relatório 3
16 / 27
visto em outras configurações. Atualmente, há poucos trabalhos de pesquisa sobre a medição e
análise de dados de tráfego de datacentros. Destaca-se o trabalho de Greenberg et al. [GHJ+ 09],
que relata as caracterı́sticas de tráfego do datacentro com relação às dimensões do fluxo e fluxos
concorrentes, e usa essas informações para orientar o projeto de infraestrutura de rede.
4.5
Simulação de ambientes de nuvem
Para se obter o melhor desempenho de sistemas de computação em nuvem é importante selecionar a polı́tica de provisionamento de recursos mais adequada. Utilizando-se modelos
de aplicação de carga de trabalho e modelos de desempenho de recursos, é possı́vel simular
polı́ticas de provisionamento e verificar seu comportamento. Entretanto, ao longo da simulação
é necessário ser capaz de variar parâmetros relativos às configurações do usuário e aos requisitos
do sistema de forma controlada, que possa ser reproduzida, o que é difı́cil de se conseguir. Para
superar esse desafio, foi proposto o framework CloudSim [CRB+ 11][BRCB10], que consiste
em um kit de ferramentas de simulação extensı́vel que permite a modelagem e simulação de sistemas de computação em nuvem e ambientes de provisionamento de aplicações. O framework
suporta tanto a modelagem do comportamento dos componentes de um sistema de computação
em nuvem, como datacentros, máquinas virtuais e as polı́ticas de provisionamento de recursos.
No nı́vel mais inferior, o CloudSim executa o engine de simulação, responsável pelas
operações de criação, gerenciamento e exclusão das entidades simuladas. Acima do engine o
framework disponibiliza vários módulos. No módulo de rede, são realizados o mapeamento
de enlaces entre datacentros e clientes e o cálculo de atraso das mensagens trocadas entre os
mesmos. O módulo de recursos da nuvem realiza a manipulação e coordenação dos eventos da
simulação, além de gerenciar os dados relativos à infraestrutura oferecida por meio dos datacenters simulados. O módulo de serviços da nuvem modela as ações de provimento de máquinas
virtuais e alocação de recursos como memória de sistema, processamento, armazenamento de
dados e largura de banda de comunicação. O framework provê também um módulo de serviços
das maquinas virtuais, onde são realizadas a gerência das mesmas e a execução das tarefas enviadas pelos clientes, denominadas cloudlets. Por fim, a comunicação das entidades que compõem
a nuvem com os clientes que utilizam seus recursos é feita por meio do módulo de interface,
no qual máquinas virtuais e cloudlets podem ser manipuladas. Na camada mais superior está o
código que o usuário do framework deve implementar para a criação dos ambientes de simulação,
incluindo o módulo da polı́tica de escalonamento, polı́ticas de negociação (para escolha do datacentro mais adequado) e as polı́ticas de alocação de máquinas virtuais em datacentros.
4.6
Dispositivos Móveis como interfaces para acesso à nuvem
Dispositivos móveis se tornarão a interface universal para serviços online e aplicações da nuvem. Entretanto, atualmente o uso desses dispositivos está limitado a duas configurações: as
aplicações são executadas no smartphone ou são remotamente acessadas pelo telefone. Essas
duas opções não permitem uma interação com serviços customizada e flexı́vel, limitando também
as possibilidades para otimização da performance. Pesquisadores do grupo de sistemas do Instituto Federal de Tecnologia de Zurique propõem uma plataforma de middleware com a capacidade de distribuir automaticamente as diferentes camadas de uma aplicação entre o smartphone e
Relatório 3
17 / 27
os servidores (na nuvem), otimizando uma variedade de funções objetivo (latência, dados transferidos, custo, etc.) [GRJ+ 09]. Essa abordagem é baseada em tecnologias já disponı́veis para o
gerenciamento de módulos distribuı́dos, não necessitando de novas infraestruturas. São discutidos tópicos como a modelagem de aplicações como um grafo de consumo, e como processar
esses grafos com uma série de novos algoritmos para encontrar a distribuição ótima dos módulos
da aplicação, que é então implantada dinamicamente no dispositivo móvel de forma eficiente e
transparente.
Relatório 3
18 / 27
5
Requisitos sobre a Arquitetura de Redes
Apesar de todas as vantagens econômicas de computação em nuvem [Lea09], ela também traz
algumas potenciais limitações e demandas especı́ficas relacionadas com a infraestrutura de rede.
Estas podem ser separadas, por um lado, em questões relacionadas à rede de acesso — a rede
através da qual o usuário acessa os datacentros —, e, por outro lado, em questões que envolvem
a rede de interconexão entre os datacentros.
5.1
Redes de Acesso
As redes de acesso são o meio através do qual os usuários efetivamente têm acesso aos recursos
dos data centros. A proliferação do uso de Computação em nuvem vai impor novos parâmetros
de qualidade a tais redes, e a capacidade de satisfazer essas novas exigências é que determinará
o grau de usabilidade geral da computação em nuvem. Nos próximos parágrafos, discutiremos
os parâmetros de qualidade relacionados às redes de acesso.
Largura de banda: clientes com novas aplicações em nuvem precisam ter meios para fazer o
envio de seus dados, que em muitos casos têm o volume de vários terabytes, para os datacentros.
No entanto, as redes de acesso atuais não dispõem de largura de banda suficiente para tal — a
transferência de um terabyte pode demorar vários dias —, fazendo com que os clientes sejam
obrigados a copiar os dados para um disco rı́gido e enviar este por correio ao provedor da nuvem.
Mas além da transferência inicial dos dados para a nuvem, tipicamente o volume de tráfego na
rede de acesso aumenta também após o inı́cio da operação da aplicação na nuvem, devido à transferência dos resultados para o usuário e da transferêcia de novos dados de entrada e parâmetros
para o processamento. Portanto, faz-se necessário um aumento significativo da largura de banda
nas redes de acesso, sobretudo das redes de acesso sem fio, dado que cada vez mais, usuários
precisarão acessar serviços em nuvens de seus dispositivos móveis.
Confiabilidade: a medida que dados do usuário e o seu processamento vão sendo transferidos
para a nuvem, aumenta a dependência sobre o funcionamento correto das redes de acesso. De
nada adianta ter poderoso serviços na nuvem, se o acesso a eles está bloqueado por problemas
na rede de acesso. Vários serviços nas nuvens, como o Gmail, o Salesforce.com o Amazon S3
e o Amazon EC2, já tiveram algumas interrupções de serviço com grandes prejuı́zos, devido a
falhas nas redes de acesso. É de se esperar que um uso cada vez maior de computação em nuvem
faça com que as próprias empresas provedoras aumentem as exigências sobre a qualidade e a
disponibilidade dessas redes junto as operadoras.
Qualidade de Serviço e Gerência de rede: clientes deverão cada vez mais demandar acordos de nı́vel de serviço, garantindo-lhes determinados nı́veis mı́nimos de QoS. Estas demandas
devem ser especı́ficas para cada aplicação. Por exemplo, serviços financeiros provavelmente demandam transações seguras com latências da ordem de microsegundos, enquanto que serviços de
redes sociais demandarão um acesso rápido (e sem interrupções) a conteúdos em várias mı́dias.
Uma maneira de melhorar a qualidade do serviço é através de múltiplas conexões entre o cliente
o datacentro, o que atualmente ainda esbarra nas limitações do Border Gateway Protocol (BGP),
Relatório 3
19 / 27
que é incapaz gerenciar e fazer o balanceamento de carga para várias rotas para um mesmo fluxo
de pacotes entre dois domı́nios. Portanto, precisa-se de uma nova arquitetura de rede que aumente a performance de rede através da possibilidade de direcionar o tráfego de pacotes através
de diferentes caminhos e de se recuperar de forma mais ágil de falhas ou de congestionamentos
em alguns pontos da rede.
Ubiquidade: a ubiquidade será uma demanda cada vez maior de usuários de serviços em nuvem. Suporte à ubiquidade diz respeito tanto ao acesso às nuvens através de redes sem fio, que
naturalmente são mais vulneráveis a desconexões e variações na latência e largura de banda,
como também a alcançabilidade do usuário quando ele está em uma rede protegida por Firewall/NAT. Isso é um problema principalmente para uma implementação eficiente de serviços de
nuvem do tipo “push”, (i.e., com notificações assı́ncronas para o usuário), como é o caso do
Apple Push Notification Service, aplicações “tickers” de notı́cias, da bolsa de valores, ou webchat. Para garantir uma total ubiquidade do acesso aos datacentros, ainda serão necessários
desenvolvimentos em tecnologias de redes sem fio de alta disponibilidade, e protocolos com
multi-homing.
Privacidade e Segurança: computação em nuvem naturalmente requer que os dados
crı́ticos/sensı́veis, que tradicionalmente permaneciam nos computadores das empresas ou pessoas, sejam agora transferidos através das redes de acesso até os data centros, aumentando assim
a sua vulnerabilidade a ataques de interceptação, cópia ou adulteracão. Portanto, é necessário
que redes de acesso dêem aos usuários formas de controlar a maneira com a qual os seus dados
serão transferidos para/dos datacentros. Em particular, é necessário projetar arquiteturas e protocolos de rede que permitam determinar rotas exatas para cada fluxo de dados, e que possam ser
audı́veis e verificáveis posteriormente pelos clientes. Além disso, serão necessários avanços em
virtualização de firewalls e sistemas de detecção de intrusos.
5.2
Interconexão entre os datacentros
O advento de Computação em nuvem vai modificar também as demandas sobre a configuração
de datacentros, a capacidade para interoperabilidade e as conexões de rede que interconectarão os
mesmos. A seguir, discutiremos os principais parâmetros de qualidade dessas interconexões, que
serão fundamentais para possibilitar serviços de nuvens agregadas, meta-serviços e federações
de nuvens.
Largura de banda e linhas dedicadas: a elasticidade na provisão de recursos requer que
provedores de computação em nuvem sejam capazes de mover grandes quantidades de dados
muito rapidamente de um datacentro para outro, possivelmente localizados em diferentes regiões
ou até continentes. Por isso, será necessário que todos os datacentros de uma provedora, ou de
provedores federados, estejam interligados através de conexões de alta capacidade, possivelmente através de linhas dedicadas, ou usando tecnologias de rede capazes de garantir nı́veis de
qualidade bem superiores a qualidade de melhor esforço garantida pelos protocolos da Internet
atual. Por isso, vemos que cada vez mais recursos deverão ser investidos na aquisição de novas conexões dedicadas (por exemplo, a Google já é principal proprietária da maioria dos cabos
Relatório 3
20 / 27
sub-oceânicos entre os EUA e a Europa), e no desenvolvimento de tecnologia de virtualização
de elementos de rede com garantias de QoS.
Confiabilidade: assim como há uma crescente demanda por redundância nas redes de acesso,
também haverá grande demanda por alto grau de redundância em termos do encaminhamento
e controle de de fluxo nas conexões entre servidores, possibilitando a transferência eficiente de
grandes volumes de dados para aplicações paralelas intra- e inter- datacentros. A necessidade
de transferência de dados com a altas taxas e baixa latência, escalável e tolerante a falha, farão
com que o encaminhamento de fluxos/pacotes (para o próximo hop) nas rotas inter-datacentros
não seja mais realizado por roteadores tradicionais, mas sim por roteadores paralelos, possivelmente com centenas de interfaces de rede, processadores de controle e buffers paralelos. Esses
roteadores paralelos serão componentes complexos, cuja configuração e atualização poderá demandar novas técnicas de gerenciamento de rede.
Segurança e Privacidade: da mesma forma como a virtualização de recursos garante o isolamento de dados e do processamento nos datacentros, as tecnologias de redes de interconexão
entre os datacentros também precisarão garantir que fluxos paralelos não interfiram, não possam ser desviados, acessados ou modificados. Além disso, os clientes de datacentros exigirão o
cumprimento de seus Service Level Agreements em relação à segurança de seus dados, independente das necessidade ou não de transferência de seus dados entre os datacentros. Ou seja, os
provedores de computação em nuvem não poderão transferir a culpa por eventuais vazamentos
de dados para operadoras de cabos ou de telefonia de longa distância. Além disso, a própria
informação sobre o volume e a natureza de suas transações também deverá ser mantida em sigilo
pelas operadoras de computação em nuvem a fim de evitar suspeitas sobre ações estratégicas
de uma empresa cliente. Ou seja, deverá haver restrições bem definidas de quais dados sobre
operação de dados e processamentos podem ser coletados e como podem ser usados pela operadora de uma nuvem.
Politicas de Roteamento: os protocolos da Internet atual não dispõem de mecanismos para
identificar diretamente a fonte ou o caminho especı́fico percorrido por um fluxo de pacotes. No
entanto, a maioria dos provedores de computação em nuvem precisam ter um maior controle
sobre as rotas usadas pelo tráfego de dados entre os seus datacentros. Consequentemente, vários
usam o MultiProtocol Label Switching (MPLS) ou outro protocolo equivalente para obter mais
controle sobre o caminho especı́fico a ser usado pelo fluxo de dados. Tais mecanismos de controle são essenciais para garantir que os fluxos de dados entre os datacentros mantenham os nı́veis
de QoS desejados, de segurança de rede e de privacidade dos dados se seus clientes.
Padronização: para diversas futuras aplicações em nuvem é de se esperar que datacentros e
serviços em nuvem de várias empresas provedoras precisem interagir para alcançar os resultados ou o desempenho exigidos pela aplicação. Para que isso seja possı́vel, é necessário que a
indústria defina padrões para a troca de dados, a seleção de serviços/provedores, a coordenação
de tarefas, a alocação de recursos intra-nuvem e a composição de serviços de vários provedores.
Relatório 3
21 / 27
Inclusive, pode-se imaginar futuros padrões de protocolos para negociação entre clientes com demandas especı́ficas e provedores de serviços, intermediada por outros serviços em nuvem. Além
de aplicações poderem ser viabilizadas através da interação entre serviços de múltiplos provedores, poderá eventualmente ser necessário também integrar e coordenar diversas aplicações (de
diferentes provedores). Para permitir tal coordenação inter-aplicações também serão necessários
padrões que regulem a interação e a coordenação entre essas aplicações. A interoperabilidade
nesses dois nı́veis (inter-serviços e inter-aplicações) portanto demandará uma série de novos protocolos para sinalização e controle exclusivamente relacionados a computação em nuvem, e que
certamente tarão como consequência uma sobrecarga (overhead) no tráfego de rede.
Relatório 3
22 / 27
6
Situação, Oportunidades e Desafios no Brasil
A discussão sobre o cenário futuro para a computação em nuvem e a análise dos projetos relacionados permitiram a identificação de desafios que são apresentados nesta seção.
Recente pesquisa do IDC Brasil2 apontou que do total de 400 mil empresas de grande porte
e aproximadamente 8 milhões de pequenas empresas, menos de 5% utilizaram, até 2010, algum
serviço de computação em nuvem. No entanto, a medida em que cada vez mais empresários e
diretores forem percebendo as vantagens dos altos ı́ndices de segurança no armazenamento de
dados, da flexibilidade de alocação de recursos computacionais e da economia proporcionado por
computação em nuvem, o volume de empresas que o utilizarão no Brasil deverá crescer substancialmente. De fato, cada vez mais empresas estão se reorganizando para um formato baseado
em serviços e avaliando o impacto da exposição pública de seus serviços para o consumo externo, ou mesmo da implementação de capacidades básicas como autenticação, autorização,
versionamento, monitoração, caching, hosting padronizado, governança, etc. Ao longo dos
próximos anos esse processo tende a se acelerar, especialmente como consequência da crescimento econômico nos setores de serviços.
Com relação ao desenvolvimento de tecnologias de computação em nuvem, tudo indica que
as maiores oportunidades para empresas brasileiras estão no desenvolvimento e customização
de ferramentas/serviços para plataformas de nuvem (PaaS) e de aplicativos para computação
em nuvem (SaaS), uma vez que esses são os tipos de computação em nuvem que por um lado
requerem menos investimentos e inovações em hardware, e por outro, possibilitam a exploração
de nichos de mercado e mesmo assim obter bons lucros. É de se esperar também que sejam
desenvolvidos modelos de negócio — especı́ficos para provedores de nuvem — inovadores e
mais apropriados à cultura social e econômica do Brasil.
Além disso, vislumbramos algumas oportunidades especı́ficas, enumeradas a seguir:
• Existem poucos serviços em nuvem, por exemplo, para logı́stica, gestão de conhecimento,
CRM, gestão de projetos ou finanças corporativas, com interface traduzida para a lı́ngua
brasileira. Menos ainda, se vêem ferramentas e aplicações moldadas para o mercado
brasileiro com funcionalidades especı́ficas condizentes com as práticas administrativas e
as leis do paı́s.
• O desenvolvimento de serviços em nuvem para entidades e órgãos governamentais, para
serviços de saúde, de fiscaização tributária, governança eletrônica etc. Um exemplo concreto dessa tendência é o software de inteligência Harpia, a ser usado em breve conjuntamente pelas Secretarias da Receita Federal e da Previdência Social para controle integrado
de tributos e da contribuições à previdência. Ou então, o Sistema Público de Escrituração
Digital SPED)3 , que está concretizando a integração das administrações tributárias nas três
esferas governamentas: federal, estadual e municipal, além de parcerias com instituições
como CVM, Susep e diversos outros órgãos públicos.
2
IDG NOW! Tecnologia em primeiro lugar, http://idgnow.uol.com.br
Implantação da modernização da sistemática atual das obrigações acessórias, transmitidas pelos contribuintes às
administrações tributárias e aos órgãos fiscalizadores, utilizando-se da certificação digital para fins de assinatura dos
documentos eletrônicos, garantindo a validade jurı́dica dos mesmos apenas na sua forma digital.
3
Relatório 3
23 / 27
• Os megaeventos esportivos que o Brasil vai sediar abrem uma série de oportunidades para
as operadoras de telecomunicações e provedores de TI, e em particular, possibilidades de
exportação de serviços na nuvem. Segundo especialistas que participaram de um painel na
Futurecom 2010, “a Copa do Mundo de 2014 e Olimpı́ada de 2016 vão exigir infraestrutura
para processamento em larga escala, que no futuro poderá ser aproveitada para atender o
mercado de exportação.”
• A possibilidade de empresas brasileiras desenvolverem serviços de nuvem para monitoramento ambiental, em particular participatory sensing (conforme abordado no Relatório
2)
• Criação meta-serviços em nuvem que agregam valor aos serviços de nuvem já existentes,
que usariam datacentros em qualquer parte do mundo.
• Criação de aplicativos de nuvens móveis (mobile cloud), focados na interação, colaboração
entre usuários móveis, particularmente através de redes sociais (conforme abordado no
Relatório 2).
No entanto, para que tecnologias e aplicações de computação em nuvem possam ser desenvolvidas e usadas, o paı́s tem uma série de desafios a vencer, tais como, dispor de uma infraestutura de rede com qualidade de serviço e preços mais baixos, sobretudo por parte das operadoras
de celular e custo da mão-de-obra qualificada. Neste último item, o Brasil tem dois problemas
graves. O primeiro deles é o número muito baixo de profissionais de TIC que se forma anualmente. Estima-se que a demanda é 10 vezes maior. E o segundo é que o Brasil é um dos
mercados que têm o custo hora/trabalhada mais elevado, devido aos encargos trabalhistas. Esses
dois fatores são considerados os grandes obstáculos a expansão tencológica do pais em TIC, e
em particular, no desenvolvimento de know-how, serviços e aplicações em nuvem.
Relatório 3
24 / 27
7
Conclusões
A computação em nuvem se apresenta como um novo modelo de fornecimento de recursos computacionais que permite aos consumidores contratarem esses recursos à medida em que se apresenta a necessidade de sua utilização [ZCB10]. Isto implica em grandes vantagens como, por exemplo, a eliminação ou redução dos investimentos necessários para a implantação e manutenção
de infraestrutura computacional, que passa a estar disponı́vel sem planejamento prévio e em
quantidade suficiente para atender à demanda de consumo.
A crescente adesão que a computação em nuvem vem conquistando, fará com que os atuais
datacentros trabalhem cada vez mais em conjunto, convergindo para uma arquitetura global de
serviços virtuais distribuı́dos — de hardware, armazenamento, processamento, transformação,
etc —, de forma que usuários possam acessar e implantar aplicações por demanda, de qualquer
lugar do mundo e a um custo proporcional aos parâmetros de QoS contratados [BRC10]. Essa
integração de serviços e aplicações em nuvem, por sua vez, também vem demandando novos
serviços baseados em nuvem, por exemplo, para prover interoperabilidade, coordenação e balanceamento de carga entre serviços, descoberta de novos serviços, ou a seleção e negociação de
SLAs serviços.
É possı́vel vislumbrar ainda que em um futuro próximo teremos seviços em nuvem dedicados
ao armazenamento, agregação e — em especial — interpretação contı́nua de dados de contexto,
sejam eles relativos a dispositivos, objetos ou seres vivos, obtidos diretamente a partir de sensores
ou inferidos a partir de outras fontes (por exemplo, mineração de texto de redes sociais).
Além disso, computação em nuvem continuará permitindo que desenvolvedores com ideias
inovadoras e conhecimento básico em plataformas de nuvem possam facil e rapidamente criar
novos serviços na Internet sem ter que fazer grandes investimentos em hardware e na operacão
do mesmo [AFG+ 10]. A nosso ver isso representa uma grande oportunidade de crescimento para
o setor de TIC do Brasil, uma vez que este será capaz de criar serviços customizados e de nichos
de mercado, para atender as demandas especı́ficas da economia e da sociedade brasileira.
Relatório 3
25 / 27
Bibliografia
[AFG+ 10] M. Armbrust, A. Fox, R. Griffith, A. Joseph, R. Katz, A. Konwinski, G. Lee, D. Patterson, A. Rabkin, I. Stoica, , M. Zaharia. A View of Cloud Computing. Communications ACM 53(4):50–58, Abril 2010.
[Ama08]
Amazon. Amazon Simple Storage Service (Amazon S3). 2008. Disponı́vel em
aws.amazon.com/s3.
[BLS+ 09] D. Bernstein, E. Ludvigson, K. Sankar, S. Diamond, M. Morrow. Blueprint for the
Intercloud - Protocols and Formats for Cloud Computing Interoperability. Internet
and Web Applications and Services, International Conference on 0:328–336, 2009.
doi:http://doi.ieeecomputersociety.org/10.1109/ICIW.2009.55
[BRC10]
R. Buyya, R. Ranjan, R. N. Calheiros. InterCloud: Utility-Oriented Federation of
Cloud Computing Environments for Scaling of Application Services. In Proceedings
of the 10th International Conference on Algorithms and Architectures for Parallel
Processing (ICA3PP 2010). Pp. 13–31. Springer, Berlin, Germany, 2010.
[BRCB10] R. Buyya, R. Ranjan, R. N. Calheiros, A. Beloglazov. Cloudsim: A framework
for modeling and simulation of cloud computing infrastructures and services. 2010.
Disponı́vel em http://www.cloudbus.org/cloudsim/.
[CRB+ 11] R. N. Calheiros, R. Ranjan, A. Beloglazov, C. A. F. D. Rose, R. Buyya. CloudSim: a
toolkit for modeling and simulation of cloud computing environments and evaluation
of resource provisioning algorithms. Software: Practice and Experience 41(1):23–
50, January 2011.
[GGL03]
S. Ghemawat, H. Gobioff, S. tak Leung. The Google file system. In Symposium on
Operating Systems Principles. Pp. 29–43. 2003.
doi:10.1145/945445.945450
[GHJ+ 09] A. Greenberg, J. R. Hamilton, N. Jain, S. Kandula, C. Kim, P. Lahiri, D. A. Maltz,
P. Patel, S. Sengupta. VL2: a scalable and flexible data center network. In Proceedings of the ACM SIGCOMM 2009 conference on Data communication. SIGCOMM
’09, pp. 51–62. ACM, New York, NY, USA, 2009.
doi:http://doi.acm.org/10.1145/1592568.1592576
http://doi.acm.org/10.1145/1592568.1592576
[GRJ+ 09] I. Giurgiu, O. Riva, D. Juric, I. Krivulev, G. Alonso. Calling the cloud: enabling mobile phones as interfaces to cloud applications. In Proceedings of the
ACM/IFIP/USENIX 10th international conference on Middleware. Middleware’09,
pp. 83–102. Springer-Verlag, Berlin, Heidelberg, 2009.
http://portal.acm.org/citation.cfm?id=1813355.1813362
[HSH09]
Relatório 3
M. M. Hassan, B. Song, E. Huh. A framework of sensor-cloud integration opportunities and challenges. In Proceedings of the 3rd International Conference on Ubiq26 / 27
uitous Information Management and Communication (ICUIMC ’09). Pp. 618–626.
ACM, New York, NY, USA, 2009.
[Lea09]
N. Leavitt. Is Cloud Computing Really Ready for Prime Time? Computer 42:15–20,
January 2009.
doi:10.1109/MC.2009.20
http://portal.acm.org/citation.cfm?id=1512136.1512163
[OSSN02] S. Osman, D. Subhraveti, G. Su, J. Nieh. The design and implementation of Zap:
a system for migrating computing environments. SIGOPS Oper. Syst. Rev. 36:361–
376, December 2002.
doi:http://doi.acm.org/10.1145/844128.844162
http://doi.acm.org/10.1145/844128.844162
[QKP+ 09] A. Quiroz, H. Kim, M. Parashar, N. Gnanasambandam, N. Sharma. Towards Autonomic Workload Provisioning for Enterprise Grids and Clouds. In Proceedings of
the 10th IEEE International Conference on Grid Computing (Grid 2009). Pp. 13–15.
Outubro 2009.
[RBL+ 09] B. Rochwerger, D. Breitgand, E. Levy, A. Galis, K. Nagin, I. M. Llorente, R. Montero, Y. Wolfsthal, E. Elmroth, J. Cáceres, W. Emmerich, F. Galán. The Reservoir
model and architecture for open federated cloud computing. IBM Journal of Research and Development 53:1–11, Abril 2009.
[SPC09a] D. M. Smith, D. C. Plummer, D. W. Cearley. Pragmatic Programming Techniques: Between Elasticity and Scalability Computing. Junho 2009. Disponı́vel em:
http://horicky.blogspot.com/2009/07/between-elasticity-and-scalability.html.
[SPC09b] D. M. Smith, D. C. Plummer, D. W. Cearley. The What, Why and When of Cloud
Computing. Junho 2009. Relatório da Gartner Research.
[VRCL08] L. Vaquero, L. Rodero-Merino, J. Caceres, M. Lindner. A break in the clouds: Towards a cloud definition. SIGCOMM Computing Communications Review 1(39):50–
55, Dezembro 2008.
[ZCB10]
Relatório 3
Q. Zhang, L. Cheng, R. Boutaba. Cloud computing: State-of-the-art and research
challenges. Journal of Internet Services and Applications 1(1):7–18, Maio 2010.
27 / 27
Download

Perspectivas e Desafios da Computação em Nuvem na Internet do