You are on page 1of 5

XVIEncontrodeIniciaoPesquisa

UniversidadedeFortaleza 20a22deOutubrode2010

MODELAGEM DE APLICAES EM NUVENS DE INFRAESTRUTURA


Palavras-chave: Computao em nuvem. Modelagem. Padro OVF. JASMINe Design.

Resumo
A computao em nuvem um modelo computacional que permite o acesso, sob demanda e atravs da Internet, a um pool de recursos computacionais (redes, servidores virtuais ou fsicos, armazenamento, aplicaes e servios) que podem ser rapidamente provisionados. Diversas empresas necessitam de uma infra-estrutura para hospedar suas aplicaes e fornecer seus servios. Normalmente, as empresas utilizam uma infra-estrutura prpria para hospedar tais aplicaes de forma pouco otimizada (ex: comprando muitos servidores de alta capacidade e utilizando apenas 10 a 15% da sua capacidade na maior parte do tempo). As nuvens se adquam muito bem a tais necessidades, pois os recursos oferecidos por ela podem ser controlados pelo consumidor que s ir pagar por aquilo que efetivamente necessitar e utilizar. Atualmente existe uma carncia de ferramentas que facilitem a montagem, empacotamento e implantao automtica de aplicaes em ambientes de computao em nuvem. exatamente neste contexto que este trabalho apresenta sua contribuio. O objetivo deste trabalho foi estender uma ferramenta j existente que prov suporte e gerenciamento de aplicaes, chamada JASMINe Design [1], e adicionar suporte a diferentes plataformas de nuvens, utilizando tecnologias padronizadas para facilitar o uso e portabilidade. Isto facilitar a distribuio os componentes de uma aplicao de forma automtica (ex: balanceador de carga, servidor de aplicao, banco de dados) a partir de um modelo visual criado na ferramenta e que pode ser implantado em uma ou mais nuvens distintas. Algumas vantagens de tal abordagem so: a possibilidade de facilmente trocar de provedor de nuvem e reconfigurar a aplicao.

Introduo
A computao em nuvem uma soluo eficiente para se fornecer recursos computacionais de acordo com as necessidades de seus usurios. Para isso, utilizam-se mquinas virtuais (VM), que so representaes de mquinas fsicas. Cada VM contm seu prprio sistema operacional e compartilha os recursos fsicos da mquina como: CPU, memria, disco e rede. Estas VMs contm capacidades especificadas pelo prprio usurio ou pelos fornecedores de servios de nuvem chamados nuvens de infra-estrutura. Um exemplo de uma empresa que fornece este tipo de servio a Amazon.com, atravs do servio Elastic Compute Cloud (EC2) [2] oferece mquinas virtuais de capacidades diferentes preos variados. Por exemplo, a menor mquina virtual oferecida pela EC2 (Small Instance) possui uma CPU de aproximadamente 1,2GHz, memria RAM de 1,7 GB, 160 GB de armazenamento em disco e rodando o Linux como sistema operacional e custando aproximadamente 10 centavos de dlares por hora. Todo cliente que deseja utilizar este tipo de servio de nuvem, precisa de um mecanismo para empacotar a sua aplicao em uma ou mais mquinas virtuais. Por exemplo, considere uma empresa que possui um site de comrcio eletrnico, cuja arquitetura do aplicativo formado de um cluster Java EE possuindo os seguintes componentes: um servidor Web Apache que serve como balanceador de carga, dois servidores de aplicao Jonas usados na lgica de negcio e um servidor de banco de dados Oracle que armazena os dados do aplicativo. Para distribuir os componentes (ex: um por mquina virtual) do aplicativo mencionado, usa-se um servio de nuvem como a Amazon EC2. A empresa de comercio eletrnico precisa usar um formato especfico do provedor (como a Amazon Machine Image), para "empacotar" sua aplicao. Se o cliente mudar sua aplicao para ser distribuda em outra nuvem (como a Gogrid [3]) seriam necessrias vrias

ISSN 18088449

modificaes, pois o Gogrid faz uso de um formato prprio de empacotamento de aplicativos. A proposta deste trabalho facilitar a modelagem e implantao de aplicaes em uma nuvem de infra-estrutura. A idia estender a ferramenta open-source JASMINe Design. Esta realiza a modelagem de mquinas virtuais, permitindo o usurio se preocupar somente com os requisitos relevantes sua aplicao, abstraindo assim conhecimentos de configurao relacionados a uma nuvem especfica. A ferramenta se baseia no uso do padro OVF (The Open Virtualization Format) [4], como um mecanismo que permite empacotar a aplicao em um formato que no est amarrado a nenhuma plataforma de nuvem especfica e que j suportado por vrios provedores de nuvens. Isto ir facilitar a implantao automtica de uma aplicao composta de vrias VMs. Assim, o cliente da loja virtual mencionado acima, teria a flexibilidade de criar a partir de um modelo visual, todos os seus componentes necessrios para sua aplicao podendo depois ser implantados em um ou mais provedores de nuvens distintos como EC2 e Gogrid. A prxima seo apresenta a metodologia que o trabalho abordou. A seo seguinte apresenta os resultados e discusso. E por ltimo a concluso.

Metodologia
Para este trabalho foi feito um estudo e anlise do atual estado da arte de computao em nuvem e foram detectados os seguintes problemas sobre provedores de servios de nuvem de infraestrutura: (i) eles sempre oferecem um mecanismo proprietrio para empacotar a aplicao; (ii) no existe uma ferramenta que facilite a montagem (modelagem) de uma aplicao complexa composta por mltiplas mquinas virtuais; e (iii) fica difcil trocar de provedor de nuvem e reconfigurar a aplicao. Portanto, dentre as ferramentas e servios disponveis at ento, nenhuma se mostra uma soluo adequada para modelar aplicaes em nuvens. Entretanto, a ferramenta JASMINe Design muito semelhante ao que se pretendia atingir nesse trabalho, deixando a desejar apenas quanto ao suporte a nuvens e uso do padro OVF. Essa ferramenta um plug-in open-source do ambiente de desenvolvimento Eclipse, tambm open-source. Todo o desenrolar do trabalho feito visualmente, no existe nenhum tipo de codificao realizada por parte do usurio. O JASMINe Design possui uma funcionalidade que gera um arquivo em XML, que representa as configuraes do usurio (dos clusters web e/ou EJB), faltando apenas gerao de um arquivo em XML (no formato OVF), que represente uma virtual appliance. "Virtual Appliance corresponde a uma nova forma de empacotar um servio de software atravs de conjunto de mquinas virtuais (cada um contendo uma pilha de software especfica) e metadados que descrevem diversas informaes como, por exemplo: (i) a capacidade de cada mquina virtual (CPU, memria, disco, rede com a qual sua interface est conectada, etc.); (ii) seqncia de startup das mquinas virtuais; (iii) conjunto de pares propriedade-valor a serem configurados em tempo de boot das mquinas virtuais. "[5]. Com isso, parte do cdigo-fonte do plug-in j se encontra desenvolvida e/ou disponvel para ser estendida. O padro OVF um formato open-source que oferece um arcabouo completo para: otimizar a distribuio de mquinas virtuais dentre as diversas nuvens de infra-estrutura; Suporta configuraes de uma ou varias mquinas virtuais, mesmo que as mquinas virtuais tenham papis diferentes; Visa a sua portabilidade entre as diversas nuvens de infra-estrutura, evitando problemas de "lock in", onde alguns fornecedores de servios de nuvem tentam dificultar a migrao de seus usurios. Do ponto de vista do usurio, o OVF um pacote que agrega um conjunto de softwares, como a pilha LAMP (Linux, Apache, Mysql e PHP). Na prxima seo ser mostrada uma viso geral de como as extenses implementadas funcionam e como uma aplicao pode ser facilmente modelada e distribuda em nuvens distintas.

Resultados e Discusso
A arquitetura da problemtica apresentada nos itens anteriores ilustrada pela figura 1. Pode-se notar que essa ilustrao foi devidamente dividida e enumerada. Em seu primeiro item, JASMINe Design, o usurio modela e configura visualmente sua virtual appliance. nesse momento em que

ISSN 18088449

o usurio agrupa todos os seus dados de configurao, como quantos e quais banco de dados, servidores web, servidores EJB, e demais campos disponibilizados pela ferramenta. A partir do modelo visual gerado pelo primeiro passo, capturam-se as informaes necessrias para a gerao do arquivo OVF (segundo item da Figura 1). Tendo as configuraes do usurio definida, o sistema vai fazer a transformao dessa informao em um arquivo XML seguindo o padro OVF (terceiro item da figura 1), atravs da opo de gerar OVF do sub-menu do arquivo de configurao. Aps a criao do arquivo XML, submetem-se para a nuvem essas configuraes de controle da virtual appliance (quarto item da Figura 1).

Figura 1 - Arquitetura dos componentes e suas atividades. Como exibido no primeiro item da Figura 1, existem quatro servidores web. Fazendo o uso da ferramenta desenvolvida, podemos facilmente substituir um desses componentes (trocar servidores web de Apache para JBoss, mudar o banco de dados de Mysql para Oracle) e tambm configurlos para rodar em nuvens distintas e reiniciar a aplicao. Como dito anteriormente, o arquivo que ser utilizado para o deploy um XML no padro OVF. A Figura 2 mostra um exemplo desse tipo de arquivo. O elemento raiz, que abrange todos os demais, chama-se Envelope. Dentro dele se encontram os elementos: references, disk section, network section, etc (existem outras sees no arquivo que no esto sendo exibidas na Figura 2). Cada um desses elementos possui atributos essenciais na configurao de uma virtual appliance. No references, encontram-se os files. Cada file representa um recurso ou imagem da virtual appliance. No existe limite de files. No disk section so descritos os discos virtuais e no network section localiza-se a lista de endereos lgicos que so usados nessa virtual appliance. Este arquivo ser

ISSN 18088449

lido e interpretado por outra ferramenta, fora do escopo deste trabalho, chamada de software gerenciador do servio [3] que responsvel por fornecer uma API para implantao de um servio em uma ou mais nuvens com base no padro OVF.

Figura 2 Ilustrao de um arquivo em XML seguindo o padro OVF.

Concluso
Este trabalho abordou inicialmente o que e como funcionava uma nuvem. Vimos tambm que nuvens de infra-estrutura so uma tima opo para se atender diferentes tipos de usurios e necessidades. Alm disso, foram exibidas as vantagens do padro OVF, porque empreg-lo e um exemplo de como ele utilizado neste trabalho para guardar as informaes referentes aos componentes da aplicao. Apresentamos a ferramenta JASMINe Design e a sua extenso de forma a possibilitar a implantao (deploy) de suas configuraes para nuvens, bem como o suporte a OVF adicionado. Conclumos que o trabalho fornece uma nova abordagem para facilitar a implantao de aplicaes sobre nuvens distintas com base em modelos que podem ser reutilizados e modificados facilitando a troca dos componentes da aplicao assim como dos provedores de nuvem.

ISSN 18088449

Como trabalho futuro, pretendemos fazer mais testes da ferramenta para a distribuio de aplicaes em nuvens comerciais bem como avaliar o desempenho da ferramenta e quais as dificuldades impostas quando se deseja trocar de provedores de nuvem.

Referncias
[1] JASMINe. Disponvel em: <http://wiki.jasmine.ow2.org/xwiki/bin/view/Main/WebHome>. Acesso em: 05 jul. 2010. [2] Amazon Elastic Compute Cloud. Disponvel em: <http://aws.amazon.com/ec2/>. Acesso em: 05 jul. 2010. [3] Gogrid. Disponvel em: <http://www.gogrid.com/>. Acesso em: 05 jul. 2010. [4] DMTF. Open Virtualization Format Specification, Version 1.0.0. Disponvel em: <http://www.dmtf.org/standards/published_documents/DSP0243_1.0.0.pdf>. Acesso em: 05 jul. 2010. [5] Americo Sampaio, Matheus Cunha, et al. Uni4Cloud Uma Abordagem para Implantao de Aplicaes sobre Mltiplas Nuvens de Infra-Estrutura. In: WCGA - VIII Workshop em Clouds, Grids e Aplicaes (SBRC-2010), 2010, Gramado. Anais do VIII Workshop em Clouds, Grids e Aplicaes (WCGA), 2010. [6] STATEN, James. The Case For Virtual Appliances, November 2007. Disponvel em: <http://www.vmware.com/files/pdf/analysts/Forrester_The_Case_For_Virtual_Appliances.pdf>. Acesso em: 05 jul. 2010. [7] SUN Microsystems. Introduction to Cloud Computing architecture White Paper 1st Edition. Disponvel em: <http://webobjects.cdw.com/webobjects/media/pdf/Sun_CloudComputing.pdf>. Acesso em: 05 jul. 2010.

Agradecimentos
Agradecemos pelo apoio e financiamento da Fundao Edson Queiroz, Universidade de Fortaleza, atravs do Projeto OW2.

ISSN 18088449