Automação da Construção de Aplicativos com o Build Forge
Transcrição
Automação da Construção de Aplicativos com o Build Forge
Automação da Construção de Aplicativos com o Build Forge Caso de Aplicação no Desenvolvimento de Sistemas para a Receita Federal do Brasil Osvandre Alves Martins Objetivo da Apresentação Compartilhar o conhecimento obtido e p pela p outros resultados de experiência implementação de um caso de aplicação da automação da construção de aplicativos (build) suportada pela ferramenta Build Forge Forge. Roteiro 1 • Práticas de Engenharia g de Software na Div. de Ciência da Computação do ITA 2 • O Projeto P j t HARPIA - Contexto C t t do d Caso C de Aplicação 3 • Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação p ç 4 • Conclusões e Considerações Finais Prática da Teoria de Engenharia de Software na Div. de Ciência da Computação do ITA 1 Alguns Fatos • Incremento da abordagem e utilização de Processos e Ferramentas de ES em Cursos e Projetos de P&D envolvendo o ITA e Empresas Públicas e Privadas percebida a partir do ano 2000. • Atualmente, mais de uma dezena de matérias dos cursos de graduação e pós-graduação da Div. de Ciência da Computação do processos e ferramentas p para ES. ITA abordam p • Programas de concessão de licenças acadêmicas como o IBM Academic Inititative viabilizaram esse incremento. • Existência de projetos de P&D no ITA propiciam a prática com problemas do mundo real,, além das práticas p p de sala de aula. Prática da Teoria de Engenharia de Software na Div. de Ciência da Computação do ITA 1 Alguns Fatos • Alguns treinamentos disponibilizados ao ITA pela Rational Software (via Seed Program – 2002/2003) viabilizaram a aplicação prática do RUP e das ferramentas tanto nos cursos quanto em p q projetos. j RUP Fundamentals Implementing RUP Requirements Management with Use Cases Rational RequisitePro q Fundamentals Business Modeling with the UML Object j Oriented Analysis y and Design g with UML Fundamentals of Rational Rose Rational ClearCase Fundamentals for Windows Rational ClearCase Administration for Windows Applying A l i Rational R ti l ClearCase Metadata for Windows Fundamentals of Rational ClearCase and UCM Roteiro 1 • Práticas de Engenharia g de Software na Div. de Ciência da Computação do ITA 2 • O Projeto P j t HARPIA - Contexto C t t do d Caso C de Aplicação 3 • Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação p ç 4 • Conclusões e Considerações Finais O Projeto HARPIA - Contexto do Caso de Aplicação 2 Envolvidos Mais de 100 participantes das seguintes instituições: • COANA – Coord. Geral de Administração Aduaneira. • COFIS – Coordenação Geral de Fiscalização. • Outras Coordenações da RFB • Profs. de Cursos de Eng. Eletrônica e de Computação • Alunos Al d de G Graduação d ã • Alunos de Pós-Graduação • Profs. P f de d Cursos C d de E Eng. Elét Elétrica i ed de C Computação t ã • Alunos de Graduação • Alunos de Pós-Graduação FUNCAMP (Fundação de Desenvolvimento da UNICAMP) • Pessoal de Apoio Administrativo • Pessoal contratado em regime CLT para o projeto (Analistas, Programadores, g , DBAs,, dentre outros)) O Projeto HARPIA - Contexto do Caso de Aplicação 2 Objetivos • P&D para a concepção do Sistema HARPIA com transferência de tecnologia à RFB. • Incremento da eficiência e eficácia de processos de auditoria e fiscalização pela RFB: • Redução dos tempos e custos de execução de rotinas operacionais; • Otimização da alocação da mão-de-obra empregada em procedimentos fiscais; • Sistematização e aperfeiçoamento das rotinas de aplicação e execução de procedimentos de controle; e • Aumento da segurança do controle de operações e maximização de resultados da ação fiscal. O Projeto HARPIA - Contexto do Caso de Aplicação 2 Alguns Desafios Aplicação p cação de téc técnicas cas e co conceitos ce tos de Inteligência te gê c a Artificial t ca e em casos reais e que lidam com grandes volumes de informação; Integração aos sistemas existentes baseados numa “miscelânea” de tecnologias (Mainframe, ADABAS, NATURAL, Risc, J2EE, Oracle, Datawarehouses, dentre outras); Mudança no Modelo de Gestão do desenvolvimento de Sistemas de Software para a RFB, até então realizado exclusivamente pelo SERPRO; M Manutenção t ã d do sigilo i il e segurança d de iinformação f ã • Controle de acesso físico e lógico. • Uso de dados “descaracterizados” para trabalhos de desenvolvimento. • Rede privada e protegida envolvendo laboratórios no ITA, na UNICAMP e o ambiente RFB/SERPRO RFB/SERPRO. O Projeto HARPIA - Contexto do Caso de Aplicação 2 Equipes Externas à RFB e ao SERPRO Todo o trabalho de P&D em Software é realizado em laboratórios no ambiente acadêmico acadêmico. 32 Subsistemas de Software Aplicativos públicos e reservados à RFB Interfaces Web e/ou Desktop Começaram ç a ser disponibilizados no segundo semestre de 2007. O Projeto HARPIA - Contexto do Caso de Aplicação 2 Ferramental IBM Utilizado QoSRF – Instância definida pela RFB. Requisite Pro - Suporte a Gestão de Requisitos. ClearQuest - Controle de Mudanças e Rastreamento de Defeitos ClearCase – Gestão de Configuração com UCM. Rose Enterprise Edition Modelagem UML UML. SoDA - Produção de relatórios e documentação documentação. Rational Application Developer Implementação J2EE. Build Forge - Automação de Construção ** ** Implantação recente O Projeto HARPIA - Contexto do Caso de Aplicação 2 Motivadores da Adoção ç do Build Forge Construção de Aplicativos (Build) – Uma definição: Execução sistemática de passos com o objetivo de transformar código-fonte no produto de software capaz de ser executado pelo cliente. – Percebeu-se que a execução manual dos diversos passos, repetitivamente é cara, repetitivamente, cara inviável e propensa a falhas falhas. – A automação ç dos passos p utilizando-se de ferramentas como IDE e scripts programáveis (Ex. Ant, Maven) já é realidade há algum tempo, mesmo assim o trabalho ainda é árduo e requer esforços para o bom gerenciamento. – A dependência de frameworks, componentes de terceiros e a interdependência entre os subsistemas é alta exigindo um gerenciamento de release apurado. O Projeto HARPIA - Contexto do Caso de Aplicação 2 Motivadores da Adoção do Build Forge • Automação A t ã do d processo de d construção t ã no nível í l dos d scripts i t comumente t utilizados e, principalmente, num nível acima deles. • Possibilidade de “orq “orquestração” estração” e monitoramento dos passos do processo de construção, geralmente implementados por scripts, utilizando-se de interface gráfica do Console de Gerenciamento. – Centralizada e acessível via Navegador Web – Acesso colaborativo distribuído – Segurança g ç baseada em p papéis p • Regras podem ser implementadas e aplicadas de maneira a garantir que a construção seja realizada conforme determinados critérios critérios. • Os desenvolvedores podem executar os projetos de construção utilizandose de Plug Plug-Ins Ins na IDE RAD RAD. Roteiro 1 • Práticas de Engenharia g de Software na Div. de Ciência da Computação do ITA 2 • O Projeto P j t HARPIA - Contexto C t t do d Caso C de Aplicação 3 • Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação p ç 4 • Conclusões e Considerações Finais Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Arquitetura q Funcional do Build Forge •Implementação de Projetos j de Construção •Execução •Monitoramento e Controle •Coordena a execução de projetos considerando a programação e os dados registrados no BD da ferramenta. •Execução •Monitoramento •Executam as tarefas em estações específicas Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Modelo Implantado Único canal de disponibilização de subsistemas e componentes. p Máquinas cuja configuração espelha o ambiente de instalação de cada subsistema. O Desenvolvedor continua compilando e testando seu trabalho localmente por meio i do d IDE IDE. Os Projetos de Construção verificam a existência e a versão dos recursos necessários. Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Servidores de Construção Onde será armazenado o resultado (parcial ou total) da execução do Projeto de Construção Construção. Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Seletores Possibilitam o condicionamento de locais de saída (servidores) do processamento de Projetos de Construção. Note-se que este Seletor aponta para o servidor ilustrado no slide anterior Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Projeto de Construção Projeto para a construção de componentes formados por classes de negócio comuns a todos os subsistemas do Sistema HARPIA (COMUM-Negocio). ( g ) Projeto = Conjunto de passos Tags = Rótulos compostos de literais e variáveis que propiciam a rastreabilidade da execução de projetos de construção. Acesso restrito a grupo de usuário específico Referência a um Seletor que por sua vez referencia um servidor ou local de construção Ex.: COMUM-Negocio_01.05.21 Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Bibliotecas Build Forge São como Projetos no Build Forge, porém não possuem um Seletor. Referem-se a conjuntos de passos “genéricos” que podem ser usados em vários Projetos. Consideram o Seletor do Projeto que as utiliza utiliza. Comandos de script implementam os passos. Alguns comandos podem ser a chamada a scripts de ferramentas específicas. Esta biblioteca tem apenas um passo (Criar View) que usa a ferramenta cleartool do ClearCase para criar uma Visão da Base de Objetos Versionados na qual residem os artefatos a serem considerados na construção. Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Ambientes Build Forge Conjuntos de variáveis de ambiente que podem ser acessadas e atualizadas no escopo de projetos e/ou de passos de projetos projetos. $PVOB, $STREAM_ORIGEM $PVOB $STREAM ORIGEM e $VIEW_TAG $VIEW TAG são variáveis definidas pelo Engenheiro de Construção a serem utilizadas no script referente ao passo de criação de Visão ilustrado no slide sobre Bibliotecas. Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Passo de Projeto Build Forge Este E t passo verifica ifi se uma visão do repositório de artefatos existe no servidor de construção e caso não exista os passos da Biblioteca “Cria View Snapshot Snapshot” é executada Projeto = Conjunto de passos Os comandos de script podem ser comandos do S.O., execução de programas, shell, batch ou comandos específicos do Build Forge (.<comando>). Uma das formas do Build Forge saber que um passo falhou é “observando” a variável ErrorLevel do S.O. Mediante falha ou sucesso notificações pode ser enviadas e ações podem ser encadeadas. Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Passo de Projeto Build Forge Este passo utiliza-se de comandos do S.O. em conjunto com comandos do ClearCase para configurar as regras de carga da Visão criada no passo anterior. i Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Passo de Projeto Build Forge Este passo executa o aplicativo Ant com o parâmetro –vv no intuito de saber se o servidor de construção realmente possui este recurso instalado. Tal estratégia de uso e recurso remete à possibilidade de se ter passos de verificação da existência de recursos necessários à construção e até mesmo de verificação do ambiente alvo da implantação do subsistema. Em caso de falha do comando o Projeto de construção é abortado. Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Passo de Projeto Build Forge Este passo executa o aplicativo Ant com arquivo de configuração de construção utilizado no IDE do desenvolvedor, construindo os arquivos de entrega. O diretório de atuação ç de cada passo pode ser diferente, caso necessários. Este E t elemento l t é um Log L Filter Filt outro recurso interessante da ferramenta. Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Filtro de Log Build Forge Os Filtros de Log verificam a ocorrência de cadeias de caracteres nos registros de log da execução do Projeto de Construção e podem disparar ações ações. Caso a execução de uma tarefa ao qual o Log Filter for associado apresente na saída a cadeia BUILD FAILED a ação de definir o passo como falho é executada. Alguém poderia ser notificado via e-mail.da ocorrência de BUILD FAILED. Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Execução de Projeto (Job) Parametrização da execução do Projeto. Definição de valores de variáveis de ambiente que você definiu para seu projeto e que não possuem valor único especificado na programação. Passos podem ser ignorados em determinadas instâncias de execução. Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Execução de Projeto (Job) Acompanhamento da execução dos passos do projeto. Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Detalhes da Execução de Passos Neste caso o alerta foi produzido porque na instância de execução do projeto a Visão do repositório de artefatos não existia então o encadeamento por falha da biblioteca Criar View Snapshot foi ativado. Este recurso é o que propicia o controle acima do nível dos scripts. Níveis de abstração distintos são disponibilizados. Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Execução do Projeto com Sucesso Antes Depois p Pela execução bem sucedida do Projeto Projeto, o diretório de espaço de trabalho no servidor de construção foi populado com um diretório referente a Visão da Base de Objetos Versionados e num diretório específico foram produzidos os arquivos .JAR referente ao resultado da construção pelo Ant. Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Execução com Falha Note-se que esta seção de execução é diferente daquela que vem sendo apresentada nos slides anteriores As mensagens de log podem ser filtradas. Falha de passo causada por ação do Log Filter Observador Ant. Texto destacado pela ferramenta por ter encontrado a cadeia BUILD FAILED nas saídas de execução do comando do passo. Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Coletores Recurso da ferramenta que possibilita a automatização de pequenas rotinas armazenando o resultado em variáveis de ambiente ambiente. Este Coletor pode ser uma alternativa a passo 3 – Verifica ANT uma vez que este executa o mesmo comando e extrai, por expressão regular, o número da versão e a armazena na variável de ambiente ANT_VER. Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação 3 Agendamento para Execução Automática de Projeto Recurso que propicia o agendamento para execução automática e recorrente de Projetos de Construção. Todos os dias da semana e em todos os dias de todos os meses às 16h:55m o Projeto COMUM-Negocio será executado no servidor de construção em questão, esperando-se produzir componentes estáveis. Roteiro 1 • Práticas de Engenharia g de Software na Div. de Ciência da Computação do ITA 2 • O Projeto P j t HARPIA - Contexto C t t do d Caso C de Aplicação 3 • Conceitos e Elementos do Build Forge em Detalhes do Caso de Aplicação p ç 4 • Conclusões e Considerações Finais Conclusões e Considerações Finais 4 • Esta apresentação procurou expor alguns conceitos da ferramenta Build Forge, no intuito de propiciar uma visão geral de suas potencialidades. • A fferramenta t possuii uma série éi d de conceitos it específicos ífi porém é estes t são ã consideravelmente simples e a familiarização com os mesmos foi muito rápida. • O Build Forge não substitui as ferramentas de construção de aplicativos, pode-se afirmar que ele as complementa. • Recursos que propiciam o incremento da automação e do controle são processo de construção. ç adicionados ao p Conclusões e Considerações Finais 4 • A implantação i l t ã d do B Build ild F Forge no P Projeto j t HARPIA ainda i d é recente t e parcial i l porém os resultados obtidos até então foram interessantes e mostram que a ferramenta pode contribuir para a melhoria da qualidade do trabalho de constr ção e liberação de versões construção ersões está estáveis eis de ssubsistemas bsistemas e componentes. • A implantação total no Projeto dependerá ainda do incremento do nível de familiarização com a ferramenta e principalmente aprimoramento da estratégia de uso. • O caso apresentado foi um projeto-piloto para implantação da ferramenta j HARPIA. Melhorias p podem e no ambiente de desenvolvimento do Projeto devem ser implementadas no projeto de construção ilustrado. Conclusões e Considerações Finais 4 Outros recursos interessantes da ferramenta ferramenta, não menos importantes e que estão sendo explorados para as implantações, são: – Adaptors • Mecanismos que encapsulam ações que integram a ferramenta a sistemas de terceiros, incluindo controladores de versão, ferramentas de testes e ferramentas de rastreamento de defeitos permitindo iti d correlacionar l i elementos l t nessas fferramentas t associadas i d à construção de versões de distribuição específicas. – Threads • Propiciam a execução de passos de Projetos de Construção em paralelo propiciando ganho de desempenho desempenho. Questões?