Вы находитесь на странице: 1из 24

IBM - developerWorks

IBM
Rational Build Forge
Alexandre Filgueiras Costa – afcosta@br.ibm.com

IBM - developerWorks

Agenda

! Introdução
! Integração Contínua
! Motivação
! Escopo
! Benefícios
! Desafios
! Uma Solução

2
IBM - developerWorks

Agenda

! Plano de Adoção
! Plano de Manutenção
! Principais Funções e Atributos
! Visão Geral
! Componentes de uma Solução
! Integrações
! API do BF

IBM - developerWorks

Introdução

!  Apresentação;
!  Rational Build Forge:
–  Nasceu em 2001, sediado em Austin no Texas;
–  Comprado pela IBM em maio de 2006 e se posiciona embaixo da brand da Rational;
–  Minimiza os desafios que existem no processo de desenvolvimento de software.

!  Dúvidas a qualquer momento.

4
IBM - developerWorks

Integração Contínua

!  Definição
–  Integração Contínua é um conjunto de práticas de desenvolvimento de
software, comportamentos e princípios para automatizar e melhorar a
integração e validação de software continuamente. O objetivo é detectar e
corrigir problemas o quanto antes além de entregar um software com maior
qualidade.

IBM - developerWorks

Integração Contínua (cont.)

!  Principais Conceitos (Martin Fowler):


!  O uso de um único repositório de código;
!  Automação do processo de build / instalação (deployment) do software;
!  Criação de um conjunto de testes mínimos para validação da build;
!  Toda atualização de código deve gerar uma build;
!  Otimização do processo de build;
!  Teste (sistema / aceitação) num ambiente “Clone” de produção;
!  Sempre disponibilizar de uma maneira fácil a última versão do seu executável;
!  Fazer com que todos possam ter conhecimento do que está acontecendo;

6
IBM - developerWorks

Motivação

Projetos que Participei Impacto no Negócio


!  Dificuldade na entrega de software; !  Garantia de qualidade no produto
!  Processo manual e disperso, muito entregue (executável);
propenso a erros; !  Garantir aderência às melhores
práticas da IBM;
!  Desalinhamento entre equipes do
projeto; !  Uso de metodologias ágeis;
!  Falta de um guia prático para !  Gestão de requisitos;
minimizar falhas no processo de !  Automação de testes;
desenvolvimento;
!  Suporte a projetos de larga escala;
!  Complexidade cada vez maior nas
soluções adotadas;
!  Uso indiscriminado de padrões,
acabando por torná-los anti-padrões.

IBM - developerWorks

Escopo

!  Prover uma estrutura adaptável permitindo que as equipes de


desenvolvimento possam padronizar e automatizar tarefas repetitivas,
compartilhar informações sobre os produtos essenciais e responder
rapidamente às mudanças;
!  Aumentar a eficiência dos processos;
–  Gestão centralizada;
–  Auditabilidade e rastreabilidade do processo executado;
–  Aceleração do tempo de build (build distribuída).

!  Unir times distribuídos globalmente;


–  Acesso baseado em roles;
–  Reuso de processos compartilhados.

!  Facilitar a adoção de métodos ágeis:


–  Self-service para desenvolvedores (agentes locais);
–  Integração contínua do projeto.

8
IBM - developerWorks

Benefícios

!  Rational Build Forge:


–  Autenticação e autorização baseadas em roles;
–  Segmentação dos passos de build e distribuição;
–  Interface de uso intuitiva;
–  Classificação de tarefas;
–  Auditabilidade;
–  Execução de diversos builds numa mesma console;
–  Contexto transacional das builds executadas;
–  Otimização dos passos da build;
–  Conversão de projetos com um baixo impacto para os times;
–  Promoção de builds;
–  Eliminação de erros manuais.

IBM - developerWorks

Benefícios (cont.)

!  Previsibilidade:
–  Métricas consistentes;
–  Ambientes consistentes;
–  Quanto tempo uma build vai levar;
–  Quanto tempo falta para acabar;

!  Disponibilidade de builds:
–  Builds programadas;
–  Build emergenciais;
–  Reinício de builds interrompidas sem começar do zero.

!  Eficiência:
–  Ganho de produtividade nas builds;
–  Mais ciclos de build / teste / deploy em menos tempo;
–  Elimina redundância de processos de build;
–  Redução do gargalo dos testes nas aplicações.

10
IBM - developerWorks

Desafios

Visão do Desenvolvedor
!  Falta de integração entre as equipes de desenvolvedores / arquitetos /
testadores / requisitos;
!  Conscientizar as pessoas para a importância da testabilidade dos artefatos;
!  Definição clara dos requisitos de forma testável;
!  Processo de build manual e muito propenso a erros;
!  Processos inconsistentes para geração dos artefatos;
!  Dependência do responsável pelas builds para execução, identificação e
resolução de problemas;
!  Dificuldade e demora para resolução de problemas corriqueiros;

11

IBM - developerWorks

Desafios

Visão Gerencial
!  Tempo gasto no processo de build / teste / deploy;
!  Qualidade do produto gerado;
!  Aderência às melhores práticas;
!  Gestão do escopo e requisitos junto ao cliente;
!  Quantidade de recurso envolvido no processo de build / teste / deploy;
!  Cumprimento do cronograma.

12
IBM - developerWorks

Desafios

Visão Técnica
!  Segurança da ferramenta;
!  Performance do processo;
!  Escalabilidade da solução;
!  Adoção em projetos;
!  Rastreabilidade dos processos.

13

IBM - developerWorks

Uma Solução

!  Criação do processo de build;


–  Processo de build.

!  Adaptação dos projetos para o processo de build;


–  Scripts Ant para geração dos projetos;

!  Adoção da ferramenta Rational Build Forge;


!  Integração com o Rational ClearCase;
–  Scripts Ant de integração ao Rational ClearCase.

!  Implementação da integração contínua.

14
IBM - developerWorks

Plano de Adoção

Primeira Etapa

!  Definir o processo de integração contínua;


!  Definir estratégia de adoção do processo de integração contínua;
!  Identificar os Stakeholders;
!  Definir ferramentas que possam suportar o processo de integração contínua;

Segunda Etapa

!  Preparar os artefatos para se encaixarem no processo de integração contínua;


!  Mentorizar e treinar os stakeholders para adoção do processo;
!  Realizar a instalação das ferramentas necessárias;
!  Configurar ambiente.

15

IBM - developerWorks

Plano de Manutenção

Terceira Etapa e Sempre........

!  Capacitação contínua dos stakeholders;


!  Implementação das melhorias ou alterações do processo;
!  Otimização dos processos de integração contínua;
!  Otimização na geração das builds.

16
IBM - developerWorks

Principais Funções e Atributos


BUILD/RELEASE FRAMEWORK

Management Console IDE Plug-Ins


Centralized Web-based, Collaborative Distributed Access, Role-Based Security Developer Self-Service, Role-Based Security

Workflow Control Acceleration Notification Scheduling Log Analysis Tracking Reporting

Process Automation
Automated, Repeatable Application Development Lifecycle

Source Product Quality


Development Package Release
Control Build Assurance

Scripting Python, VBscript, Batch, Perl, KSH

IDEs Languages Source Control Change Mgmt Build Tools Test Tools Release Tools

•  RAD •  Java •  ClearCase •  ClearQuest •  ClearMake •  TestManager •  Tivoli


•  Eclipse •  C •  StarTeam •  Remedy •  Ant •  Performance •  WebSphere
•  •  C++ •  Perforce •  ChangeMan •  NAnt •  Functional •  WebLogic
Visual .NET •  C# •  CVS •  DevTrack •  Make •  Robot •  WIS
•  PVCS •  Bugzilla •  GNUMake •  LoadRunner
• Synergy •  NMake •  WinRunner
•  Subversion •  Open Source •  Junit

Platforms UNIX, Windows Mac, Linux, Proprietary

17

IBM - developerWorks

Visão Geral do
Rational Build Forge
IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Login no Console

!  Usuário inicial para configuração do ambiente

19

IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Controle de Acesso ao Console

!  Combinação entre permissão, grupo de acesso e usuários

20
IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Controle de Acesso ao Console

!  Combinação entre permissão, grupo de acesso e usuários

21

IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Controle de Acesso ao Console

!  Combinação entre permissão, grupo de acesso e usuários

22
IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Controle de Acesso ao Console

!  Lógica de criação:
!  Inclusão do grupo;
!  Inclusão dos usuários;
!  Associação entre grupo e usuário;
!  Por padrão, não é necessário acertar as configurações de permissão.

23

IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Home do Usuário

!  Informações sobre: Jobs em execução, terminados e mensagens do sistema.

24
IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Configuração de Servidores

!  Ambientes aonde serão rodados os projetos (agentes).

25

IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Configuração de Servidores

!  Autenticação no servidor, cadastro de usuário para autenticar em servidores;


!  Seletores, usados para definir uma lista de propriedades que identificam o tipo de
servidor que se encaixa em um projeto (builds distribuídas);
!  Coletores, conjunto de variáveis de ambiente pré cadastradas que são usadas
nos servidores;
!  Lógica de criação:
!  Cadastro da autenticação;
!  Cadastro do Servidor;
!  Cadastro do Seletor;
!  Por padrão já vem configurado um Coletor com um conjunto de variáveis
comuns em um SO.

26
IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Configuração de Ambientes

!  Armazena variáveis de “ambiente” para seus projetos.

27

IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Configuração de Ambientes

!  Independente dos servidores ou projetos usados;


!  As variáveis podem ser modificadas durante a execução de um projeto;
!  .set modifica a variável no ambiente (não na execução do projeto);
!  .bset modifica a variável no projeto em execução (não no ambiente).
!  Devem conter somente caracteres alfa-numérico (a-z, A-Z, 0-9);
!  Podem ser usadas no estilo UNIX® ou Windows® que o Build Forge traduz para
um formato apropriado
!  Lógica de criação:
!  Cadastro do Ambiente;
!  Cadastro das variáveis necessárias;

28
IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Configuração de Projetos

!  Conjunto de passos para executar.

29

IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Configuração de Projetos

!  Projetos possuem seus próprios ambientes;


!  Podem estar associados ao mesmo Seletor;
!  Possuem uma diretiva de segurança de acesso;
!  Possuem uma lógica de notificação:
!  Quando iniciam;
!  Quando terminam com sucesso;
!  Quando terminam com falha;
!  Podem ser encadeados com outros projetos;
!  Quando terminam com sucesso;
!  Quando terminam com falha;
!  Lógica de criação:
!  Cadastro do Projeto;

30
IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Configuração dos Passos

!  Tarefas a serem executadas.

31

IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Configuração dos Passos

!  Possui um nome (deve ser condizente com seu objetivo);


!  Um estado (ativo ou inativo);
!  Uma diretiva de segurança (normalmente a mesma do projeto);
!  Um caminho para um diretório (Absoluto ou Relativo);
!  Um comando a ser executado;
!  Um ambiente relacionado (normalmente a mesma do projeto);
!  Um tempo de timeout de execução;
!  Um resultado esperado para determinar se passou ou falhou a execução;
!  Possuem uma lógica de notificação:
!  Quando terminam com sucesso;
!  Quando terminam com falha;

32
IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Configuração dos Passos

!  Possuem uma lógica de encadeamento de projetos:


!  Quando terminam com sucesso;
!  Quando terminam com falha;
!  Lógica de contorno para passos que falham (continua / pára);
!  Lógica de espera até que o encadeamento tenha sucesso ou falha;

33

IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Configuração dos Filtros de Log

!  Filtros que determinam se o passo foi terminado com erro ou sucesso.

34
IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Configuração dos Filtros de Log

!  Um Filtro de Log para cada tipo de tarefa, usado para aglutinar mensagens de
erros;
!  Possuem um padrão, uma ação e um grupo de acesso a ser notificado.

35

IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Agendamento de Projetos

!  Agendamento dos projetos.

36
IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Agendamento de Projetos

!  Associação de projeto, ambiente, seletor numa determinada frequência de


tempo;
!  Podem assumir os valores padrões determinados no projeto;
!  Valores válidos para os campos: minuto, hora, data, mês e dias da semana.

Campo Descrição Intervalo


Minutos Número de minutos 0-59
Horas A hora no dia 0-23
Datas (Dias do Mês) O dia do mês 1-31
Meses Meses do ano 1-12
Dias (semana) Dias da semana (domingo = 0) 0-6

37

IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Exemplos de Agendamento

Agendamento Minutos Horas Datas Meses Dias


Diariamente as 17:00 0 17 * * *
Semanalmente, toda segunda as 16:30 30 16 * * 1
Segunda a Sexta de 30 em 30 minutos */30 * * * 1-5

38
IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Analisando Resultados

!  Acompanhamento dos projetos executados.

39

IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Analisando Resultados

!  Auditoria do projeto;
!  Log completo dos passos, incluindo informações sobre as variáveis do ambiente;
!  Identificação de gargalos nos processos;

40
IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Modelos de Notificação

!  Modelos de notificação.

41

IBM - developerWorks

Principais Funções e Atributos – Visão bottom up

Modelos de Notificação

!  Customização para notificação de grupos específicos;


!  Inclusão de informações (nome do projeto, resultado, log, etc.) nas notificações.

42
IBM - developerWorks

Componentes de Uma Solução

Ambiente

Agente (Servidor / Autenticação / Seletor)

Projeto

Passo
Passo
Passo Filtro de Logs
Modelo de Notificação

43

IBM - developerWorks

Integração

!  Integração com Subversion


–  Integração via Interface

44
IBM - developerWorks

Integração (cont.)

!  Finalidade:
–  Implementar o conceito de integração contínua, realmente quando é necessário;
–  Gerar uma lista de material referente ao projeto executado;
–  Notificar as pessoas envolvidas na atualização de código;
–  Evitar gargalos no servidor.

!  Outras possibilidades:
–  ClearCaseBaseline;
–  ClearCaseBybaselineActivities;
–  ClearCaseByBaselineVersions;
–  ClearCaseByDate;
–  ClearCaseByLabel;
–  ClearQuestBaseClearCaseByDate;
–  ClearQuestClearCaseByActivity;
–  ClearQuestUCMClearCaseByDate;
–  Sua capacidade em escrever interfaces.......
45

IBM - developerWorks

API do Build Forge

!  Estão disponíveis algumas API’s de clientes para integração com o Build


Forge;
!  Podem ser encontradas com maiores detalhes em:
–  http://<hostname>:<portnumber>/clients/

46
IBM - developerWorks

Obrigado!
Alexandre Filgueiras Costa – afcosta@br.ibm.com

Вам также может понравиться