CTIC - Centro de Pesquisa e Desenvolvimento em Tecnologias Digitais para Informação e Comunicação Chamada de Projetos 2010 Computação em Nuvem Projeto JiT Clouds Sétimo Entregável QUARTA VERSÃO DOS MECANISMOS BÁSICOS DE FEDERAÇÃO 22 de dezembro de 2012
1 INTRODUÇÃO 3 2 ARQUITETURA, CASOS DE USO E PRODUTOS DE SOFTWARE 3 2.1 CASOS DE USO IMPLEMENTADOS 4 2.2 PRODUTOS EVOLUÍDOS NA QUARTA VERSÃO 5 2.2.1 JIT CLOUD CLI 5 2.2.2 JIT CLOUD MIDDLEWARE 6 2.2.3 JIT DC MIDDLEWARE 7 3 INTEGRAÇÃO DO MIDDLEWARE 7 3.1 EXEMPLO DE ACESSO À JIT CLOUD EM PRODUÇÃO 8 4 INTEGRAÇÃO DAS APLICAÇÕES 9 5 CONSIDERAÇÕES FINAIS 9
1 Introdução Nos seis primeiros entregáveis deste projeto foram levantados os requisitos, apresentada a arquitetura geral de uma JiT Cloud, especificados e implementados os Mecanismos Básicos de Federação MBF, de Provisionamento e Gerência MPG, de Dependabilidade Autonômicos MDA, de Detecção de Anomalias de Tráfego MDAT e de Tarifação e Monitoramento TEM. Neste sétimo trimestre, além de implementados os casos de uso que integram a quarta versão dos mecanismos, foi realizado um esforço de integração referente aos 5 eixos citados anteriormente e aos dois grupos referentes às aplicações que rodam sobre uma JiT Cloud. A metodologia adotada no projeto JiT Clouds para possibilitar a integração dos trabalhos realizados ao longo dos últimos 21 meses teve como base a realização de duas Oficinas, uma envolvendo os grupos de aplicações e a outra os grupos que trabalham no nível do middleware. A primeira foi realizada nos dias 23 e 24 de novembro, nas dependências da Universidade Federal do Rio Grande do Sul, e teve como objetivo efetivar a integração de datacenters de diferentes grupos e de aplicações. Participaram desta oficina os grupos MBF, MPG e Aplicações. A segunda oficina foi realizada na Universidade Federal de Campina Grande, nos dias 15 e 16 de dezembro, tendo como objetivo realizar a integração dos grupos que trabalharam na extensão dos Mecanismos Básicos de Federação. Participaram desta oficina os grupos MBF, MDAT, MDA, MPG e TEM. As duas oficinas se mostraram bastante proveitosas e, além de permitir a integração de aplicações e do middleware, foram importantes para a identificação de oportunidades de melhorias dos produtos desenvolvidos. No caso da primeira, também serviu como uma prévia para a demonstração realizada no Cloud Tools Lab, denominada JiT Cloud Middleware and Applications, integrante do Latin Cloud 2012, realizado no Rio Grande do SUL durante os dias 26 e 27 de novembro. Já a segunda oficina, de Integração do Middleware, serviu para ajustar as últimas pendências e concretizar a integração de código e de artefatos que já estava encaminhada desde a definição arquitetural de uma JiT Cloud, realizada na fase de especificação do projeto. O presente documento apresenta a evolução dos produtos resultantes das implementações realizadas pelos grupos MBF, MDA, MDAT, MPG e TEM, desta vez, já realizada a integração. O restante do documento está organizado como segue. Na Seção 2, nós relembramos a arquitetura, apresentamos os casos de uso implementados e as alterações/incrementos no conjunto de produtos de software desenvolvidos. Na Seção 3 são apresentados os resultados da Integração do Middleware e na Seção 4, por sua vez, os resultados da integração de aplicações. Na Seção 5 apresentamos as nossas considerações finais e os próximos passos a serem seguidos nos últimos 3 meses do projeto. 2 Arquitetura, Casos de Uso e Produtos de Software A Figura 1 recupera o diagrama de componentes resultante da fase de especificação dos módulos de uma JiT Cloud. Na figura estão todos os componentes especificados e estão marcados aqueles que foram implementados, incluindo uma marcação de cor indicando qual grupo foi responsável por uma
implementação do componente. É importante perceber que, devido à arquitetura modular e extensível, um mesmo componente admite distintas implementações, como é o caso do JiT Scheduler, que conta com uma implementação do grupo MBF, uma do grupo MPG e uma terceira realizada pelo grupo MDA. Ambas as implementações podem coexistir em uma mesma implantação da JiT Cloud e são selecionadas em tempo de execução. MBF MDA MDAT MPG TEM SEG Figura 1 Arquitetura JiT Clouds (Módulos Implementados) 2.1 Casos de uso implementados Foram implementadas as funcionalidades referentes ao registro de usuários (adicionar e remover clientes) e à emissão de faturas (conversão de recursos consumidos em valor monetário, baseando-se em uma política de tarifação). Essas funcionalidades são referentes aos casos de uso Emitir Faturas (MBF_UC-13), Adicionar Cliente (MBF_UC-1) e Remover Cliente (MBF_UC-7). A Tabela 1 apresenta todos os casos de uso implementados ao longo do projeto JiT Clouds.
Tabela 1 Casos de Uso Implementados nos produtos JiT Clouds Versão Funcionalidades Adicionadas Mês de Liberação MBF 0.1 Iniciar Instâncias (MBF_UC-3) Encerrar Instâncias (MBF_UC-5) Adicionar JiT Data Center (MBF_UC-8) Criar Snapshots de Instâncias (MBF_UC-12) Março/2012 MBF 0.2 Remanejar Instâncias (MBF_UC-10) Remanejar JiT Resources (MBF_UC-11) Remover JiT Data Center (MBF_UC-9) Junho/2012 MBF 0.3 Monitorar Instâncias (MBF_UC-4) Detalhar Consumo (MBF_UC-6) Registrar Imagens de Máquinas Virtuais (MBF_UC-2) Setembro/2012 MBF 0.4 Emitir Faturas (MBF_UC-13) Adicionar Cliente (MBF_UC-1) Remover Cliente (MBF_UC-7) Dezembro/2012 2.2 Produtos evoluídos na quarta versão Os produtos de software desenvolvidos incluem as implementações de todos os componentes de uma JiT Cloud acionados pelos casos de uso da primeira, segunda, terceira e quarta versões. Trata-se de o JiT Cloud CLI, módulo cliente padrão para a infraestrutura JiT Clouds, o JiT Cloud Middleware, implementação de um coordenador de uso e oferta de infraestrutura-como-umserviço baseada na federação de recursos e o JiT DC Middleware, que é o responsável por gerenciar diretamente os recursos amortizados que estão sendo federados por uma JiT Cloud. Além das implementações-padrão, feitas pelo grupo MBF, esta quarta versão inclui as implementações especializadas dos componentes, implementadas pelos eixos MDA, MDAT, TEM e MPG. Os artefatos evoluídos neste sétimo entregável, bem como todas as versões anteriormente disponibilizadas, podem ser acessados na página http://redmine.lsd.ufcg.edu.br/projects/jitclouds/files. 2.2.1 JiT Cloud CLI O produto JiT Cloud CLI (de Command Line Interface) é o módulo cliente padrão para a infraestrutura JiT Clouds. Consiste em um conjunto de comandos que permitem ao cliente interagir com a interface do JiT Cloud Middleware, de forma a utilizar ou configurar os serviços providos. Os entregáveis são produzidos na forma de um pacote compactado em formato zip (no caso do JiT Cloud CLI, distribuído com o nome cloudclient-0.4.zip). Quando descompactado, resulta na hierarquia apresentada na Figura 2, composta por um diretório com arquivos de configuração (etc/), um com o artefato propriamente dito e suas dependências () e o terceiro (bin/) com scripts executáveis. cloudclient-0.4/ etc/
client-cloud-proxies.xml conf.properties client-components.xml log4j.properties client-services.xml cloudclient-0.4.jar jitclouds-api-0.4.jar bin/ jit-create-snapshot jit-deregister-image jit-describe-dcs jit-describe-images jit-describe-instances jit-register-dc jit-register-image jit-relocate-resource-to-jitdc jit-relocate-resource-to-private jit-remove-dc jit-run-instances jit-terminate-instances Figura 2 Conteúdo do Pacote cloudclient-0.4.zip 2.2.2 JiT Cloud Middleware O JiT Cloud Middleware é a implementação de um coordenador de uso e oferta de infraestrutura-como-um-serviço baseada na federação de recursos computacionais amortizados. A interação com cada agrupamento de recursos (JiT Data Center) se dá por intermédio do módulo JiT DC Middleware. Um JiT Cloud Middleware interage, ao mesmo tempo, com vários JiT DC Middlewares. Quando descompactado, o produto JiT Cloud Middleware resulta na hierarquia apresentada na Figura 3. Merecem destaque as bibliotecas do projeto JiT Clouds, jitclouds-api-0.4.jar e cloudmiddleware-0.4.jar. cloudmiddleware-0.4/ apps/ cloudmiddleware-0.4/ classes/ log4j.properties cloudmiddleware-0.4.jar jitclouds-api-0.4.jar mule-config.xml bin/ jitcloud etc/ cloud-components.xml conf.properties cloud-db-config.xml cloud-dc-proxies.xml cloud-default-entities.xml cloud-services.xml... logs/...
Figura 3 Conteúdo do Pacote cloudmiddleware-0.4.zip 2.2.3 JiT DC Middleware O JiT DC Middleware é o módulo responsável por gerenciar diretamente os recursos amortizados que estão sendo federados por uma JiT Cloud. Um JiT DC Middleware é vinculado a um e a apenas um JiT Cloud Middleware. Quando descompactado, o produto JiT DC Middleware resulta na hierarquia apresentada na Figura 4, com os diretórios e arquivos desempenhando funções idênticas às do módulo da JiT Cloud. dcmiddleware-0.4/ apps/ dcmiddleware-0.4/ classes/ log4j.properties dcmiddleware-0.4.jar jitclouds-api-0.4.jar mule-config.xml bin/ jitdc etc/ dc-components.xml eucalyptus.properties conf.properties dc-db-config.xml dc-default-entities.xml dc-services.xml... logs/... Figura 4 Conteúdo do Pacote dcmiddleware-0.4.zip 3 Integração do Middleware O resultado da integração no nível dos middlewares JiT Clouds (Cloud Middleware e DC Middleware) se encontra em uma versão em produção de uma JiT Cloud. O produto Cloud Middleware, juntamente com as versões padrão e especializadas dos componentes presentes na arquitetura ilustrada na Figura 1, foi implantado na infraestrutura montada na Universidade Federal de Campina Grande (UFCG), enquanto as implantações do produto DC Middleware foram realizadas nas infraestruturas da própria UFCG, do Instituto Federal da Paraíba (IFPB), da Universidade Federal de São Carlos (UFSCAR) e da Universidade Federal da Bahia (UFBA). A Figura 5 apresenta um esquema da infraestrutura citada.
Figura 5 Ilustração da JiT Cloud em Produção 3.1 Exemplo de acesso à JiT Cloud em Produção Foi disponibilizado um JiT Cloud Client já apontando para a infraestrutura da JiT Cloud em produção e com credenciais de acesso já configuradas. Para testar o acesso, é necessária uma máquina com sistema operacional Linux (ou MAC OS) com suporte à plataforma Java. O teste pode ser realizado com os seguintes comandos: wget eucalyptus.lsd.ufcg.edu.br/jitclouds/cloudclient-0.4.zip unzip cloudclient-0.4.zip cd cloudclient-0.4 export JITCLIENT_HOME=`pwd` Figura 6 Comandos para realizar o download do JiT Cloud Client É imprescindível definir corretamente a variável JITCLIENT_HOME, apontando para o diretório em que estiver o módulo cliente. Entre outros, podem ser executados os comandos: sh bin/jit-describe-dcs sh bin/jit-describe-images sh bin/jit-describe-instances sh bin/jit-run-instances -n <number-of-instances> sh bin/jit-describe-clients sh bin/jit-terminate-instances -i <vm-id> Figura 7 Comandos que podem ser acionados no JiT Cloud Client
4 Integração das Aplicações 5 Considerações Finais A metodologia adotada para a condução do projeto JiT Clouds tem se mostrado adequada e, nesta fase de integração do projeto, foi validada ao se verificar a robustez arquitetural resultante dos primeiros trimestres de especificação. As contribuições dos grupos puderam ser integradas sem grandes transtornos, restando, ainda, três meses para a realização de ajustes finais nos protótipos, correção de defeitos, documentação e finalização dos produtos. Como esperado, alguns ajustes na especificação foram necessários, a exemplo de expansão de tipos de dados e alterações em operações de APIs. Também, componentes que foram originalmente concebidos não se mostraram necessários até o momento, embora sejam promissores para casos de uso não contemplados originalmente no projeto. Desta forma, pode-se dizer que a fase de implementação seguiu a especificação e a entrega do último deliverable está sob controle.