Professional Documents
Culture Documents
7
Computao em Nuvem: Conceitos, Tecnologias,
Aplicaes e Desafios
Flvio R. C. Sousa, Leonardo O. Moreira e Javam C. Machado
Abstract
Platforms and softwares are available as services, both being used in Cloud Computing
environments. This has improved flexibility, reducing total business cost and providing ondemand services. Several companies already use cloud computing to distribute its softwares, and it is believed that a constant migration to these environments will take place in
the upcoming years. This course will introduce the main cloud computing concepts and
technologies, its architecture, service and deployment models, as well as applications that
can be executed in such environments. Finally, challenges and opportunities in the cloud
computing field will be presented.
Resumo
Plataformas e softwares esto disponibilizados como servios, sendo estes utilizados em
ambientes de Computao em Nuvem. Isso tem melhorado a flexibilidade, reduzindo o
custo total dos negcios e provendo servios sob demanda. Muitas empresas j utilizam
computao em nuvem para distribuir seus softwares e acredita-se que ocorrer uma
migrao constante para estes ambientes. Esse curso tem como objetivo apresentar os
principais conceitos e tecnologias de computao em nuvem, a arquitetura e modelos
de servios e implantao, bem como, aplicaes executadas nestes ambientes. Por fim,
desafios e oportunidades em computao em nuvem so apresentados.
7.1. Introduo
Com o avano da sociedade humana moderna, servios bsicos e essenciais so quase
todos entregues de uma forma completamente transparente. Servios de utilidade pblica
como gua, gs, eletricidade e telefone tornaram-se fundamentais para nossa vida diria e
so explorados atravs de um modelo de pagamento baseado no uso [Vecchiola et al. 2009].
As infra-estruturas existentes permitem entregar tais servios em qualquer lugar e a qualquer hora, de forma que possamos simplesmente acender a luz, abrir a torneira ou usar
o fogo. O uso desses servios , ento, cobrado de acordo com as diferentes polticas
para o usurio final. Recentemente, a mesma ideia de utilidade tem sido aplicada no
contexto da informtica e uma mudana consistente neste sentido tem sido feita com a
disseminao de Cloud Computing ou Computao em Nuvem.
Computao em nuvem uma tendncia recente de tecnologia cujo objetivo
proporcionar servios de Tecnologia da Informao (TI) sob demanda com pagamento
baseado no uso. Tendncias anteriores computao em nuvem foram limitadas a uma
determinada classe de usurios ou focadas em tornar disponvel uma demanda especfica
de recursos de TI, principalmente de informtica [Buyya et al. 2009b]. Computao em
nuvem pretende ser global e prover servios para as massas que vo desde o usurio final
que hospeda seus documentos pessoais na Internet at empresas que terceirizaro toda a
parte de TI para outras empresas. Nunca uma abordagem para a utilizao real foi to
global e completa: no apenas recursos de computao e armazenamento so entregues
sob demanda, mas toda a pilha de computao pode ser aproveitada na nuvem. A Figura
7.1 mostra uma viso geral de uma nuvem computacional.
Com isso, os usurios esto movendo seus dados e aplicaes para a nuvem e
assim acess-los de forma simples e de qualquer local. Isso novamente um caso de utilizao de processamento centralizado. Cenrio semelhante ocorreu h aproximadamente
50 anos: um servidor de tempo compartilhado acessado por vrios usurios. Contudo, nas
ltimas dcadas, quando os computadores pessoais surgiram, os dados e as aplicaes comearam a serem utilizados localmente.
Certamente o paradigma de computao em nuvem no uma repetio da histria. H 50 anos os servidores de tempo compartilhado foram adaptados por questes de
limitao de recursos. J a computao em nuvem surge da necessidade de construir infraestruturas de TI complexas, onde os usurios tm que realizar instalao, configurao e
atualizao de softwares. Alm disso, recursos de computao e hardware so propensos
a ficarem obsoletos rapidamente. Assim, a utilizao de plataformas computacionais de
terceiros uma soluo inteligente para os usurios lidarem com infra-estrutura de TI.
Na computao em nuvem os recursos de TI so fornecidos como um servio,
permitindo aos usurios acessarem os servios sem a necessidade de conhecimento sobre
a tecnologia utilizada. Assim, os usurios e empresas passaram a acessar os servios
sob demanda e independente de localizao, o que aumentou a quantidade de servios
disponveis.
Este trabalho trata de diversos aspectos da computao em nuvem e est organizado da seguinte forma: a seo 2 apresenta os principais conceitos de computao em
nuvem. A seo 3 apresenta as tecnologias atuais de computao em nuvem. A seo
4 apresenta algumas aplicaes para computao em nuvem. A seo 5 apresenta os
principais desafios em computao em nuvem e finalmente a seo 6 apresenta algumas
concluses.
7.2.3.1. Privado
No modelo de implantao privado, a infra-estrutura de nuvem utilizada exclusivamente
para uma organizao, sendo esta nuvem local ou remota e administrada pela prpria empresa ou por terceiros. Neste modelo de implantao so empregados polticas de acesso
aos servios. As tcnicas utilizadas para prover tais caractersticas podem ser em nvel
de gerenciamento de redes, configuraes dos provedores de servios e a utilizao de
tecnologias de autenticao e autorizao. Um exemplo deste modelo seria o cenrio de
uma universidade e seus departamentos. A universidade pode estar interessada em disponibilizar servios para seus departamentos e outros rgos desta instituio no devem ter
acesso a esses servios.
7.2.3.2. Pblico
No modelo de implantao pblico, a infra-estrutura de nuvens disponibilizada para o
pblico em geral, sendo acessado por qualquer usurio que conhea a localizao do servio. Neste modelo de implantao no podem ser aplicadas restries de acesso quanto
ao gerenciamento de redes, e menos ainda, aplicar tcnicas de autenticao e autorizao.
7.2.3.3. Comunidade
No modelo de implantao comunidade ocorre o compartilhamento por diversas empresas
de uma nuvem, sendo esta suportada por uma comunidade especfica que partilhou seus
interesses, tais como a misso, os requisitos de segurana, poltica e consideraes sobre
flexibilidade. Este tipo modelo de implantao pode existir localmente ou remotamente e
pode ser administrado por alguma empresa da comunidade ou por terceiros.
7.2.3.4. Hbrido
No modelo de implantao hbrido, existe uma composio de duas ou mais nuvens, que
podem ser privadas, comunidade ou pblica e que permanecem como entidades nicas
e ligadas por uma tecnologia padronizada ou proprietria que permite a portabilidade de
dados e aplicaes.
7.2.4. Papis e Escalabilidade de Nuvens
Os papis so importantes para definir responsabilidades, acesso e perfil para os diferentes
usurios que fazem parte e esto envolvidos em uma soluo de computao em nuvem.
J a escalabilidade de nuvem importante para transparecer para o usurio a iluso de
recursos computacionais infinitos. Alm disso, a escalabilidade aumenta o desempenho
dos recursos utilizados pelos usurios da soluo em nuvem. Essa escalabilidade pode
acontecer como composio de servios ou na adio de recursos fsicos computacionais.
Uma nuvem escalvel verticalmente pode melhorar a prpria capacidade, incrementando individualmente seus ns existentes, como por exemplo, atravs da disponibilizao de um servidor com mais memria fsica ou melhorar a largura de banda que
conecta dois ns.
7.2.5. Arquitetura de Computao em Nuvem
A arquitetura de computao em nuvem baseada em camadas, sendo que cada uma
destas trata de uma particularidade na disponibilizao de recursos para as aplicaes
[Buyya et al. 2009b]. Uma camada uma diviso lgica de componentes de hardware
e software. Alguns destes recursos computacionais podem ser agrupados e organizados
para realizar uma determinada tarefa do sistema como um todo. Cada camada pode ter
seu gerenciamento ou monitoramento de forma independente das outras camadas, melhorando a flexibilidade, reusabilidade e escalabilidade no tocante a substituio ou adio de
recursos computacionais sem afetar as outras camadas. A Figura 7.4 exibe essas camadas
e suas respectivas associaes.
A camada de mais baixo nvel a de infra-estrutura fsica, que contem datacenters, clusters, desktops e outros recursos de hardware, podendo ter recursos heterogneos.
Com isso, fornece certa flexibilidade e facilidade de agregao de novos recursos a medida que se tornem necessrios.
Uma camada de middleware responsvel por gerenciar a infra-estrutura fsica
e tem por objetivo fornecer um ncleo lgico de uma nuvem. Estes servios contm
negociaes de QoS, gerenciamento dos SLA, servios de cobrana, servios para verificar aceitao de requisies baseado no QoS e preo, servios para clculo, servios de
gerenciamento de virtualizao, entre outros.
No nvel acima da camada de middleware, encontra-se a camada responsvel por
prover suporte para a construo de aplicaes e que contem ferramentas ou ambientes
de desenvolvimento. Estes ambientes possuem interfaces Web 2.0, marshups, componentes, recursos de programao concorrente e distribuda, suporte a workflows, bibliotecas de programao e linguagens de programao. Esta camada de desenvolvimento
no utilizada pelos usurios finais, e sim, pelos usurios mais experientes, aqueles que
desenvolvem as solues para computao em nuvem.
Por fim, encontra-se a camada das aplicaes de computao em nuvem. Esta camada de interesse do usurio, pois por meio dela que eles utilizam os aplicativos. As
camadas abaixo desta so responsveis pelas caractersticas de escalabilidade, disponibilidade, iluso de recursos infinitos e alto desempenho. Algumas solues de arquitetura
podem incluir uma camada de gerenciamento de adaptaes sendo esta responsvel por
fornecer adaptao a estas solues. Essas adaptaes ocorrem de forma automtica ou
semi-automtica e com isso, diminui os esforos humanos para gerenciar arquiteturas de
computao em nuvem.
e interagir com cada umas destas, de forma similar a mquinas convencionais. Tambm
possvel escolher as caractersticas de cada instncia, tais como sistema operacional,
pacotes de softwares e as configuraes das mquinas, como CPU, memria e armazenamento. Para garantir a segurana, o EC2 utiliza firewall para controlar o acesso s
instncias, criando ambientes virtuais privados. Para utilizar o EC2, primeiro necessrio criar uma imagem de mquina para executar as aplicaes, chamada de AMI (Amazon
Machine Image), que contem os aplicativos, bibliotecas, dados e configuraes associadas. Esta imagem armazenada em um repositrio seguro, rpido e confivel.
O EC2 fornece um ambiente altamente confivel, visto que a substituio de instncias pode ser realizada de forma rpida, garantindo o QoS. Alm disso, o EC2 trabalha
em conjunto com o Amazon S3 (Amazon Simple Storage Service), Amazon SimpleDB e o
Amazon SQS (Amazon Simple Queue Service) para fornecer uma soluo completa para
computao, processamento de consultas e armazenamento. A Figura 7.6 ilustra esses
componentes que descrevem a arquitetura do Amazon EC2.
7.4. Eucalyptus
O projeto Eucalyptus [Liu et al. 2007] uma infra-estrutura de cdigo aberto que fornece
uma interface compatvel com o Amazon EC2, S3, EBS (Elastic Block Store) e permite
aos usurios criarem uma infra-estrutura e experimentar a computao em nuvem. A
arquitetura do Eucalyptus simples, flexvel e modular e contm uma concepo hierrquica que reflete os recursos comuns do ambiente.
O Eucalyptus tem como objetivo auxiliar a pesquisa e o desenvolvimento de tecnologias para computao em nuvem e o possui as seguintes caractersticas: interface
compatvel com o EC2, instalao e implantao simples usando ferramentas de gerenciamento de clusters, apresenta um conjunto de polticas de alocao extensvel de nuvem, sobreposio de funcionalidade que no requer nenhuma modificao em ambiente
Linux, ferramentas para administrar e auxiliar a gesto do sistema e dos usurios e capacidade de configurar vrios clusters, cada um com endereos privado de rede interna em
uma nica nuvem.
Esse sistema permite aos usurios iniciar, controlar o acesso e gerenciar todas as
mquinas virtuais utilizando uma emulao do protocolo SOAP (Simple Object Access
Protocol) do Amazon EC2 e interfaces de consulta. Neste sentido, os usurios interagem
com o Eucalyptus utilizando as ferramentas e interfaces exatamente do mesmo modo que
eles interagiriam com o Amazon EC2.
7.4.1. Microsoft Azure
O Microsoft Azure [Azure 2009] uma plataforma para a implementao de computao
em nuvem que oferece um conjunto especfico de servios para desenvolvedores. Esta
plataforma pode ser usada por aplicaes em execuo em nuvem ou fora desta. A plataforma Azure formada pelo sistema operacional Windows Azure e um conjunto de
servios: Live Services, .NET Services, SQL Services, SharePoint Services e Dynamics
CRM Services. A Figura 7.7 mostra a plataforma Azure.
O Windows Azure o sistema operacional para servios na nuvem que utilizado
para o desenvolvimento, hospedagem e gerenciamento dos servios dentro do ambiente
Azure. Microsoft .NET Services um conjunto de servios escalveis, orientados ao
Os Foundation Services so os servios de reservas e alocao de recursos, contabilizao, armazenamento dos aspectos relacionados s tarefas, configuraes, usurios
e recursos. Os Fabric Services fornecem acesso aos sistemas de provisionamento para
recursos da infra-estrutura. Os Transversal Services tratam das camadas de persistncia e
de segurana da infra-estrutura.
No nvel de infra-estrutura tm-se os recursos propriamente, tais como recursos
fsicos de hardware e os recursos virtualizados. No intuito de que a infra-estrutura seja
portvel e interopervel. Neste nvel implementado como uma linguagem comum de
especificao que suporta o .NET framework ou Mono.
Financeiras e seguradoras usam a nuvem para executar a avaliao de risco e calcular o custo dos emprstimos.
Neste tpico apresentamos uma aplicao executada em nuvem para deteco de
arquivos maliciosos e indesejados.
7.5.1. CloudAV
As aplicaes antivrus so ferramentas muito utilizadas para detectar e bloquear arquivos
maliciosos e indesejados. No entanto, a eficcia h longo prazo de antivrus tradicionais
questionvel. As aplicaes de antivrus podem falhar para detectar muitas ameaas
modernas e sua crescente complexidade resulta em vulnerabilidades que esto sendo exploradas por certos vrus.
O CloudAV [Oberheide et al. 2008] um novo modelo para deteco de vrus em
mquinas baseado no fornecimento de um antivrus como um servio de computao em
nuvem. Este modelo utiliza uma tcnica chamada de N-version protection, que permite a
identificao de arquivos maliciosos e indesejados por mltiplos mecanismos de deteco
em paralelo. Neste sentido, cada arquivo analisado por diversas aplicaes antivrus, o
que fornece uma melhor identificao de arquivos maliciosos.
A Figura 7.9 ilustra a arquitetura proposta pelo CloudAV. O CloudAV possui dois
componentes arquiteturais: um agente e um servio de rede. O agente hospedado na
mquina dos usurios e tem por funo verificar a existncia de novos arquivos nesta mquina e envi-los para o servio de rede. Estes arquivos podem ser originados por diversos
meios, tecnologias ou aplicaes. Quando um arquivo chega na mquina monitorada, o
agente identifica este arquivo e o envia para o servio de rede.
7.6. Desafios
Computao em nuvem apresenta diversas vantagens, discutidas neste trabalho, mas tambm possui uma srie de desafios a serem superados na utilizao desse tipo de ambiente.
A seguir destacamos alguns destes desafios.
7.6.1. Segurana
A Computao em nuvem um modelo que utiliza a Internet para disponibilizar seus
servios. Assim, deve-se ter formas para impedir o acesso no autorizado a informaes e que os dados sensveis permaneam privados, pois estes sero processados fora
da empresa. Questes de segurana devem ser consideradas para prover a autenticidade,
confidencialidade e integridade. No que diz respeito confiabilidade e responsabilidade,
o provedor deve fornecer recursos confiveis, especialmente se a computao a ser realizada crtica e existindo uma clara delimitao de responsabilidade.
7.6.2. Gerenciamento de Dados
O gerenciamento de dados considerado um ponto crtico no contexto de computao
em nuvem. Os SGBDs relacionais no possuem escalabilidade quando milhares de stios so considerados [Wei et al. 2009]. Assim, aspectos de armazenamento de dados,
processamento de consultas e controle transacional tem sido flexibilizados por algumas
abordagens para garantir a escalabilidade, mas ainda no existem solues que combinem
estes aspectos de forma a melhorar o desempenho sem comprometer a consistncia dos
dados [Abadi 2009]. Existe diversas abordagens para gerenciar dados em nuvens, dentre
as quais podemos citar o Microsoft Azure e HBase [Brantner et al. 2008].
Um aspecto importante o trade-off entre funcionalidades e custos operacionais enfrentados pelos provedores de servios. Os servios em nuvem para dados oferecem APIs mais restrita do que os SGBD relacionais, com uma linguagem minimalista
de consulta e garantia de consistncia limitada [Abouzeid et al. 2009]. Isso exige mais
esforo de programao dos desenvolvedores, mas permite aos provedores construrem
servios mais previsveis e oferecerem SLA. De acordo com [Armbrust et al. 2009], a
criao de um sistema de armazenamento que combina os diversos aspectos de computao em nuvem, de forma a aumentar a escalabilidade, a disponibilidade e consistncia
dos dados um problema de pesquisa em aberto.
7.6.3. Autonomia
A computao em nuvem um sistema autnomo gerenciado de forma transparente para
os usurios. Hardware e software dentro de nuvens podem ser automaticamente reconfigurados, orquestrados e estas modificaes so apresentadas ao usurio como uma imagem nica. Essa autonomia importante, pois reduz o custo de equipe de monitoramento
do sistema tanto no mbito centralizado quanto distribudo [Birman et al. 2009]. Comparados com sistemas tradicionais, possvel identificar trs fatores complexos: interveno
humana limitada, alta alternncia na carga de processamento e uma variedade de infraestruturas compartilhadas.
Na maioria dos casos, no existem administradores de sistemas para ajudar os
desenvolvedores que acessam a nuvem, fazendo com que a plataforma seja automatizada
ao mximo e os usurios podem variar a carga de trabalho habitual, necessitando de uma
infra-estrutura de virtualizao eficaz. A gerncia tambm importante no contexto do
desenvolvimento de tecnologia de auto-sintonia. Assim sendo, tcnicas adaptativas e online devero ser desenvolvidas para tornar estes sistemas viveis [Aboulnaga et al. 2009].
7.6.4. Disponibilidade de Servios
A disponibilidade de servios permite aos usurios acessar e utilizar a nuvem onde e
quando desejarem. Como se trata da Internet podem ocorrer atrasos e sistemas indisponveis. Os ambientes de computao em nuvem devem prover alta disponibilidade.
Para tanto, esses podem utilizar tcnicas de balanceamento de carga dinmico e composio de nuvens de forma a atender as necessidades dos usurios. Por exemplo, podem-se
construir aplicaes altamente disponveis com a implantao de duas ofertas de nuvem
diferentes. Caso uma das nuvens falhe, a outra nuvem continua a apoiar a disponibilidade
das aplicaes.
7.6.5. Escalabilidade e Desempenho
A escalabilidade foi uma das caractersticas fundamentais que conduziram ao surgimento
da computao em nuvem. As nuvens de servios e as plataformas oferecidas podem
ser dimensionadas por vrios fatores, tais como localizaes geogrficas, desempenho ou
configuraes. Apesar das limitaes de rede e segurana, as solues de computao em
nuvem devem fornecer elevado desempenho, alm de ser flexvel para se adaptar diante
de uma determinada quantidade de requisies. Como os ambientes de computao em
nuvem possuem acesso pblico, imprevisvel e varivel a quantidade de requisies
realizadas, tornando mais complexo fazer estimativas e garantias de QoS.
7.7. Concluses
A informtica como um servio est finalmente emergindo. Com isso, as empresas podem
prestar servios diretamente aos usurios atravs da Internet de acordo com as necessidades destes usurios. Neste contexto, a computao em nuvem um paradigma que est
cada vez mais popular. Diversas empresas apresentaram suas iniciativas na promoo
da computao em nuvem. A comunidade cientfica tambm tem apresentado algumas
iniciativas, principalmente com foco em suas necessidades.
Este trabalho apresentou os principais aspectos de computao em nuvem e alguns
conceitos e tecnologias relacionadas com estes ambientes. Foi possvel perceber que a
computao em nuvem ainda no tem uma definio clara e completa na literatura, mas
que existe um grande esforo neste sentido. Aplicaes baseadas em computao em
nuvem tambm foram apresentadas.
Foram discutidos alguns desafios de pesquisa importantes, tais como segurana,
gerenciamento de dados, disponibilidade, padronizao e aspectos da prpria utilizao
da computao em nuvem. importante ressaltar que, vrias solues, existentes em
outros modelos computacionais, que resolvem ou atenuem estes desafios, podem ser aplicadas em ambientes de computao em nuvem. Estes desafios geram oportunidades de
pesquisa que devem ser superados, de forma que computao em nuvem seja amplamente
aceita e utilizada por todos.
Referncias
[Abadi 2009] Abadi, D. J. (2009). Data management in the cloud: Limitations and opportunities. IEEE Data Eng. Bull., 32:312.
[Aboulnaga et al. 2009] Aboulnaga, A., Salem, K., Soror, A. A., Minhas, U. F., Kokosielis, P., and Kamath, S. (2009). Deploying database appliances in the cloud. IEEE Data
Eng. Bull., 32(1):1320.
[Abouzeid et al. 2009] Abouzeid, A., Bajda-Pawlikowski, K., Abadi, D. J., Rasin, A.,
and Silberschatz, A. (2009). Hadoopdb: An architectural hybrid of mapreduce and
dbms technologies for analytical workloads. PVLDB, 2(1):922933.
[Armbrust et al. 2009] Armbrust, M., Fox, A., Griffith, R., Joseph, A. D., Katz, R. H.,
Konwinski, A., Lee, G., Patterson, D. A., Rabkin, A., Stoica, I., and Zaharia, M.
(2009). Above the clouds: A berkeley view of cloud computing. Technical report,
EECS Department, University of California, Berkeley.
[Marinos and Briscoe 2009] Marinos, A. and Briscoe, G. (2009). Community cloud
computing. CoRR, abs/0907.2485.
[Mei et al. 2008] Mei, L., Chan, W. K., and Tse, T. H. (2008). A table of clouds: Paradigm comparisons and some thoughts on research issues. In APSCC 08: Proceedings
of the 2008 IEEE Asia-Pacific Services Computing Conference, pages 464469, Washington, DC, USA. IEEE Computer Society.
[NIST 2009] NIST (2009). "National Institute of Standards and Technology Draft Definition of Cloud Computing". http://csrc.nist.gov/groups/SNS/cloud-computing.
[Oberheide et al. 2008] Oberheide, J., Cooke, E., and Jahanian, F. (2008). Cloudav: Nversion antivirus in the network cloud. In SS08: Proceedings of the 17th conference
on Security symposium, pages 91106, Berkeley, CA, USA. USENIX Association.
[OpenCloud 2009] OpenCloud (2009).
http://www.opencloudmanifesto.org/.
"The
Open
Could
Manifesto".
[Robinson 2008] Robinson, D. (2008). Amazon Web Services Made Simple: Learn how
Amazon EC2, S3, SimpleDB and SQS Web Services enables you to reach business goals
faster. Emereo Pty Ltd, London, UK, UK.
[Salesforce 2009] Salesforce (2009). "Salesforce". http://www.salesforce.com/.
[Vaquero et al. 2009] Vaquero, L. M., Rodero-Merino, L., Caceres, J., and Lindner, M.
(2009). A break in the clouds: towards a cloud definition. SIGCOMM Comput. Commun. Rev., 39(1):5055.
[Vecchiola et al. 2009] Vecchiola, C., Chu, X., and Buyya, R. (2009). Aneka: A software
platform for .net-based cloud computing. CoRR, abs/0907.4622.
[Wei et al. 2009] Wei, Z., Pierre, G., and Chi, C.-H. (2009). Scalable transactions for
web applications in the cloud. In Euro-Par, pages 442453.
[Yigitbasi et al. 2009] Yigitbasi, N., Iosup, A., Epema, D., and Ostermann, S. (2009).
C-meter: A framework for performance analysis of computing clouds. In CCGRID
09: Proceedings of the 2009 9th IEEE/ACM International Symposium on Cluster
Computing and the Grid, pages 472477, Washington, DC, USA. IEEE Computer
Society.
[Youseff et al. 2008] Youseff, L., Butrico, M., and Silva, D. D. (2008). Toward a unified
ontology of cloud computing. In Grid Computing Environments Workshop (GCE08).