You are on page 1of 61

ISSN 1677-9274 Dezembro, 2011

Empresa Brasileira de Pesquisa Agropecuria Embrapa Informtica Agropecuria Ministrio da Agricultura, Pecuria e Abastecimento

Documentos 116

Computao em nuvem: entendendo e implementando uma nuvem privada


Jorge Luiz Corra Marcos Cezar Visoli

Embrapa Informtica Agropecuria Campinas, SP 2011

Embrapa Informtica Agropecuria Av. Andr Tosello, 209 - Baro Geraldo Caixa Postal 6041 - 13083-886 - Campinas, SP Fone: (19) 3211-5700 - Fax: (19) 3211-5754 www.cnptia.embrapa.br sac@cnptia.embrapa.br Comit de Publicaes Presidente: Silvia Maria Fonseca Silveira Massruh Membros: Poliana Fernanda Giachetto, Roberto Hiroshi Higa, Stanley Robson de Medeiros Oliveira, Maria Goretti Gurgel Praxedes, Adriana Farah Gonzalez, Neide Makiko Furukawa Membros suplentes: Alexandre de Castro, Fernando Attique Mximo, Paula Regina Kuser Falco Superviso editorial: Neide Makiko Furukawa, Stanley Robson de Medeiros Oliveira Revisor de texto: Adriana Farah Gonzalez Normalizao bibliogrfica: Maria Goretti Gurgel Praxedes Editorao eletrnica: Suzilei Almeida Carneiro, Neide Makiko Furukawa Arte capa: Suzilei Almeida Carneiro Fotos da capa: Imagens livres disponveis em <http://www.stock.schng> Secretria: Carla Cristiane Osawa 1a edio on-line 2011
Todos os direitos reservados. A reproduo no autorizada desta publicao, no todo ou em parte, constitui violao dos direitos autorais (Lei no 9.610). Dados Internacionais de Catalogao na Publicao (CIP) Embrapa Informtica Agropecuria Corra, Jorge Luiz. Computao em nuvem: entendendo e implementando uma nuvem privada / Jorge Luiz corra, Marcos Cezar Visoli. - Campinas : Embrapa Informtica Agropecuria, 2011. 58p. : il. (Documentos / Embrapa Informtica Agropecuria ; ISSN 1677-9274, 116). 1. Computao em nuvem. 2. IaaS . 3. Openstack . 4. Virtualizao. I. Visoli, Marcos Cezar. II. Embrapa Informtica Agropecuria. II. Ttulo. III. Srie. 006.78 CDD (21. ed.) Embrapa 2011

Autores

Jorge Luiz Corra Mestre em Cincia da Computao Analista da Embrapa Informtica Agropecuria Av. Andr Tosello, 209, Baro Geraldo Caixa Postal 6041 - 13083-970 - Campinas, SP Telefone: (19) 3211-5882 e-mail: jorge@cnptia.embrapa.br

Marcos Cezar Visoli Mestre em Cincia da Computao Pesquisador da Embrapa Informtica Agropecuria Av. Andr Tosello, 209, Baro Geraldo Caixa Postal 6041 - 13083-970 - Campinas, SP Telefone: (19) 3211-5734 e-mail: visoli@cnptia.embrapa.br

Apresentao
Nas ltimas dcadas, a computao tem apresentado inovaes em diversas reas. Esse desenvolvimento tem permitido o fornecimento de diferentes tipos de servios aos usurios. Mais recentemente, a computao em nuvem tem se tornado foco em pesquisas e desenvolvimentos. Esse novo modelo de computao surge em meio a um cenrio onde necessidades comerciais influenciam os rumos da computao. No entanto, embora as caractersticas mercadolgicas sejam preponderantes, essa nova tecnologia pode ser utilizada com diversas outras aplicaes. O uso da computao em nuvem no gerenciamento de infraestrutura altera, diretamente, o modo at ento utilizado para realizao de atividades de gerncia de Tecnologia da Informao (TI). O controle no uso de ativos computacionais, provisionamento de infraestrutura de hardware (processamento e armazenamento), criao e liberao de servios, gerenciamento de mquinas virtuais e capacidade de aumentar ou diminuir recursos computacionais, tudo sob demanda, so algumas dessas atividades cuja gerncia torna-se extremamente verstil. Essa versatilidade fez surgir um novo modelo de negcios baseado na venda de servios computacionais sob demanda. Alm disso, comeam a surgir diversos cenrios no comerciais onde as nuvens podem ser empregadas. Um deles nas atividades de pesquisa e inovao. Nesse contexto, nuvens permitem diversas facilidades que auxiliam pesquisadores de diversas reas, fornecendo plataformas de desenvolvimento, softwares e, principalmente, infraestrutura de hardware, tudo aliado rapidez e s facilidades caractersticas das nuvens. Este documento tem por objetivo introduzir os principais conceitos relativos s nuvens computacionais, desde os novos modelos comerciais at sua aplicao em atividades de pesquisa, notadamente na rea agropecuria. Sero apresentadas caractersticas funcionais, tcnicas e alguns cenrios onde essa tecnologia pode ser empregada em prol do desenvolvimento de projetos de pesquisa dentro da Empresa Brasileira de Pesquisa Agropecuria. Kleber Xavier Sampaio de Souza
Chefe-geral Embrapa Informtica Agropecuria

Sumrio
Introduo..................................................................................................9 Conceituao...........................................................................................10
O que computao em nuvem ............................................................. 11 Classificao das nuvens quanto ao gerenciamento .............................. 12 Classificao dos servios em nuvem (IBM, 2010).................................. 15 Modelo de negcios baseado em computao em nuvem...................... 17 Principais provedores de servios em nuvem.......................................... 17 Nuvem privada provendo servio de infraestrutura (IaaS)....................... 21 O conceito de Service Orchestration........................................................26 Computao em nuvem e a TI Verde.......................................................28

Tendncias open source e projetos Canonical.............................. 29 Aspectos prticos: implementao e testes................................... 31


OpenStack................................................................................................32 KVM..........................................................................................................36 Implementao de uma nuvem IaaS na Embrapa Informtica Agropecuria............................................................................................37 Testes.......................................................................................................42

Avaliao e consideraes finais.......................................................52 Trabalhos futuros...................................................................................55 Referncias..............................................................................................57

Computao em nuvem: entendendo e implementando uma nuvem privada


Jorge Luiz Corra Marcos Cezar Visoli

Introduo
A Embrapa Informtica Agropecuria tem como misso viabilizar solues em tecnologia da informao para o agronegcio. Diversas so as reas de pesquisas, tais como Novas Tecnologias, Geotecnologias, Modelagem Agroambiental, Inteligncia Computacional, Bioinformtica, Software Livre, Organizao da Informao Eletrnica, Redes de Computadores e Matemtica Computacional. Uma caracterstica comum a todas elas a utilizao de recursos computacionais como suporte ao desenvolvimento de suas atividades. Frente a essa necessidade, o provisionamento de infraestrutura computacional passa a ser bastante relevante. Estabelecer um servio ou servidor de maneira rpida e eficaz para utilizao em um projeto de pesquisa representa um avano em relao ao suporte prestado e, certamente, prpria atividade de pesquisa. Alm dessa caracterstica, as nuvens computacionais trazem tambm a otimizao de uso de recursos computacionais, a versatilidade gerencial e a possibilidade de se utilizar diversos cenrios dentro da estrutura da nuvem como o estabelecimento de um cluster computacional e o armazenamento redundante de dados. Neste documento sero apresentados conceitos introdutrios sobre nuvens computacionais, visando um melhor esclarecimento sobre os pontos em que essa tecnologia pode ser til no auxlio s atividades desenvolvi-

10

Embrapa Informtica Agropecuria. Documentos, 116

das na unidade. Alm de uma reviso terica, o documento apresenta os resultados obtidos pela realizao de alguns experimentos prticos com o software para infraestrutura de nuvem OpenStack . Pretende-se que, ao final do documento, seja atingido um grau de esclarecimento bsico acerca dessa tecnologia, de modo que possibilite a proposio de novos cenrios onde a computao em nuvem atue como facilitadora da realizao de atividades que envolvam tecnologia da informao, seja em tarefas administrativas ou na conduo de pesquisas cientficas

Conceituao
Durante a evoluo da computao nas ltimas dcadas, diversos modelos de fornecimento de servios foram utilizados. Em geral, esses modelos foram criados para atender determinadas demandas ou para estender a capacidade tcnica das tecnologias em cada poca. As redes locais foram estendidas pela interconexo de redes distribudas, surgiram modelos de distribuio da informao diferentes do modelo cliente/servidor, terminais virtuais deram origem computao local, sistemas passaram a ser virtualizados para melhor utilizao do hardware, dentre diversas tecnologias que visam adaptar o fornecimento de um servio ou infraestrutura s necessidades de computao de cada momento. A computao em nuvem , hoje, foco de diversas pesquisas dentro da cincia da computao. No contexto atual da computao, referindo-se ao fornecimento de servios, duas caractersticas em especial tm impulsionado a existncia da computao em nuvem: a disponibilidade e a escalabilidade. Dentro da disponibilidade deve-se considerar no s a capacidade de um sistema ou o fato de o servio estar sempre disponvel aos seus usurios, mas tambm a capacidade de, rapidamente, tornar esse sistema ou servio disponvel. J a escalabilidade refere-se necessidade de um constante crescimento na capacidade de fornecimento de servios, acompanhando, assim, o crescimento da demanda. Alm dessas caractersticas consideradas fundamentais, existem outras que refletem o momento atual da computao, como o caso das questes de negcios referentes tarifao pelo uso dos recursos computacionais e, at mesmo, questes ambientais,

Computao em nuvem: entendendo e implementando...

11

quando analisando do ponto de vista de otimizao do uso dos recursos disponveis para economia de energia. Este trabalho tem por objetivo realizar um estudo sobre a computao em nuvem, procurando esclarecer do que se trata, quais os objetivos desse novo conceito, as vantagens e desvantagens de seu uso e suas aplicaes. Para tal, alm de uma parte conceitual, ser estabelecido um laboratrio experimental e sero realizados alguns ensaios que auxiliaro na consolidao desses conceitos, bem como tentaro definir facilidades e restries da utilizao das nuvens computacionais. Todo esse trabalho reflete uma viso sobre um cenrio atual de computao em nuvem. Devido ao atual estgio de desenvolvimento dessa rea, deve-se considerar que alguns conceitos, prticas, softwares e funcionalidades aqui discutidos podero ser fcil e rapidamente alterados em curto perodo de tempo posterior a este trabalho.

O que computao em nuvem


A definio de computao em nuvem no imediata, estando normalmente influenciada pela rea de aplicao. Em outras palavras, a definio se adapta a diversos nichos, de forma que fornecedores de hospedagem de servios definem de uma forma mais voltada aos seus objetivos, enquanto departamentos de Tecnologia da Informao (TI) definem, sem enfatizar a comercializao de servios, as capacidades que uma nuvem pode fornecer para o ambiente de TI. Pela necessidade de uma definio mais formal, o National Institute of Standards and Technology (NIST) define a computao em nuvem como sendo um modelo para permitir acesso via rede, conveniente e sob demanda, a um conjunto de recursos computacionais configurveis e compartilhados (como redes, servidores, armazenamento, aplicaes e servios) que podem ser rapidamente provisionados e liberados com o mnimo de esforo de gerenciamento e interao com o provedor do servio. De modo geral, trata-se de um novo paradigma de computao, cujo objetivo fornecer disponibilidade, escalabilidade, reduo de custos, otimizao de recursos e versatilidade na implementao de servios, abstraindo a localizao dos recursos computacionais utilizados para prover esses

12

Embrapa Informtica Agropecuria. Documentos, 116

servios. Como ser abordado mais adiante, um servio, nesse contexto, pode ser entendido tanto como uma aplicao, tal como um banco de dados, portal web, aplicao de sute de escritrios como editores de textos, quanto uma infraestrutura de hardware, como um servidor com memria e capacidades de processamento e armazenamento. Uma nuvem compreende um conjunto de hardware gerenciado de tal modo que o estabelecimento de um servio demandado seja rpido e transparente do ponto de vista de qual hardware est sendo dedicado a esse servio. Essa justamente uma das caractersticas que possibilitam a otimizao da utilizao de recursos computacionais. No h uma relao forte de hospedagem de um servio em determinado hardware. A nuvem em si pode ser entendida como um repositrio de recursos de hardware que sero alocados dinamicamente para os servios que nela executaro.

Classificao das nuvens quanto ao gerenciamento


Uma das classificaes inicias de um sistema de computao em nuvem baseada em quem responsvel pela gerncia da nuvem e a quem ela est acessvel. A gerncia da nuvem diz respeito ao responsvel pela sua manuteno e configurao, inclusive quanto aos ativos de hardware. A acessibilidade refere-se a quem pode acessar os servios da nuvem. Essas caractersticas permitem classific-las em uma das categorias a seguir. Nuvem pblica Uma nuvem pblica aquela acessvel de qualquer lugar da internet e gerenciada por terceiros. Sua funcionalidade se assemelha a um hospedeiro de servios, de forma que os clientes pagam para utilizar servios na estrutura dessa nuvem. O diferencial da computao em nuvem, quando comparada aos servios de hospedagens comuns, est na abstrao da localizao do servio na nuvem. O servio vendido alocado dinamicamente dentro dela de forma que, tanto para o cliente quanto para o provedor, independe onde esse servio esteja fisicamente executando. O objetivo fornecer ao cliente exatamente o que ele necessita, usando para isso recursos computacionais alocados sob demanda. Como ser discuti-

Computao em nuvem: entendendo e implementando...

13

do a seguir, existe um modelo de negcios por trs das nuvens pblicas, como o caso do Amazon Web Services (AWS), baseado na tarifao pelo uso de recursos em uma nuvem. Um exemplo de uso um cliente com a necessidade de executar um servidor web com banco de dados durante um ms. Este servio pode ser contratado e ser alocado dentro da infraestrutura da nuvem pblica, fora do seu ambiente corporativo, sob gerncia do fornecedor. Esse, por sua vez, ter a capacidade de alocar tais recursos verstil e dinamicamente para o cliente. Ainda, dado o grau de versatilidade que essa tecnologia oferece, o prprio cliente pode alocar os recursos que necessitar e o provedor apenas o tarifar de acordo com o uso e o tipo de recurso alocado, sem intervir no provisionamento. Nuvem privada Uma nuvem privada aquela cujo acesso restrito a um conjunto de usurios e toda a infraestrutura pertence organizao onde ela est estabelecida. Em outras palavras, uma nuvem privada no possui acessibilidade pblica pela internet, sendo sua gerncia de responsabilidade interna e no de um provedor. Normalmente, uma nuvem privada estabelecida dentro do datacenter de uma organizao, visando prover servios para os usurios da prpria organizao (os clientes da nuvem so internos). Compreende, ento, uma maneira de otimizar a disponibilizao e utilizao de recursos de hardware para o fornecimento de servios, internamente. Nuvem hbrida Uma nuvem hbrida faz uso tanto de uma nuvem pblica quanto de uma privada, sendo que o acesso nuvem pblica diferenciado, caracteristicamente de extenso. Um exemplo de utilizao uma nuvem privada, para disponibilizao de servios internamente, estendida para uma nuvem pblica, conectadas por meio de uma Virtual Private Network (VPN). Caso a demanda por servios seja alta para a nuvem privada, seus recursos podem ser ampliados para a nuvem pblica, fora do ambiente, a fim de manter a disponibilidade do servio. Essa uma das grandes caractersticas das nuvens hbridas.

14

Embrapa Informtica Agropecuria. Documentos, 116

A possibilidade de direcionar parte da carga demandada por algum servio para uma nuvem pblica permite uma reduo de custos de hardware. O modelo at ento utilizado tal que uma infraestrutura deve suportar os momentos de pico do servio. Assim, a compra de hardware para a infraestrutura deve considerar que em tais ocasies a disponibilidade no seja afetada. Independente do valor do pico de carga de um servio, pode-se afirmar que ao se adquirir infraestrutura que atenda esses momentos, na maior parte do tempo restante essa infraestrutura ficar ociosa. Assim, alm da subutilizao de recursos na maior parte do tempo, o custo empregado elevado. A Figura 1 apresenta um grfico que retrata a demanda por infraestrutura ao longo do tempo. As linhas A, B e C indicam casos de uso de uma infraestrutura privada ou pblica, de forma que valores acima dessas linhas representam o uso de uma nuvem pblica, enquanto valores abaixo dessas linhas representam o uso de uma nuvem privada. Assim, para o caso

Figura 1. Demanda de infraestrutura ao longo do tempo: nuvens hbridas permitem que a infraestrutura privada no seja superdimensionada, resultando em ociosidade e alto custo.
Fonte adaptada de Amazon Enables Bursting to the Public Cloud (2009).

Computao em nuvem: entendendo e implementando...

15

A, toda a infraestrutura utilizada pblica. Para o caso B, a parte inferior indicada por Demanda atendida localmente faz uso de uma nuvem privada enquanto os Picos, parte superior, so executados em uma nuvem pblica. No caso C, toda a demanda atendida por uma nuvem privada. A possibilidade de se estender uma nuvem privada utilizando uma nuvem pblica, aliada ao modelo de negcios com tarifao por uso, discutido em sees seguintes, permite que uma infraestrutura local no seja construda tomando por base os momentos de pico dos servios. Torna-se possvel manter a disponibilidade sem a necessidade de grandes investimentos em infraestrutura, pagando-se apenas pelo fornecimento de capacidade extra quando esta necessria.

Classificao dos servios em nuvem (IBM, 2010)


Como mencionado anteriormente, o conceito de servio no contexto de uma nuvem computacional mais amplo do que o comumente utilizado na internet. Sempre que o termo servio for utilizado ele deve ser relacionado com alguma das categorias a seguir. Software as a Service (SaaS) O servio fornecido por esse tipo de nuvem um software cujo uso baseado em web. o tipo mais comum de servio baseado em nuvem. O exemplo mais conhecido o Google Docs, servio que prov uma sute de utilitrios de escritrio acessados por meio de um frontend web. Platform as a Service (PaaS) O servio entregue uma plataforma de desenvolvimento de softwares e produtos baseada em web. So fornecidas APIs (Application Programming Interfaces) e GUIs (Graphical User Interfaces) a fim de facilitar toda a criao de um software, envolvendo todas as suas etapas como design, desenvolvimento, testes, controle de verses, entre vrias outras caractersticas. Todas essas funcionalidades so vistas como uma soluo inte-

16

Embrapa Informtica Agropecuria. Documentos, 116

grada acessada pela web. As ferramentas desenvolvidas so executadas pelo provedor de servio PaaS. Infrastructure as a Service (IaaS) O servio entregue infraestrutura computacional bruta, tal como instncias de servidores virtuais, armazenamento, um banco de dados ou algum servio semelhante, possibilitando que o usurio a customize a fim de adequ-la s suas necessidades. Esse tipo de servio permite, por exemplo, que um usurio adquira rapidamente uma instncia de computao, para execuo de qualquer tipo de aplicao, sem se preocupar com a gerncia do hardware, ou mesmo um sistema de arquivos com determinada capacidade, de forma que tarefas como a replicao de informao para backup ficam totalmente sob responsabilidade da nuvem. A Figura 2 resume essa classificao mostrando alguns exemplos oferecidos atualmente para cada tipo de servio.

Figura 2. Classificao dos servios em nuvem.

Computao em nuvem: entendendo e implementando...

17

Modelo de negcios baseado em computao em nuvem


Existe, atualmente, um modelo de negcios por trs das nuvens pblicas baseado na venda de servios que so alocados dentro da nuvem. As diferenas para a venda de servios fora da nuvem que esses servios podem ser contratados temporariamente e possuem elasticidade de capacidades. At ento, ao se contratar a hospedagem de algum servio, como um host virtual ou um banco de dados, pagava-se de acordo com planos anuais ou relacionados com alguma mtrica, tal como a capacidade de processamento e memria do host contratado, a quantidade de espao para armazenamento, entre outras. Caso o cliente no utilizasse esses recursos durante o ano todo, eles ficavam ociosos. Os servios em nuvem permitem que o cliente utilize os recursos por perodos de tempo, de acordo com o que ele necessita. Normalmente, os servios so tarifados por horas de uso. Desta maneira, o cliente acaba no pagando pela ociosidade, mas apenas pelo tempo em que efetivamente utiliza os recursos. Ainda, muitas vezes, o cliente pagava por determinado recurso, mas no o utilizava em sua totalidade. O dimensionamento de recursos era difcil, uma vez que o cliente deveria prever o fornecimento do servio nas situaes de sobrecarga e, como essas situaes no representam a maior parte do tempo de uso, o cliente acabava subutilizando o servio contratado. A elasticidade a caracterstica que permite o ajuste de capacidades dos recursos de maneira bem verstil. Se um cliente necessita de um servio o ano todo, mas possui demanda alta apenas durante um ms no ano, possvel que ele aumente a capacidade da infraestrutura apenas no ms de sobrecarga. Assim, ele pagar pelo baixo uso durante todo o ano e pelo alto uso apenas durante o ms discrepante. No h desperdcio financeiro nem de recursos computacionais. Esse modelo chamado de pague pelo uso.

Principais provedores de servios em nuvem


Existe, atualmente, uma grande quantidade de provedores de servios em nuvem. Isso explicado pelo investimento que os provedores de hospeda-

18

Embrapa Informtica Agropecuria. Documentos, 116

gem fizeram e esto fazendo no sentido de capacitar suas estruturas para fornecimento de servios utilizando essa tecnologia. O que deve ser salientado que esses provedores podem ser classificados segundo as categorias de servios fornecidos, conforme discutido na seo Classificao dos servios em nuvem. Assim, alguns desses provedores esto voltados ao fornecimento de servios como infraestrutura, outros como softwares e outros como plataforma. Existe ainda o caso de provedores que fornecem mais de um tipo de servio na nuvem, de acordo com suas estruturas. Nesta seo sero apresentados alguns provedores e as caractersticas de seus servios, com o intuito de exemplificar esse novo modelo de negcios. Amazon Web Services (AWS) A empresa Amazon oferece uma diversidade de servios em nuvem, sendo que os mais conhecidos so o Elastic Compute Cloud (EC2) e o Simple Storage Service (S3). O EC2 prov infraestrutura para os clientes na forma de capacidade computacional reconfigurvel. Um cliente da EC2 pode escolher as configuraes de sua infraestrutura, tal como capacidade dos hosts e quais os sistemas operacionais. J o S3 um servio de armazenamento acessado por meio de uma interface web. A tarifao praticada pela Amazon um grande exemplo do modelo pague pelo uso. Em suas polticas, a empresa descreve o Service Level Agreement (SLA), direitos e deveres, mas sem exigir nenhum tipo de contrato. Basta ser um usurio cadastrado, com um carto de crdito, para que a cobrana pelo servio solicitado seja possvel. O usurio escolhe os seus servios em um sistema web, sendo taxado apenas pelo que utilizou. A tarifao praticada no EC2 baseada em hora por instncia. Uma instncia um tipo de servio solicitado, como um computador com determinada configurao. Por exemplo, a Figura 3 descreve os valores e os tipos de instncias que o cliente pode solicitar. Como pode-se observar, o EC2 fornece hosts com sistemas Linux/Unix e Windows, categorizados em Small, Large e Extra Large. Essas categorias se diferenciam pela capacidade de processamento e de memria de cada host. Existe ainda uma categoria Micro que permite a instanciao de hosts com baixa capacidade, para pequenos testes. As demais categorias,

Computao em nuvem: entendendo e implementando...

19

Figura 3. Tarifao da Amazon para EC2.


Fonte: Amazon (2011a).

Hi-Memory, Hi-CPU e Cluster representam servios de infraestrutura para clientes que requerem altas performances. Para o servio S3, a Amazon tarifa de acordo com a quantidade de dados armazenada. A Figura 4 mostra a tarifao praticada. A coluna Reduced Redundancy Storage um servio de armazenamento para dados no crticos, sendo, portanto, mais barato que o padro do S3 que fornece redundncia de dados por padro.

20

Embrapa Informtica Agropecuria. Documentos, 116

Figura 4. Tarifao da Amazon para S3.


Fonte: Amazon (2011b).

Google (App Engine e Docs) O Google outro importante provedor de servios em nuvem, destacando-se pelo fornecimento de SaaS e PaaS. Como SaaS possui a conhecida famlia de softwares Google Docs, capaz de prover uma sute completa de ferramentas de escritrio. Como PaaS disponibiliza o Google App Engine. Esse servio fornece uma plataforma para que o usurio desenvolva seus aplicativos e os executem na prpria infraestrutura do Google. Embora seja um servio do tipo PaaS, aps desenvolvida uma aplicao, o usurio contar com servios semelhantes aos fornecidos como IaaS, ou seja, no dever se preocupar com hosts para hospedagem de sua aplicao nem com questes de escalabilidade. O modelo utilizado pelo Google o pague pelo uso, sendo que o uso inicial gratuito e a taxao ocorre somente aps o usurio atingir determinadas mtricas relativas quantidade de armazenamento e trfego de rede (GOOGLE, 2011). O uso gratuito inclui 500 MB de espao para armazenamento, processamento e largura de banda consideradas suficientes para suportar uma aplicao com at 5 milhes de visualizaes de pginas por ms. Windows Azure O Windows Azure uma plataforma da Microsoft (PaaS) que permite aos usurios o desenvolvimento de aplicaes no Visual Studio, .NET Framework, alm de PHP, Java e Ruby, sem se preocupar com questes sobre o gerenciamento de rede e infraestrutura na qual essas aplicaes

Computao em nuvem: entendendo e implementando...

21

executaro. O Windows Azure oferece aos desenvolvedores a funcionalidade de compilar, hospedar e gerenciar aplicativos completos utilizando uma nuvem da prpria Microsoft (MICROSOFT, 2011). Assim como esses provedores, mais conhecidos no contexto da computao em nuvem, vrios outros fornecem servios semelhantes, como o caso da IBM, HP, Rackspace, RedHat, Oracle, Salesforce e outros.

Nuvem privada provendo servio de infraestrutura (IaaS)


A computao em nuvem criou uma srie de oportunidades alm do modelo de negcios discutido. Embora seja uma tendncia comercial para provedores de servios na internet, ela tem possibilitado que departamentos de TI revejam suas estruturas computacionais. O uso de uma nuvem privada, provendo infraestrutura como servio (IaaS) dentro de um departamento de TI, permite que o uso dos recursos computacionais sejam otimizados, bem como facilita o gerenciamento dos servios. Deste modo, alm de ser explorado comercialmente por diversas empresas que vendem servios na nuvem, esse paradigma representa uma nova maneira de se fornecer servios dentro de uma organizao, utilizando sua prpria estrutura de TI. Para esse objetivo, existem conjuntos de ferramentas capazes de prover todas as funcionalidades necessrias para o estabelecimento de uma nuvem privada. Analisando as ferramentas Open Source, de uso gratuito, quatro delas se destacam e so adotadas como referncias na comunidade de software livre: Euclyptus (EUCALYPTUS, 2011), OpenNebula (OPENNEBULA, 2011), Nimbus (NIMBUS, 2011) e OpenStack (OPENSTACK, 2011). Essas ferramentas permitem que uma nuvem privada seja estabelecida com diversos recursos. No entanto, cada uma possui determinadas caractersticas que permitem diferenci-las de acordo com o perfil de uso da nuvem privada a ser criada. Uma comparao detalhada entre as trs primeiras pode ser observada em (SEMPOLINSKI; THAIN, 2010). Segundo esses autores, alguns fatores so muito importantes nas anlises desses conjuntos de ferramentas, entre eles a capacidade de customizao da nuvem, o grau de transparncia na interface com o usurio e a distncia existente na interao do usurio

22

Embrapa Informtica Agropecuria. Documentos, 116

com o administrador da nuvem. Por capacidade de customizao deve-se entender a flexibilidade que cada conjunto de ferramentas d ao administrador para poder configurar a nuvem de modo que atenda todas as suas necessidades. O grau de transparncia diz respeito ao nvel de abstrao do uso da nuvem em relao aos usurios. Para o usurio final dos servios que esto na nuvem, quanto mais abstrata esta parecer, melhor ser o servio, visto que muitos usurios no querem nem necessitam conhecer detalhes estruturais e tcnicos da infraestrutura. E, quanto distncia entre o usurio e o administrador, os autores consideram que a utilizao desses conjuntos de ferramentas para o estabelecimento de uma nuvem privada deve aproximar o usurio do administrador de modo a facilitar o fornecimento de servio, estabelecendo certo nvel de confiana entre as duas partes, confiana esta que no existe no contexto da comercializao de servios (nuvens pblicas). Tomando esses fatores como base e outras caractersticas como a filosofia do conjunto de ferramentas, aspectos sobre a configurao de rede do ambiente, aspectos de segurana interna e do usurio, tais autores expressaram o que consideram o cenrio ideal para cada um desses conjuntos de ferramentas. Essas informaes so mostradas na Tabela 1. Como possvel observar, o cenrio considerado ideal para o uso do Eucalyptus aquele com um grande grupo de mquinas e um grupo de usurios relativamente confiveis. Essa confiabilidade est pautada na forma de uso do sistema. Por exemplo, usurios internos de uma organizao so considerados mais confiveis que os usurios pblicos de uma nuvem onde os servios so vendidos. mais provvel que abusos ocorram na infraestrutura de uma nuvem pblica do que em uma nuvem privada, pois nesta ltima menos comum a presena de um usurio malicioso. No caso do OpenNebula, a indicao para um grupo menor de mquinas e usurios altamente confiveis. Esta ltima recomendao ocorre devido ao modo como o conjunto de ferramentas do OpenNebula opera, principalmente referente aos nveis de acesso nas mquinas, de forma que, se um usurio no confivel, ele pode representar alto risco para toda a infraestrutura da nuvem. No caso do Nimbus, a indicao para um ambiente totalmente voltado pesquisa cientfica. Uma de suas vantagens utilizar uma estrutura de certificao digital, garantindo maior controle sobre os usurios. Alm desses trs conjuntos de ferramentas bem conhecidos na comunidade open source, existe um quarto, denominado OpenStack, que ser

Computao em nuvem: entendendo e implementando...

23

Tabela 1. Comparao entre os conjuntos de ferramentas Eucalyptus, OpenNebula e Nimbus.

Eucalyptus
Philosophy Mimic Amazon EC2

OpenNebula
Private, highly customizable cloud Basically everything

Nimbus
Cloud resources tailored to scientific researchers Many parts except for image storage and globus credentials On individual compute node Fairly tight, unless deploying a fully private cloud. Users x509 credential is registred with cloud Deploy for less to semi-trusted users family with x509 Dhcpd on every node and Nimbus assigns MAC

Customizability

Some for admin, less for user

DHCP Internal Security User Security

On cluster controller Tight. Root required for many things Users are given custom credentials via a web interface Large group of machines for buch of semi-trusted users Dhcpd on cluster controller

Variable Looser, but can be made more tight if needed User logs into head (unless optional front-end used) Smaller group of machines for highly trusted users Admin must set manually but has many options

An Ideal Setting Network Issues

Fonte: Sempolinski e Thain (2010), adaptada pelo autor.

discutido mais adiante. Trata-se de um conjunto de ferramentas que tem ganhado notoriedade, principalmente com sua adoo como plataforma base de nuvem computacional na distribuio Ubuntu. Portanto, a opo por um ou outro conjunto de ferramentas depende da anlise de diversos aspectos. Dentro dos aspectos tcnicos, deve-se analisar, principalmente, qual a dimenso da utilizao dos servios em nuvem, o nvel de administrao que se deseja e qual o perfil dos usurios, mesmo dentro de uma organizao. Entendendo melhor o interior da nuvem Os conjuntos de ferramentas apresentados anteriormente permitem a criao de uma nuvem computacional dentro do modelo IaaS. O termo

24

Embrapa Informtica Agropecuria. Documentos, 116

conjunto de ferramentas busca deixar claro que no se trata de apenas uma ferramenta, capaz de prover todos os recursos necessrios. Nesse contexto, como bem definem Sempolinski e Thain, trata-se de uma pilha de ferramentas cuja interao essencial para o resultado final. Assim sendo, possvel identificar nas ferramentas de cdigo aberto seis componentes bsicos: hardware e sistema operacional, rede, monitor de mquina virtual, imagem de disco virtual, o frontend com o usurio e o prprio framework de nuvem. Uma vez que a nuvem utilizar instncias de mquinas virtuais, importante verificar o tipo de hardware empregado para se determinar o tipo de virtualizao (CINTRA, 2010). Dependendo do processador disponvel, possvel utilizar virtualizao total, auxiliada por hardware, ou empregar paravirtualizao. A rede refere-se ao modo como esta configurada dentro de cada ambiente. Cada um dos conjuntos de ferramentas citados possui determinadas caractersticas de configurao. No entanto, importante entender como ocorre a distribuio de endereos IPs para as mquinas fsicas, como o controle de endereo fsico das mquinas virtuais (MAC Address) e como ocorre a resoluo de nomes (DNS). O monitor de mquina virtual, tambm conhecido como hypervisor, diz respeito a qual sistema de hospedagem de mquinas virtuais ser utilizado. Essa escolha no livre e cada um dos conjuntos de ferramentas citados tem suporte a determinados monitores de mquinas virtuais.Por exemplo, o Eucalyptus e o OpenNebula que possuem suporte a Xen, KVM e VMWare, enquanto o Nimbus apenas suporta Xen e KVM. Neste ponto importante ficar clara a distino entre os conceitos de virtualizao e nuvem computacional. A virtualizao uma tecnologia utilizada para o estabelecimento de uma nuvem, no sendo, portanto, sinnimos. Uma nuvem no estabelecida por um nico software capaz de prover todas as funcionalidades esperadas, mas sim por um conjunto de ferramentas das quais a virtualizao apenas uma dessas ferramentas. Ainda vale considerar que, embora as descries desses conjuntos de ferramentas afirmem haver suporte para diversos monitores de mquinas virtuais, muitas vezes a documentao no mostra como a implementao (configurao) deve ser realizada para se utilizar determinado monitor. As imagens de disco virtual possuem toda a instalao de um sistema operacional e do origem a uma mquina virtual instanciada na nuvem.

Computao em nuvem: entendendo e implementando...

25

Em uma ocasio de uso comum, o disco virtual criado durante o processo de criao da prpria mquina virtual. No entanto, para uma nuvem computacional, diversas mquina virtuais sero instanciadas e descartadas a qualquer momento, tornando-se invivel que esses discos virtuais sejam criados neste momento e o sistema operacional instalado para que a instanciao ocorra. Assim, os frameworks de computao em nuvem normalmente trabalham com um repositrio de discos virtuais. Ao ser requisitada uma mquina virtual, uma imagem do repositrio copiada para a mquina fsica onde a instncia executar e determinadas modificaes so realizadas, como por exemplo a adio de uma rea de troca para memria virtual (swap). A imagem do repositrio chamada de modelo (template) enquanto a imagem adaptada, que executa na mquina fsica, chamada de imagem de tempo de execuo (runtime image). O frontend o ponto pelo qual o usurio acessa a parte de fornecimento de servios da nuvem. a partir dele que o usurio pode requisitar uma mquina, podendo especificar parmetros de configurao. Ele tambm responsvel por realizar controle de credenciais do usurio e gerenciar o uso dos recursos da nuvem, controlando as requisies de acordo com a capacidade fsica da nuvem. Por fim, o ltimo componente o prprio framework, responsvel por manter a interao de todos os outros componentes. ele quem recebe as entradas do frontend, obtm a imagem do repositrio de discos virtuais, define a mquina fsica onde essa instncia ser alocada, avisa o monitor de mquina virtual desse n para iniciar uma mquina virtual e passa informaes para a configurao de rede para a mquina virtual sendo instanciada. A Figura 5, retirada de (SEMPOLINSKI; THAIN, 2010), mostra a arquitetura de um sistema genrico de nuvem computacional, destacando cada um dos componentes anteriormente discutidos.

26

Embrapa Informtica Agropecuria. Documentos, 116

Figura 5. Componentes de uma arquitetura genrica de computao em nuvem: (1) hardware e sistemas operacionais; (2) rede; (3) monitor de mquina virtual; (4) imagens de discos virtuais; (5) frontend; (6) o prprio framework.

O conceito de Service Orchestration


Os frameworks at ento discutidos so capazes de prover as funcionalidades para o estabelecimento de uma nuvem IaaS. Esse tipo de servio tem por objetivo principal prover infraestrutura para os usurios e no aplicaes online. Por exemplo, se um usurio possui a demanda por um servidor com uma capacidade relativamente grande para executar uma aplicao por um dia, tem-se um cenrio ideal, cuja resoluo se dar de maneira rpida utilizando uma nuvem IaaS. No entanto, os frameworks analisados no tangem a aplicao do usurio em si. A nuvem proporcionar a infraestrutura rapidamente, de forma que o usurio no dever se preocupar com a aquisio de um computador, alocao de espao fsico para posicion-

Computao em nuvem: entendendo e implementando...

27

-lo e instalao do sistema operacional. No entanto, fica ao seu encargo a configurao das aplicaes, mesmo que sejam aplicaes bsicas. nesse contexto que o conceito de Service Orchestration ganha relevncia. No exemplo anterior, o usurio obteve a parte de infraestrutura e deveria configurar sua aplicao. Tomando como exemplo que essa aplicao utilize um banco de dados, o conceito de orquestrao de servios surgiu justamente para facilitar esta implantao. Utilizando um framework de orquestrao de servios torna-se mais fcil a configurao e implantao deles, fazendo com que servios/aplicaes (como servidores web, banco de dados, sistemas de gerenciamento de contedo, etc) acompanhem a versatilidade do provisionamento de infraestrutura na nuvem IaaS. Assim, em uma nova leitura, um usurio poderia solicitar para a nuvem um servidor que possua um banco de dados e esse provisionamento ocorreria de forma direta, sem o usurio ter que se preocupar com a configurao do sistema gerenciador de banco de dados. Um exemplo de framework de orquestrao de servios em constante avano o Ensemble (ENSEMBLE, 2011), cujo nome ser futuramente alterado para Juju. Esse projeto, mantido pela Canonical, responsvel pelo desenvolvimento do Ubuntu Linux, baseado no uso de frmulas. As frmulas so conjuntos de instrues utilizados no s para a implantao de um servio, mas para seu gerenciamento de modo geral. Por exemplo, existem frmulas para o estabelecimento de um banco de dados PostgreSQL e para o gerenciador de contedos Drupal. As frmulas permitem tambm que esses dois servios sejam interligados de maneira simples e prtica. Enquanto as nuvens IaaS so inicialmente entendidas como facilitadoras do provisionamento de infraestrutura de TI, a orquestrao de servios pode ser entendida como uma facilitadora da gerncia da nuvem, permitindo que melhores prticas sejam compartilhadas e reusadas na nuvem. O prprio Ensemble conta com um repositrio de frmulas prontas desenvolvidas por profissionais de desenvolvimento e operao (DevOp). Essas frmulas podem ser utilizadas diretamente ou alteradas para refletir determinadas necessidades. Com tais funcionalidades possvel otimizar ainda mais o tempo, pois, alm do pronto estabelecimento de uma infraestrutura computacional, tal como um servidor, pode-se, com a mesma versatilidade, estabelecer determinados servios dentro dessa prpria infraestrutura de nuvem.

28

Embrapa Informtica Agropecuria. Documentos, 116

Computao em nuvem e a TI Verde


Alm de todas as caractersticas tcnicas que a computao em nuvem pode proporcionar para gestores de TI e usurios, conveniente lembrar que existe uma relao entre ela e o conceito de TI Verde. A TI Verde reflete a preocupao com o desenvolvimento sustentvel das empresas, considerando as relaes entre a tecnologia e seus produtos com o meio ambiente, considerando desde materiais utilizados para produo de componentes, descartes, reciclagem, a matria prima utilizada para fabricao desses produtos, at a poluio gerada nesse processo e o impacto do consumo de energia, muito comum se tratando de dispositivos eletrnicos. Pautar as estratgias de negcio tendo a sustentabilidade como um dos quesitos bsicos tem se tornado quase uma obrigao para diversas empresas. E, no mbito da Empresa Brasileira de Pesquisa Agropecuria (Embrapa), tal caracterstica tida como essencial, visto que a sustentabilidade, em suas atividades, considerada como sua misso. No entanto, executar suas atribuies sustentavelmente requer adequaes e controle para que esse requisito no passe a ser apenas terico. Como bem destaca Torres (2008), a implantao de Sistemas de Gesto Ambiental por parte das organizaes deve ser feita considerando-se, principalmente, os recursos e estruturas existentes para que no fique em descompasso com a sua realidade e seja simplesmente uma mera declarao de intenes. Em outras palavras, deve ser um processo no abrupto e que no interfira drasticamente no andamento das atividades de uma organizao. Por tais consideraes, pode-se afirmar que a computao em nuvem uma das maneiras pela qual a tecnologia da informao pode se tornar mais sustentvel. Primeiramente pela otimizao no uso dos recursos computacionais, de modo a evitar ociosidade e por conseguinte evitar o desperdcio de hardware. Por outro, reflete diretamente no consumo de energia. A computao em nuvem permite que datacenters sejam reorganizados de modo diminuir a quantidade de mquinas e, consequentemente, a energia gasta com sistemas de refrigerao. Alm disso, existem atualmente tecnologias capazes de otimizar ainda mais esses usos. As placasme mais atuais possuem BIOS capazes de aceitar conexes remotas e efetuar o desligamento ou a ligao de um host. Aliando-se tal tecnologia

Computao em nuvem: entendendo e implementando...

29

com a caracterstica de elasticidade, possvel que em situaes de ociosidade dentro da nuvem (o que j um ganho em relao ociosidade fora da nuvem) seja possvel desligar mquinas que no estejam sendo utilizadas e relig-las quando sob novas demandas.

Tendncias open source e projetos Canonical


Considerando a comunidade open source de desenvolvimento, comum se encontrar vrios projetos e ferramentas para um mesmo nicho de aplicao. Essa concorrncia, de certo modo, faz com que essas ferramentas evoluam mais rapidamente. No caso das nuvens computacionais, os softwares utilizados para sua criao e gerncia, denominados pilha de softwares (stack) uma vez que no apenas um nico programa, mas um conjunto que opera colaborativamente, tambm se enquadram nesse cenrio. So vrios os conjuntos de softwares que se pode utilizar para o estabelecimento de uma infraestrutura como servio (IaaS), alguns deles citados anteriormente. A escolha por um ou outro, muitas vezes, pautada nas caractersticas tcnicas, de forma que o escolhido possui todas as funcionalidades requisitadas pelo usurio. No cenrio das nuvens computacionais, pelo menos no cenrio atual, essa definio de qual conjunto de softwares utilizar entra, em certo ponto, na esfera poltica da comunidade open source. Embora existam vrios conjuntos de softwares, grande parte da evoluo de cada uma dessas ferramentas ainda est por vir. Trata-se de um campo bastante novo em que grande parte das funcionalidades esto em desenvolvimento e ganharo proporo nos prximos anos. Logo, algumas consideraes alm das caractersticas tcnicas devem ser ponderadas para a seleo de um conjunto de ferramentas para estabelecer uma nuvem privada. Uma dessas consideraes uma viso do atual estgio de desenvolvimento das distribuies Linux. No existe, atualmente, uma maneria de se determinar qual a distribuio Linux mais utilizada. O que existe so informaes que podem refletir a popularidade no uso de cada distribuio. O Google Insights um exemplo que possibilita o acesso a esse tipo de informao, mostrando qual

30

Embrapa Informtica Agropecuria. Documentos, 116

o volume de buscas ocorreu para um determinado termo na base do Google. Comparando o comportamento nas buscas pelos nomes de cinco distribuies bem conhecidas, estimadas como as mais utilizadas atualmente, pode-se verificar que o Ubuntu Linux figura como a mais popular. A Figura 6 mostra a comparao entre as distribuies Ubuntu, Debian, Mint, CentOS e Slackware (constantes em vrias pesquisas como as mais utilizadas atualmente). Os valores das ordenadas representam uma porcentagem em relao ao nmero total de buscas considerando todos os termos (valor normalizado). Os Totais indicam uma mdia para o perodo considerado.

Figura 6. Informaes relativas popularidade das distribuies indicadas, segundo o volume de pesquisas no site de busca Google (grfico gerado pelo Google Insights). Ubuntu a distribuio mais popular.

Sendo o Ubuntu a distribuio mais popular atualmente, convm, nesse ponto, analisar alguns fatores relativos ao seu desenvolvimento, fatores estes que fazem parte da esfera poltica mencionada e so importantes na deciso de qual pilha de softwares utilizar. Embora exista toda uma comunidade colaborativa, empenhada nas melhorias do Ubuntu, seu desenvolvimento mantido pela Canonical. Trata-se de uma empresa que, conforme consta em sua apresentao, trabalha com a comunidade open source para entregar o Ubuntu gratuitamente, alm de vender servios que auxiliam pessoas e negcios a reduzirem custos ao redor do mundo, aumentar a eficincia e elevar a segurana (CANONICAL, 2011). A Canonical responsvel tambm por diversos outros projetos de softwares, tanto livres, como o Ensemble, quanto comerciais, como o Landscape, um gerenciador

Computao em nuvem: entendendo e implementando...

31

de hosts. Nesse sentido, existe por parte dela, um esforo e foco em determinados softwares, o que pode ser considerado um respaldo de qualidade quando analisando a evoluo do Ubuntu nos ltimos anos. Entre esses softwares est, por exemplo, o KVM (KVM, 2011), tomado como o sistema padro de virtualizao do Ubuntu. Assim como o KVM, a Canonical dedica esforos em outros softwares que ela considera como o padro em determinada rea dentro da distribuio Ubuntu. No caso das pilhas de softwares para construo de nuvens privadas, a Canonical adotava o Eucalyptus como pilha padro. No entanto, por questes gerenciais, de compatibilidade de mtodos de desenvolvimento de projetos e tambm tcnicas, a partir da verso 11.10, a Canonical adotar o OpenStack como pilha padro para nuvem. Alm disso, projetos relacionados, como o Ensemble (Juju), tero seu foco voltado para a compatibilidade com o OpenStack. Por todas essas consideraes, tanto no contexto poltico quanto no tcnico, fica definido que o presente trabalho utilizar o Ubuntu Linux, sendo a nuvem IaaS baseada no OpenStack. Alm disso, o KVM ser utilizado como hypervisor devido tanto sua tendncia de uso com o OpenStack quanto a este ser o hypervisor padro da Canonical adotado no Ubuntu. Pretende-se que, com tal deciso, este trabalho fique alinhado ao que a Canonical est por desenvolver e, consequentemente, com a evoluo que os softwares por ela adotados como padro no Ubuntu venham a trilhar.

Aspectos prticos: implementao e testes


Os aspectos prticos envolvem toda a parte do estabelecimento do ambiente de nuvem, desde as definies de sistemas operacionais e ferramentas at a instalao e configurao de cada item da pilha de softwares. Por fim, alguns testes sero realizados com a estrutura montada a fim de esclarecer como a nuvem se comportaria perante alguns cenrios de demanda de servios.

32

Embrapa Informtica Agropecuria. Documentos, 116

OpenStack
O OpenStack um conjunto de ferramentas livres que possibilita a criao de uma nuvem computacional IaaS, incluindo servios de armazenamento de dados. Os maiores contribuidores, para que o OpenStack atingisse o grau de desenvolvimento atual, foram a NASA e a empresa Rackspace. A partir dessas duas entidades formou-se o OpenStack e, posteriormente, um consrcio que conta com diversos outros participantes, como a International Business Machines (IBM) , Dell, Citrix e Canonical. O OpenStack organizado em trs famlias de servios: Compute Infrastructure (Nova), Storage Infrastructure (Swift) e Imaging Service (Glance). Cada uma dessas famlias possui um ou mais utilitrios responsveis por desempenharem determinada funo dentro da nuvem. Compute Infrastructure (Nova) Esse conjunto de ferramentas o controlador da nuvem. Todas as atividades necessrias para que um instanciamento de mquina virtual ocorra so gerenciadas por essa entidade como, por exemplo, recursos computacionais, rede, autorizao e escalabilidade. No entanto, trata-se de uma plataforma de gerenciamento, no existindo nenhuma capacidade de virtualizao. Todo o processo de virtualizao no OpenStack possibilitado por algum dos hypervisors suportados, de modo que a gerncia do processo de virtualizao executado na plataforma Nova. Essa gerncia baseada na API da biblioteca libvirt, utilizada por diversos sistemas de virtualizao. Segundo a documentao atual do OpenStack, so suportados o Xen, XenServer, KVM, UML e Hyper-V. Dentro do conjunto OpenStack Infrastructure Compute, tem-se as seguintes ferramentas: API Server (nova-api) O API Server responsvel por traduzir as chamadas do mundo externo, como requisies de usurios, para aes dentro da nuvem, permitindo que atividades de gerenciamento sejam realizadas. Esse gerenciamento realizado por meio de chamadas de Web Services utilizando a API EC2,

Computao em nuvem: entendendo e implementando...

33

como nos sistemas da Amazon. O API Server se comunica, ento, com outros componentes da infraestrutura da nuvem utilizando um modelo de troca de mensagens implementado pelo Message Queue. Message Queue (rabbit-mq server) A comunicao entre os componentes de controle da infraestrutura de nuvem do OpenStack ocorre pelo protocolo AMQP (Advanced Message Queue Protocol). Esse componente controla, portanto, a troca de mensagens entre as outras ferramentas do OpenStack que operam colaborativamente para o gerenciamento da nuvem. Compute Workers (nova-compute) Esse componente trata do gerenciamento do ciclo de vida das instncias. Sua funo receber mensagens de gerenciamento de ciclo de vida de instncias, pelo Message Queue, e realizar as operaes necessrias. Dentro de uma infraestrutura de nuvem OpenStack podem existir diversos Compute Workers. Em suma, trata-se do controle principal que deve existir em cada n de processamento da infraestrutura. Uma instncia poder ser executada em qualquer host que possua esse componente. A escolha por qual host da infraestrutura executar uma instncia depender do algoritmo de escalonamento sendo utilizado no Scheduler, outro componente discutido a seguir. Network Controller (nova-network) Trata da configurao de rede das mquinas da infraestrutura, realizando aes como a alocao de endereos IP para as mquinas virtuais, configuraes de Virtual Local Area Network (VLAN) para os chamados projetos que executam na nuvem, implementao de grupos de segurana e configuraes de redes para os ns da nuvem.

34

Embrapa Informtica Agropecuria. Documentos, 116

Volume Worker (nova-volume) Esse componente trata do gerenciamento de volumes Logical Volume Manager (LVM). O LVM uma forma de se organizar informaes dentro de um disco. Em vez de se utilizar uma partio com determinado sistema de arquivos, cria-se uma partio do tipo LVM e dentro dela permitido criar-se volumes, com diferentes tamanhos e sistemas de arquivos. Assim, torna-se mais verstil a utilizao do espao em disco podendo-se criar, apagar, redimensionar e duplicar os chamados volumes LVM, dentre outras aes. Uma instncia de mquina virtual no OpenStack, assim como outros softwares de nuvem, possui dois tipos de armazenamento: no-persistente e persistente. Quando um instncia iniciada, existir um sistema de arquivos referente ao sistema operacional dessa instncia. Todo dado armazenado nesse sistema de arquivos considerado no-persistente uma vez que, ao se desligar essa instncia, todos os dados se perdero. O Volume Worker existe justamente para possibilitar o armazenamento de dados de modo persistente. Ele permite que volumes sejam criados e vinculados a uma instncia, de modo que todo dado gerado durante seu ciclo de vida possa ser armazenado nesse volume e recuperado posteriormente. O OpenStack trabalha com o LVM para criao dos volumes persistentes utilizados pelas instncias e com o protocolo iSCSI para montagem remota. Scheduler (nova-scheduler) O Scheduler executa na forma de um daemon sendo responsvel por mapear as chamadas geradas no API Server (nova-api) para os componentes apropriados do OpenStack. Assim, uma ao de usurio primeiramente interpretada pelo API Server e uma ou mais chamadas Web Services so criadas. O Scheduler, ento, ser responsvel por mapear essas chamadas para aes dentro da infraestrutura da nuvem, comunicando-se com os componentes necessrios para que a ao do usurio seja implementada. Ele se utiliza dos recursos disponveis na infraestrutura se comunicando com os componentes nova-compute, nova-network e nova-volume para aloc-los. Sua deciso pode ser baseada em diversos

Computao em nuvem: entendendo e implementando...

35

fatores como carga de processamento, distncia fsica da zona de disponibilidade*, memria, arquitetura da CPU, etc. Os algoritmos de escalonamento so: chance: o host para execuo da instncia escolhido aleatoriamente entre as zonas de disponibilidade; availability zone: similar ao chance, mas o host escolhido aleatoriamente dentro de uma zona de disponibilidade; simple: o host ser escolhido com base na menor carga de processamento. Storage Infrastructure (OpenStack Object Storage - Swift) O Swift uma infraestrutura de armazenamento de dados na forma de objetos. Deve ficar claro que o Swift diferente do nova-volume, um componente do OpenStack responsvel por possibilitar que discos virtuais sejam utilizados nas instncias. Considerando o que foi explicado sobre a caracterstica de um servio na nuvem, o Swift pode ser entendido como um sistema capaz de fornecer armazenamento como servio, semelhante ao S3 da Amazon. Uma vez que seu objetivo fornecer armazenamento, diversas caractersticas so inerentes de sua utilizao, como por exemplo, gerenciamento de redundncia e failover, capacidade de servir grficos e vdeos (stream), escalabilidade, dentre outras. Trata-se, portanto, de uma maneira de se armazenar dados na nuvem com diversas caractersticas de suporte e otimizao relativa a tal atividade, buscando abstrair para o usurio toda a complexidade do processo de custdia da informao armazenada. Imaging Service (Glance) O Glance um servi o de pesquisa e recuperao de imagens de mquinas virtuais. Alm da tarefa de gerenciamento, dentro do OpenStack ele

Zonas de disponibilidade correspondem a clusters separados dentro de uma nuvem, inclusive


geograficamente, a fim de se manter determinada redundncia e disponibilidade.

36

Embrapa Informtica Agropecuria. Documentos, 116

pode ser entendido como o repositrio das imagens das mquinas virtuais. Em relao ao armazenamento, existem 4 diferentes mecanismos que podem ser utilizados pelo Glance: Armazenamento local (no host que executa o Glance). OpenStack Object Store para armazenamento das imagens. S3 Storage diretamente. S3 Storage utilizando o Object Store como intermedirio para acesso ao S3. Uma vez que o Swift prov armazenamento de forma independente do fornecimento de infraestrutura de processamento como servio, o mais comum que o Glance utilize o mecanismo de armazenamento local. Assim, as imagens das mquinas virtuais so simplesmente armazenadas no sistema de arquivos do host que o executa.

KVM
O KVM, Kernel-based Virtual Machine (KVM, 2011) uma soluo de virtualizao para sistemas Linux que utilizam processadores com arquitetura x86 e possuem extenses de virtualizao em hardware, como o caso das tecnologias Intel VT e AMD-V. O KVM um mdulo do kernel Linux que prov a infraestrutura de ncleo necessria para se utilizar virtualizao. O componente do KVM interno ao kernel do Linux est inserido neste desde a verso 2.6.20. No entanto, o KVM por si s, no permite que todas as atividades necessrias para se criar um sistema virtual sejam executadas. Para se criar mquinas virtuais que utilizem o KVM como hypervisor, necessrio a utilizao de outra ferramenta, denominada QEMU (QEMU, 2011). O QEMU um emulador e virtualizador de mquinas. Como emulador ele capaz de executar sistemas operacionais desenvolvidos para diferentes hardwares, como processadores ARM, em um PC comum, realizando traduo de chamadas de sistemas. Como virtualizador, o QEMU utiliza algum hypervisor, como o Xen ou KVM, para permitir a execuo, de fato, de uma mquina virtual.

Computao em nuvem: entendendo e implementando...

37

Conforme discutido, o KVM ser o hypervisor utilizado neste trabalho. Todas as instncias de mquinas virtuais executadas na nuvem o utilizaro como soluo de virtualizao.

Implementao de uma nuvem IaaS na Embrapa Informtica Agropecuria


Com o objetivo de testar a pilha de ferramentas do OpenStack, uma arquitetura foi elaborada. A infraestrutura fsica foi composta por 3 computadores que formam a nuvem e um computador utilizado como cliente. Todos os computadores da nuvem utilizavam como sistema operacional o Ubuntu Server 11.04 x86_64. O cliente utilizava a verso Desktop do Ubuntu 11.04. Para o cliente necessrio que seja instalado um ambiente grfico, possibilitando, assim, a criao das imagens. Arquitetura da nuvem processamento como servio A arquitetura elaborada apresentada na Figura 7. Os computadores utilizados foram organizados segundo as descries seguintes.

Figura 7. Arquitetura da nuvem da Embrapa Informtica Agropecuria: o servidor 1 executa diversos servios Nova sendo o n central; o servidor 2 um n de computao executando mquinas virtuais; o servidor 3 utilizado para testes de insero e remoo de hardware na nuvem.

38

Embrapa Informtica Agropecuria. Documentos, 116

Cliente: utilizado para gerar imagens e testar o acesso nuvem. Servidor 1: o n controlador da nuvem, sendo o ponto nico de acesso aos servios por ela fornecidos. Executa todos os componentes do OpenStack, como o nova-api, nova-compute, nova-network e nova-volume. Executa ainda o Glance, o repositrio de imagens das mquinas virtuais, e a Dashboard, uma interface facilitadora da interao usurio/ nuvem. Servidor 2: nesta organizao, utilizado como n de processamento. Trata-se de um host que executar instncias das mquinas virtuais at sua capacidade mxima em termos de memria e processamento. Servidor 3: este servidor utilizado para testes de realocao de hardware, ou seja, com o objetivo de simular a insero e remoo de hardware na estrutura da nuvem. A principal utilizao da nuvem computacional proposta para o rpido provisionamento de capacidade de processamento para o desenvolvimento de pesquisas agropecurias. A arquitetura prov a capacidade de se instanciar e liberar servidores de maneira muito verstil. Se um grupo de pesquisa necessita que determinado servidor seja estabelecido, este prontamente instanciado. Alm disso, um servidor virtual pode ser acessado por mais de um grupo. Por exemplo, se um determinado projeto de pesquisa envolve pesquisadores de diversos grupos diferentes, cada um poder acessar o servidor virtual que pertencer ao projeto. possvel, pela organizao da nuvem, que o acesso a cada servidor virtual seja configurado para refletir a participao de usurios de grupos distintos, cada qual com sua colaborao. A Figura 8 apresenta essa organizao, representando diferentes grupos participando de diferentes projetos de pesquisa. Embora cada grupo possua uma infraestrutura de rede independente, no mbito das pesquisas todos convergem para um ambiente nico e controlado, a nuvem privada. Arquitetura da nuvem armazenamento como servio Uma maneira simplista de se considerar uma pesquisa entender que se trata de atividade cujos resultados gerados, normalmente, so dados a serem armazenados. Outra caracterstica dessa arquitetura de nuvem permitir que dados resultantes de pesquisas possam ser facilmente

Computao em nuvem: entendendo e implementando...

39

Figura 8. Nuvem privada: diferentes grupos de pesquisa participando de diferentes projetos, todos executando em um ambiente nico, controlado e com recursos otimizados.

compartilhados entre os pesquisadores ou entre os grupos de pesquisa. Esses dados podem ficar armazenados na prpria nuvem, com controle de acesso e vrias caractersticas de segurana, tal como a redundncia automtica de dados. A Figura 9 apresenta a organizao implementada para o fornecimento de armazenamento como servio. O Swift o componente do OpenStack responsvel por prover armazenamento como servio. Seu funcionamento se d por meio de diversos ns que disponibilizam espao em disco para que dados sejam armazenados. Utilizando a mesma estrutura de hardware que prov processamento, uma vez que ambos os servios podem coexistir na mesma estrutura, foi implementado um sistema de armazenamento em nuvem. Esse sistema composto por um n de controle, que executa o componente Proxy do Swift, mais dois ns de armazenamento denominados containers. Os containers so componentes bsicos de armazenamento sendo independentes de

40

Embrapa Informtica Agropecuria. Documentos, 116

Figura 9. Armazenamento como servio: uso do Swift dentro da estrutura de nuvem proposta. Um Proxy para interao e ns de armazenamento para replicao de dados, todos em sincronia.

qualquer outro servio. Assim, o prprio Proxy, controlador, tambm um container. Toda a interao dos usurios ocorre com o Proxy por meio de utilitrios de linha de comando que permitem operaes como mostrar o estado do sistema de armazenamento, enviar arquivos e fazer o download de arquivos armazenados. O Swift opera conjuntamente com o Rsync, um sistema de sincronizao de arquivos, de modo que as modificaes realizadas pelos usurios so replicadas por toda a nuvem. O prprio modelo de armazenamento prov a caracterstica de redundncia de modo que sistemas como o RAID so desnecessrios e at mesmo no indicados para uso conjunto com o Swift. Em sua operao, o Swift utiliza um padro de acesso a disco que compreende o pior caso para sistemas RAID, de forma que a performance diminui rapidamente, principalmente para as configuraes RAID 5 e RAID 6. O Swift compreende, portanto, uma nova maneira de se oferecer a caracterstica de redundncia que sistemas RAID oferecem, com diversas outras caractersticas. O servio de armazenamento busca ao mximo abstrair do usurio as complicaes das tarefas de armazenamento consistente. Embora tenha sido utilizada apenas uma zona de disponibilidade, o Swift capaz de

Computao em nuvem: entendendo e implementando...

41

operar em diversas delas, instaladas em estruturas fsica e geograficamente diferentes, aumentando ainda mais as caractersticas de redundncia e disponibilidade. Caractersticas tcnicas de funcionamento A arquitetura proposta possui algumas caractersticas tcnicas de funcionamento importantes para o entendimento do processo de comunicao entre os hosts da nuvem e entre os usurios e as instncias virtuais. A nuvem possui uma rede prpria, com endereamento prprio. Embora o recomendado seja cada host da nuvem possuir duas interfaces de rede, possvel realizar uma implementao utilizando apenas uma interface, atuando em modo bridge. O host controlador possuir dois endereos IP, sendo um privado da nuvem, para comunicao com os outros ns, e um utilizado para acessos oriundos dos clientes. Assim, este segundo endereo o ponto de acesso por onde clientes da LAN acessaro a nuvem privada. O n controlador da nuvem atua como gateway. Todo o trfego de todas as instncias direcionado a esse n que tomar decises de roteamento. Assim, possvel que as instncias se comuniquem entre si e tambm possuam acesso internet. O OpenStack permite ainda que determinados endereos sejam reservados para determinadas instncias. Assim, possvel que uma instncia responda por um endereo da LAN como se fosse uma mquina desse domnio. Todo o direcionamento de trfego realizado pelo controlador que nesse caso realiza tradues de endereos (NAT). O componente responsvel por executar essas aes o nova-network. Em verses futuras ser possvel atribuir diferentes redes privadas para cada projeto dentro da nuvem, de modo que sejam completamente independentes. Outra caracterstica importante do OpenStack a abstrao de projeto. A criao de instncias est sempre vinculada a um projeto cadastrado no sistema. Assim, a criao de um projeto o passo inicial para o uso da nuvem. As alteraes subsequentes, como a criao de usurio e de instncias virtuais, estaro relacionadas a esse projeto. Essa organizao objetiva permitir que diversos projetos diferentes sejam executados simultaneamente na nuvem, como apresentado na Figura 8. Desta forma,

42

Embrapa Informtica Agropecuria. Documentos, 116

usurios diferentes podem ter acesso a instncias diferentes desde que o administrador do projeto autorize. Quanto ao acesso a uma instncia virtual, ele configurado durante o instanciamento da mquina. Para sistemas Linux possvel personalizar as imagens de modo que algumas aes sejam executadas durante o processo de carga da mquina virtual. Dentre essas aes est, por exemplo, a insero de uma chave pblica que permite ao usurio acessar a instncia por meio do protocolo SSH. A chave privada fornecida ao usurio por meio de comandos ou pela interface grfica. Para outros tipos de sistemas que possam ser virtualizados, como o Windows, necessrio utilizar agentes, no to comuns atualmente, dentro das instncias. No contexto do armazenamento de dados, o Swift no oferece atualmente opes de interface grfica para o usurio. O upload e download de arquivos para o sistema se d por meio de utilitrios de linha de comando. Atualmente o Swift no permite, por padro, o aninhamento de diretrios compondo uma hierarquia, tal como ocorre em sistemas de arquivos comuns. Os usurios devem utilizar containers e armazenar todos os arquivos nestas estruturas. As ltimas verses de teste do Swift esto permitindo, por meio de algumas configuraes, que essa hierarquia de diretrios seja simulada, de modo que o usurio possa fazer uso deste tipo de organizao, embora internamente o Swift continue utilizando o sistema de containers. Tecnicamente o Swift utiliza o Rsync para manter os dados sincronizados entre todos os ns. Quando uma modificao ocorre so executadas rotinas de sincronia entre os ns participantes da nuvem de armazenamento. O n controlador mantem estruturas denominadas Rings. Os Rings so mapeamentos entre arquivos/containers e localidades na nuvem. Desta forma, o n controlador (Proxy) consegue indexar onde est um arquivo, suas rplicas e o estado de cada rplica.

Testes
Esta seo discute os testes realizados com a arquitetura implementada.

Computao em nuvem: entendendo e implementando...

43

Consideraes gerais A verso do OpenStack inicialmente utilizada foi a Cactus. No entanto, algumas novas funcionalidades e, principalmente, correes, foram inseridas em uma nova verso denominada Diablo. Por se tratar de um conjunto de ferramentas em desenvolvimento, ambas as verses no so completamente estveis. Ainda, durante a implementao do ambiente, outra verso passou a ser foco de desenvolvimento, denominada Essex. Essa constante mudana dificulta a implementao, no sentido de que no possvel atualizar apenas parte das ferramentas para correes de determinados problemas, e limita as funcionalidades, uma vez que novas verses trazem novas caractersticas, mas normalmente so menos estveis que as anteriores. O que se buscou foi manter um ambiente funcional com o mnimo de estabilidade, mesmo que nem todas as funcionalidades estivessem presentes. Instanciamento e liberao de mquinas virtuais (linha de comando e interface) O instanciamento e liberao de mquinas virtuais compreendem as funcionalidades bsicas de uma nuvem IaaS, cujo servio oferecido infraestrutura de processamento. Essas tarefas puderam ser executadas tanto por meio de ferramentas de linha de comando quanto por meio da interface Web Dashboard. A ideia de que a criao de servidores pode ser executada de maneira muito rpida foi comprovada. Possuindo a imagem no repositrio Glance, basta um comando para que diversas mquinas virtuais sejam criadas em alguns minutos. euca-run-instances -n 10 -k chave -t m1.small ami-0000000f O comando anterior instancia 10 mquinas virtuais. O parmetro -k indica qual chave deve ser inserida nas mquinas para possibilitar o acesso via SSH. O parmetro -t indica o tipo da instncia. Nesse contexto, o tipo refere-se configurao da mquina virtual. O OpenStack traz algumas configuraes pr-cadastradas no sistema, sendo chamados flavors.

44

Embrapa Informtica Agropecuria. Documentos, 116

Essas configuraes podem ser alteradas pelos administradores para se criar novos flavors a fim de adequ-los com os tipos de mquinas virtuais que se deseja. A lista a seguir mostra as configuraes pr-definidas. m1.medium: Memory: 4096MB, VCPUS: 2, Storage: 40GB m1.large: Memory: 8192MB, VCPUS: 4, Storage: 80GB m1.tiny: Memory: 512MB, VCPUS: 1, Storage: 0GB m1.xlarge: Memory: 16384MB, VCPUS: 8, Storage: 160GB m1.small: Memory: 2048MB, VCPUS: 1, Storage: 20GB Assim, as mquinas criadas pelo comando anterior tero 2 GB de memria RAM cada, um processador e 20 GB de espao virtual em disco. Esse espao virtual voltil e indica a quantidade de dados que cada instncia virtual pode utilizar durante sua execuo. Alm da maneira convencional, possvel instanciar mquinas virtuais por meio da interface Web Dashboard, de maneira muito mais intuitiva. Basta clicar na imagem do repositrio, escolher qual o tipo de configurao, a quantidade de instncias e a chave de acesso, tudo de forma visual. A Figura 10 apresenta uma visualizao da parte de imagens da Dashboard, onde o usurio pode criar novas instncias. Do lado direito da figura mostrada a parte de seleo das configuraes da instncia que ser criada. Pode-se observar tambm que a Dashboard gerencia as instncias criadas, chaves de acesso e os volumes de armazenamento permanente. As novas verses da interface possibilitaro ao administrador monitorar o estado do hardware da nuvem, tal como a capacidade total de memria usada e disponvel, bem como quais hosts esto com maior carga de processamento. Montagem de volume persistente em mquina virtual Conforme j mencionado, as instncias possuem discos virtuais para armazenamento, o que significa que os dados so volteis. Ao ser liberada, uma instncia descarta qualquer dado que tenha sido armazenado em seu sistema de arquivos raiz. Para fornecer armazenamento persistente para as instncias, o OpenStack utiliza o componente nova-volume e permite que volumes de dados sejam montados nas instncias. Os dados armazenados nesses volumes so permanentes e podem ser utilizados posteriormente liberao de uma instncia. Os volumes so criados por meio do

Computao em nuvem: entendendo e implementando...

Figura 10. Dashboard: interface para interao com a nuvem capaz de executar diversas tarefas, como a criao de instncias virtuais.

45

46

Embrapa Informtica Agropecuria. Documentos, 116

LVM e so montados nas instncias por meio do protocolo iSCSI, via rede. A montagem de volumes nas instncias tambm pode ser realizada tanto por meio de ferramentas de linha de comando quanto por meio da Dashboard. O comando a seguir indica para a nuvem que o volume vol0000001 deve ser montado na instncia i-00000019, utilizando o dispositivo /dev/vdc. euca-attach-volume -i 0000001 i-00000019 -d /dev/vdc vol-

Embora o dispositivo seja indicado no comando (/dev/vdc), nem sempre possvel utilizar o mesmo dispositivo na instncia. Assim, pode ocorrer do kernel da instncia atribuir automaticamente outro dispositivo, diferente do/dev/vdc. Faz-se necessria uma verificao nas mensagens do kernel para se determinar a qual dispositivo o volume foi atribudo. Isso pode ser feito por meio do comando dmesg. Neste ponto, o volume persistente deve se tornar disponvel na instncia em questo. Para que seu uso seja possvel, necessrio mont-lo no sistema de arquivos local da instncia, da mesma maneira que ocorre com qualquer dispositivo de armazenamento. Embora grande parte do processo seja manual, o objetivo das novas verses de software para nuvem, principalmente os agentes a serem instalados nas imagens das mquinas virtuais, fazer com que esse processo seja automatizado. Pretende-se, por exemplo, que entradas sejam inseridas no arquivo de montagem de parties, o /etc/fstab, de modo que, durante o boot da instncia, volumes persistentes sejam montados automaticamente. Estas modificaes tornariam ainda mais verstil o gerenciamento de instncias e volumes. Um exemplo prtico de utilizao desse modelo para uma instncia que utiliza um banco de dados. Uma imagem virtual, com o banco de dados j instalado, instanciada e todos os dados referentes ao banco so armazenados em um volume persistente, montado automaticamente no boot do sistema. Em suma, as instncias virtuais em uma nuvem possuem um espao de disco voltil, indicado no flavor durante sua criao, e opcionalmente, um espao para armazenamento permanente por meio da montagem de volumes persistentes.

Computao em nuvem: entendendo e implementando...

47

Gerao e execuo de imagens personalizadas As imagens utilizadas na nuvem devem ser geradas previamente. Existem, atualmente, imagens prontas disponibilizadas na internet, como o caso das imagens do Ubuntu voltadas para uso em nuvens. Embora essas imagens possuam todos os softwares necessrios para customizao de uso em nuvens, so apenas a instalao bsica do sistema operacional. Uma das caractersticas importantes do OpenStack permitir que o usurio personalize suas imagens, instalando diferentes sistemas operacionais e diferentes softwares em cada uma delas. Durante os testes foi possvel gerar duas imagens diferentes, uma contendo o sistema operacional Ubuntu Server 11.04 e outra contendo o sistema Windows 7. O acesso a uma instncia da imagem do Ubuntu ocorre por meio do SSH, porm utilizando usurio e senha, sem o uso de chaves. A imagem gerada executou, normalmente, entrando na rede privada na nuvem. Para o sistema Windows deve-se utilizar o protocolo RDP de acesso remoto. A imagem deve possuir um servidor de RDP para que seja possvel ao usurio conectar e visualizar o ambiente. A execuo da imagem ocorreu com sucesso. No entanto, o Windows no entra automaticamente na rede da nuvem. Existem atualmente agentes para serem instalados em sistemas Windows a fim de facilitar a configurao da instncia para a execuo em nuvem. No entanto, esses agentes funcionam quando o hypervisor utilizado o Xen. Uma vez que o KVM foi utilizado, no foi possvel completar automaticamente o processo de instncia e conexo a um sistema Windows com as verses de software utilizadas. Se uma conexo for realizada manualmente, utilizando portas que o prprio KVM disponibiliza para a conexo com a mquina virtual, possvel conectar na instncia e verificar que sua execuo est ocorrendo normalmente. Por fim, duas outras imagens foram geradas a partir do Ubuntu Server 11.04. Uma dessas imagens possui o conjunto de servidores Web Apache e Tomcat. O Apache possui ainda o mdulo mod_jk, utilizado para permitir acesso a aplicaes Web em Java pelo Apache. A segunda imagem possui apenas o servidor Web Tomcat. Essas imagens foram geradas para se testar outras caractersticas da nuvem, conforme seo a seguir.

48

Embrapa Informtica Agropecuria. Documentos, 116

Teste de elasticidade utilizando aplicao Web em Java Uma das grandes caractersticas de uma nuvem fornecer elasticidade em relao capacidade de determinados servios. A quantidade de acessos a uma aplicao Web pode sofrer uma grande variao em diferentes perodos. Enquanto em determinados momentos toda a capacidade computacional do servidor utilizada, em outros, esse permanece at mesmo ocioso. Administradores que lidam com tais situaes devem provisionar o hardware para suprir os momentos de pico. Isso faz com que na maior parte do tempo a capacidade do servidor fique ociosa. A elasticidade uma caracterstica que permite aumentar e diminuir a capacidade de hardware de determinado sistema de forma imediata. Na situao de pico do exemplo anterior, a capacidade do servidor web poderia ser aumentada e, aps esse perodo, diminuda. Essa possibilidade depender do tipo de servio sendo fornecido. Aplicaes Web so um exemplo na qual a elasticidade surge como grande auxlio em sua gerncia. Conforme mencionado, para esse teste foram geradas duas imagens diferentes, uma contendo um sistema com o servidor Tomcat e outra contendo um sistema com o Apache e o mdulo mod_jk. O mod_jk permite que o servidor Apache receba requisies para um site e execute um balanceamento de cargas, dividindo essas requisies entre vrios servidores Tomcat em mquinas diferentes. Nesse cenrio de teste, foi utilizado um n executando o Apache com o mdulo mod_jk mais trs instncias executando o servidor Tomcat. Como o n com Apache tambm possua um servidor Tomcat, a estrutura conta com 4 ns Tomcat para processamento das requisies. Todos os servidores Tomcat foram configurados para operar junto ao n balanceador. Uma aplicao Web simples foi criada com o intuito de verificar a ocorrncia do balanceamento entre as instncias, sendo instalada nas duas imagens. Essa aplicao simplesmente recebe uma conexo e mostra uma pgina contendo o endereo IP para qual foi destinada a requisio, equivalente ao IP do servidor onde o site est hospedado, e o IP da interface de rede fsica do host onde a requisio est sendo processada. A Figura 11 apresenta a interface de monitoramento do balanceador de cargas. Nela possvel observar a existncia de 4 ns e o estado de cada um deles. O IP mostrado na parte superior, 10.129.10.13 o IP pelo qual o

Computao em nuvem: entendendo e implementando...

Figura 11. Pgina de monitoramento do balanceador de cargas mod_jk usado em aplicaes Web: exemplo de elasticidade na nuvem.

49

50

Embrapa Informtica Agropecuria. Documentos, 116

site acessado. Os IPs da rede 192.168.0.0 representam os IPs privados de instncias da nuvem. Essa organizao prov grande elasticidade. Na ocasio dos 4 ns terem seus recursos exauridos devido a uma grande quantidade de requisies, basta que uma ou mais instncias que possuem o Tomcat sejam iniciadas e pequenas configuraes realizadas para que passem a receber requisies do balanceador. Isso implicar em rpido aumento na capacidade da aplicao. A Figura 12 mostra a pgina da aplicao, identificando tanto o IP nico do site (10.129.10.13) quanto o IP da instncia. Conforme os acessos so realizados, possvel perceber a mudana do IP da instncia, comprovando que as requisies so divididas entre os servidores Tomcat existentes.

Figura 12. Pgina da aplicao Web balanceada com instncias na nuvem: IPs indicam distribuio de cargas entre as mquinas virtuais.

Se em determinado momento as 4 instncias no forem mais necessrias, pode-se diminuir esse nmero e liberar o hardware utilizado para outro tipo de atividade. Testes de realocao de hardware Os testes de realocao de hardware objetivavam elucidar a maneira pela qual novos hardwares seriam inseridos na nuvem e como hardwares com problemas ou antigos seriam retirados dela. O servidor 3 da arquitetura proposta foi utilizado para esse fim.

Computao em nuvem: entendendo e implementando...

51

O OpenStack funciona como um conjunto de ferramentas colaborativas. Essa diviso em vrios componentes traz certa independncia entre cada um deles. Assim, em uma infraestrutura para provimento de servidores virtuais para processamento, a insero de um hardware realizada pela instalao do componente nova-compute. Este novo host dever ser semelhante ao restante da nuvem em relao ao tipo de sistema operacional e possuir suporte virtualizao. Portanto, basta que alguns pacotes bsicos de virtualizao e o nova-compute sejam instalados e a configurao do n controlador replicada para este host para que ele passe a fazer parte da nuvem. O nova-compute se encarregar de informar o n controlador sobre suas capacidades e, a partir do momento que o controlador obtiver essas informaes, mquinas virtuais podem ser instanciadas nesse novo n. Para a remoo de um hardware, aconselhvel que as instncias em execuo sejam finalizadas. Desta forma o n controlador receber informaes para manter sua base de estados atualizada, sobre a existncia das instncias. A partir do momento que no h conectividade entre o controlador e um n da nuvem, o controlador passa a informar ao administrador que no mais dispe daquele n. Portanto, a remoo de um n simplesmente se d pela desconexo do n da nuvem. Caso alguma instncia esteja em execuo, o controlador pode manter informaes desatualizadas. Processo semelhante utilizado para adicionar ns de armazenamento quando este o servio fornecido pela nuvem. O novo hardware conectado estrutura de rede da nuvem e componentes so instalados para que o n se comunique com o n controlador do servio. No caso do armazenamento, especificamente, necessrio que o n controlador seja reconfigurado no sentido de reconstruir as estruturas de indexao (rings), passando a utilizar tambm o novo n. Armazenamento de dados na infraestrutura Swift O teste de armazenamento planejado consistia em gravar dados na infraestrutura provida pela nuvem, simular a perda de ns de armazenamento, analisar o estado do sistema e tentar recuperar uma informao inicialmente armazenada. Todos os passos puderam ser realizados com

52

Embrapa Informtica Agropecuria. Documentos, 116

sucesso. Conforme mencionado, a interao com o Swift ocorre por meio de ferramentas de linha de comando. Os comandos a seguir so exemplos de como se adicionar arquivos a um container, como verificar o estado do sistema e como recuperar um arquivo armazenado. swift -A https://<IP do proxy>:8080/auth/v1.0 -U system:root -K <senha> upload <container> <qualquer arquivo> swift -A https://<IP do proxy>:8080/auth/v1.0 -U system:root -K <senha> stat Account: AUTH_a4e769fe-3b47-4509-96da-e082d914b260 Containers: 1 Objects: 1 Bytes: 13905920 Accept-Ranges: bytes swift -A https://<IP do proxy>:8080/auth/v1.0 -U system:root -K <senha> download <container>

Avaliao e consideraes finais


A utilizao de nuvens computacionais atualmente uma nova vertente na maneira de se utilizar a computao para o provimento de servios. Nesse contexto, os servios so bastante diferentes dos conceitos at ento conhecidos, visto a possibilidade de se considerar como um deles o provisionamento de infraestrutura computacional. Nessa etapa de maturao, comum o surgimento de diversas dvidas sobre o que possvel se fazer com o uso dessa tecnologia. So diversas as aplicaes que uma nuvem computacional pode ter, de forma que seu uso recomendado quando suas caractersticas facilitam e otimizam o trabalho de administradores e usurios em geral. No existe, e possivelmente no existir, uma categoria de problemas para o qual as nuvens devam ser empregadas. O que se deve ter em mente so as caractersticas que elas podem proporcionar frente ao problema que se busca resolver. A partir disso, tornam-se mais claros diversos cenrios onde as nuvens podem

Computao em nuvem: entendendo e implementando...

53

ser empregadas, desde modelos comerciais at modelos para atividades didticas, contemplando diversos nichos do uso da computao. A opo ou no por usar uma nuvem de cada administrador de servios de TI. Conhecendo as caractersticas de uma nuvem computacional torna-se possvel elencar algumas diretivas para um melhor esclarecimento dos usos. O que esperar de nuvens privadas Versatilidade no provisionamento e gerenciamento de servios; Escalabilidade, de acordo com a quantidade de ativos de hardware; Elasticidade para aplicaes preparadas para executarem em nuvem; Otimizao de uso de recursos computacionais; Sistema redundante de armazenamento de arquivos (backup); Facilitao de gerenciamento e fornecimento de determinados servios; Economia de energia. O que no esperar de nuvens privadas Que desempenhem o papel da virtualizao, pois so tecnologias com objetivos distintos; Que substitua ou faa exatamente o papel das estruturas de Clusters e Grids computacionais; Que sejam utilizadas como sistema de arquivos distribudo, pois estes tem diversas funcionalidades diferentes, principalmente quanto ao acesso aos dados. A computao em nuvem no objetiva substituir nenhuma tecnologia existente atualmente. comum existirem diversas dvidas por parte dos profissionais de TI e usurios em geral nos primeiros contatos com o tema. Muitas delas surgem da relao da computao em nuvem com a virtualizao e com armazenamento de arquivos online. Existem diversas empresas que apresentam produtos por elas classificados como computao em nuvem. Outras, acreditam possuir uma estrutura

54

Embrapa Informtica Agropecuria. Documentos, 116

de nuvem privada quando na verdade possuem uma estrutura de virtualizao de servidores, desktops e aplicaes. A computao em nuvem uma tecnologia que inclui as caractersticas de servios monitorados e autogerenciveis, rede de alta capacidade, uso de pool de recursos e elasticidade. A virtualizao somada a uma camada de controle no pode ser considerada computao em nuvem, pois no apresenta diversas outras caractersticas presentes em sistemas reais de infraestrutura de nuvem, como o OpenStack. Ainda em relao virtualizao, deve-se ter cuidado no entendimento do sentido inverso: computao em nuvem no virtualizao. Nem todas as aplicaes que executam em ambientes virtualizados podero ser migradas para uma nuvem resultando em vantagens. Com o avano dos frameworks de nuvem, as aplicaes desenvolvidas usaro APIs especficas e sero preparadas para a execuo nesse tipo de ambiente. O fundamento bsico que a prpria aplicao ter conhecimento que est executando em uma infraestrutura de nuvem. Isso permitir o autogerenciamento de recursos e, consequentemente, elasticidade. Migrar uma aplicao existente, no preparada para execuo em nuvem, pode representar demasiado esforo para se obter um resultado no to vantajoso. Em relao ao armazenamento de arquivos online, uma dvida frequente se os frameworks de nuvem, tal como o OpenStack, so repositrios de dados para que os usurios possam guardar arquivos e recuper-los rapidamente. Essa ideia se consolidou pelo surgimento de diversos servios de armazenamento online, como o Dropbox (DROPBOX, 2012), sendo chamados de computao em nuvem. No entanto, trata-se de um equvoco sobre o conceito de nuvens computacionais, principalmente em relao s nuvens privadas. frameworks de computao em nuvem so muito mais complexos do que o fornecimento de um servio de armazenamento online, como o caso do Dropbox. bem possvel que esse tipo de servio possa executar em uma estrutura de nuvem, mas no se pode considerar o servio de armazenamento de arquivos online como sinnimo de computao em nuvem. Outro fator que contribuiu para essa ideia foi denominar determinados tipos de servios de TI como sendo computao em nuvem apenas por estarem fora dos domnios de uma instituio. Ao se analisar conjuntos de ferramentas como o Nimbus, Eucalyptus e OpenStack, percebe-se que a computao em nuvem um novo modelo

Computao em nuvem: entendendo e implementando...

55

de se utilizar a computao, sendo bem mais do que apenas um servio de armazenamento.

Trabalhos futuros
Os trabalhos futuros envolvem a automatizao cada vez maior do provisionamento de servios na nuvem. A orquestrao de servios uma das tecnologias que buscam acompanhar os desenvolvimentos das nuvens computacionais. Com ela ser possvel, por exemplo, manter imagens com instalaes bsicas de um sistema operacional e, durante o processo de instanciamento, realizar a atualizao do sistema operacional e instalao dos softwares necessrios. Desse modo, no ser necessrio gerar uma imagem com o servidor Tomcat ou com o Apache. Bastar que no instanciamento o usurio solicite que esses servidores sejam instalados na instncia. Alm disso, essa atualizao do sistema operacional durante o instanciamento demonstra uma preocupao com a segurana das instncias, visto que problemas dessa categoria so corrigidos diariamente e a necessidade de atualizao constante. Ainda, outros cenrios de uso podero ser testados. Um desses cenrios diz respeito utilizao de nuvens computacionais no apoio s atividades didticas, como a realizao de cursos prticos em laboratrios. A realizao de cursos de capacitao depende sempre de um ambiente computacional que deve ser previamente preparado. Essa preparao envolve a instalao dos sistemas operacionais e softwares em cada computador a ser utilizado durante o curso. Trata-se de uma tarefa repetitiva e que demanda certo tempo para ser finalizada. O uso de uma nuvem em laboratrios de ensino certamente aplicvel. A diferena bsica que a nuvem no necessariamente precisa estar hospedada em hardware de um datacenter. Dada a existncia de um laboratrio didtico que conta com diversos computadores, uma nuvem pode ser estabelecida no prprio laboratrio, utilizando o hardware local. Em vez de se preparar computador por computador, basta que uma nica imagem, contendo tudo que necessrio para o curso, seja gerada e disponibilizada no n controlador. Com isso, atinge-se um alto grau de otimizao na preparao do ambiente e uma

56

Embrapa Informtica Agropecuria. Documentos, 116

grande versatilidade, visto que em questo de minutos diversas mquinas virtuais podem ser instanciadas nos computadores do prprio laboratrio. O acesso a essas mquinas virtuais se d localmente, por meio de protocolos de acesso remoto como o SSH ou Remote Desktop (VNC). A Figura 13 mostra esta organizao. As etapas para o estabelecimento de um laboratrio para um curso prtico so representadas pelos trs passos numerados. De posse da imagem previamente preparada, o instrutor solicita o instanciamento do nmero de mquinas virtuais que representa a quantidade de alunos (1). O controlador comear a instanciar essas mquinas utilizando o hardware disponvel no laboratrio como ns da nuvem (2). Terminado o instanciamento, cada participante poder se conectar a uma instncia virtual (3). Ainda, caso haja a necessidade do compartilhamento de dados gerados durante o curso, estes podero ser armazenados na prpria nuvem.

Figura 13. Laboratrio para curso prtico estruturado com base em uma nuvem privada: versatilidade e homogeneidade do ambiente.

Computao em nuvem: entendendo e implementando...

57

Por fim, importante que o acompanhamento das novas verses dos softwares de nuvem, tanto para novas funcionalidades quanto para a correo de erros, seja realizado constantemente. Trata-se de um novo arcabouo de ferramentas cujo interesse da comunidade tem se tornado cada vez maior, de forma que o avano a ser atingido nos prximos anos ser muito promissor para essa nova tecnologia dentro da computao.

Referncias
AMAZON. Amazon elastic compute cloud (Amazon EC2). Pricing. Disponvel em: <http:// aws.amazon.com/ec2/#pricing>. Acesso em: 23 ago. 2011a. ______. Simple storage service (Amazon S3). Pricing. Disponvel em: <http://aws.amazon. com/s3/#pricing>. Acesso em: 23 ago. 2011b. AMAZON Enables Bursting to the Public Cloud. Virtual Lab Automation Blog. 2009. Disponvel em: <http://vmlab.wordpress.com/category/virtualization-platforms/cloud-computing-virtualization-platforms/>. Acesso em: 6 set. 2011. CANONICAL. Canonical. Disponvel em: <http://www.canonical.com/>. Acesso em: 6 set. 2011. CINTRA, L. C. Virtualizao com o Xen: instalando e configurando o ambiente. Campinas: Embrapa Informtica Agropecuria, 2010. (Embrapa Informtica Agropecuria. Comunicado tcnico, 102). DROPBOX. 2012. Disponvel em: <https://www.dropbox.com/>. Acesso em: 6 jan. 2012. ENSEMBLE. Ensemble project. 2011. Disponvel em: <https://ensemble.ubuntu.com/>. Acesso em: 30 ago. 2011. EUCALYPTUS. Eucalyptus project. 2011. Disponvel em: <http://www.eucalyptus.com/>. Acesso em: 29 ago. 2011. GOOGLE. Google app engine. 2011. Disponvel em: <http://code.google.com/intl/pt-BR/ appengine/docs/whatisgoogleappengine.html>. Acesso em: 23 ago. 2011. IBM. Servios em nuvem para sua infraestrutura virtual, Parte 1: Infrastructure-as-a-Service (IaaS) e Eucalyptus. 2010. Disponvel em: <http://www.ibm.com/developerworks/br/library/ os-cloud-virtual1/>. Acesso em: 23 ago. 2011. KVM. Kernel-based virtual machine. 2011. Disponvel em: <http://www.linux-kvm.org/>. Acesso em: 8 set. 2011. MICROSOFT. Windows azure. 2011. Disponvel em: <http://www.microsoft.com/windowsazure/pt/br/>. Acesso em: 23 ago. 2011.

58

Embrapa Informtica Agropecuria. Documentos, 116 NIMBUS. Nimbus project. 2011. Disponvel em: <http://www.nimbusproject.org/>. Acesso em: 29 ago. 2011. OPENNEBULA. OpenNebula Project. 2011. Disponvel em: <http://opennebula.org/>. Acesso em: 29 ago. 2011. OPENSTACK. Openstack cloud software. 2011. Disponvel em: <http://www.openstack. org>. Acesso em: 29 ago. 2011. QEMU. Open source machine emulator and virtualizer. 2011. Disponvel em: <http://wiki. qemu.org/Main_Page>. Acesso em: 16 set. 2011. SEMPOLINSKI, P.; THAIN, D. A Comparison and critique of eucalyptus, OpenNebula and Nimbus. In: IEEE INTERNATIONAL CONFERENCE ON CLOUD COMPUTING TECHNOLOGY AND SCIENCE, 2., 2010, Indianapolis. Proceedings...Washington: IEEE Computer Society, 2010. p. 417-426. CLOUDCOM 10. TORRES, T. Z.; BERNARDES, R. M. Reflexes sobre a implantao de um Programa de TI-Verde para a Embrapa: bases conceituais e metodolgicas. Campinas: Embrapa Informtica Agropecuria, 2008. 25 p. (Embrapa Informtica Agropecuria Documentos, 86).

CGPE 9787

You might also like