SlideShare uma empresa Scribd logo
Application Lifecycle Management
                    Vinicius Senger

@vsenger
                                       Globalcode – Open4education
Agenda

      Introdução a Application Lifecycle Management
      A.L.M. open source
      Arquétipos & A.L.M.
      Demonstrações práticas




 @vsenger
                                          Globalcode – Open4education
Vinicius Senger
        vinicius@globalcode.com.br
        @vsenger
 Fundador da Globalcode
 Programador
        Desenvolvimento e Pesquisas
        Open-source hardware developer
        Entusiasta da vida: beatles, pizza, vinhos, surf,
         travessias oceânicas, filhos, código, yoga, home-
         office, violão, robôs (e $ pra sustentar tudo isso).
        Sou beta forever!
 @vsenger
                                                 Globalcode – Open4education
A.L.M.
 • Application Lifecycle Management: gerenciamento
   contínuo do software;
 • Casamento da gestão de negócio com engenharia de
   software;
 • Requer ferramentas integradas para gerenciar:
    Requisitos / backlog / projeto;
    Repositório de código;
    Construção integrada;
    Arquitetura e codificação;
    Testes e qualidade;
    Gerenciamento de versões e componentes;
 @vsenger
                                            Globalcode – Open4education
A.L.M.
 • Independente de metodologia, arquitetura e tecnologia
   TODA EMPRESA PRECISA DE A.L.M.
 • ALM = é como álbum de fotografia do seu software, com
   retratos tirados automaticamente a cada mudança, falha,
   novo requisito, novo release, etc.
 • Maior exposição da T.I. para líderes;
 • Todo mundo sai ganhando!




 @vsenger
                                              Globalcode – Open4education
A.L.M. - vantagens
 • Vantagens na adoção:
    • Rastreabilidade e dados post-hoc;
    • Cultura de planejamento de releases / backlog;
    • Gerenciamento integrado;
    • Simplificação nos processos;
    • Agilidade na construção do software;
    • Conseqüente aumento na cultura de testes;
    • Aumento da reusabilidade;
    • Agilidade na prática!

 @vsenger
                                              Globalcode – Open4education
Gestão de Arquitetura
 • Expõe os ciclos de vida do software, facilitando e
   motivando sua a gestão:
    • Requisitos / Backlog / Atividade / User Story
    • Documentação (wiki / files) e suporte (fórum)
    • Versionamento, tags, brunches, ..
    • Gestão de Componentes e repositórios
    • Arquétipos e Templates de Arquitetura
    • Construção
    • Testes – Homologação - Produção
    • Deployment
 @vsenger
                                                Globalcode – Open4education
A.L.M. open-source
 Gestão de componentes              Nexus
 Gerenciamento de Requisitos        Redmine
 Gestão de código / versionamento   SVN, GIT, ...
 Construção e dependências          Maven / Ant
 Gerenciamento de arquétipos        Maven
 Gestão de componentes              Nexus
 Teste Carga / Regressivo           Jmeter / Selenium

 Inspeção                           Sonar
 Integração Contínua                Jenkins




 @vsenger
                                               Globalcode – Open4education
• Oferece esta pilha como SaaS rodando na Amazon
• Mais vantagens ainda:
   • Você tem o ambiente montado em 24hs
   • Você não vai ganhar novos servidores na sua
     empresa!
   • Softwares atualizados pela ToolsCloud e suporte
   • Redmine, SVN, GIT, Hudson, Nexus integrados com
     LDAP é um enorme diferencial


@vsenger
                                            Globalcode – Open4education
A.L.M.
                         1 Novo projeto


   2 RedMine             2    SVN              2   Hudson


   3 Requisitos          4 Codificação     5 Build & Testes

                                               6 Inspeção
        Bugs
  10 e Melhorias
                                               7   Nexus


            9 Produção         8 Homologação

 @vsenger
            Deployment Contínuo                     Globalcode – Open4education
Redmine
• Gerenciamento de Requisitos com:
    • Gestão de pendências;
    • Gerenciamento de horas gastas / time tracking;
    • Integração com SCM;
    • Conceito de projetos e sub-projetos;
    • Fórum, wiki, arquivos, news, calendário, gantt chart e
      sistema de segurança;
• Software open-source construído em Ruby on Rails;
• Centenas de plug-ins e módulos adicionais;
• Muitas possibilidades de customização;
 @vsenger
                                               Globalcode – Open4education
Redmine
• Download e Instalação
    • www.redmine.org
    • Precisa de Ruby 1.8, Rails 2.3.5, Rack 1.0.1,
      RubyGems 1.8, Rake, i18n, libmysql-ruby, libopenssl-
      ruby1.8;




 @vsenger
                                              Globalcode – Open4education
DEMONSTRAÇÃO




 @vsenger
               Globalcode – Open4education
Versionamento
• Temos dezenas de opções de controladores de versões
  de arquivos no mercado:
    • Subversion / SVN
    • CVS
    • GIT
    • Microsft Sourcesafe e TFS
    • Borland Starteam
    • Clearcase



 @vsenger
                                          Globalcode – Open4education
Versionamento
• No mundo open-source os destaques são:
    • CVS: sistema mais antigo e precário, porém, ainda
      muito utilizado. Trabalha com protocolo proprietário;


    • Subversion: evolução do CVS com disponibilização
      via HTTP (além de protocolo proprietário) e alta
      performance para versionamento;


    • GIT: mais moderno ainda, por se tratar de um
      repositório distribuído. Tem muitas vantagens, mas
      demanda mais conhecimento do usuário;
 @vsenger
                                                Globalcode – Open4education
Versionamento
• “Qualidade” dos commits
• Cuidar bem das mensagens
• GIT File System?
• Hooks & ALM




 @vsenger
                             Globalcode – Open4education
Integração com Redmine
• O Redmine pode ser integrar com seu sistema de ;
• Para isso, clique nos Settings do Projeto e, em seguida,
  escolha Repository:




 @vsenger
                                              Globalcode – Open4education
Integração com Redmine
• Ao vincular o projeto a um repositório você terá algumas
  integrações;
• Últimas mudanças e commits no item Activities




 @vsenger
                                              Globalcode – Open4education
Integração com Redmine
• Navegar nos arquivos do SVN via Web clicando no item
  Repository:




 @vsenger
                                           Globalcode – Open4education
Integração com Redmine
• O recurso mais útil é a possibilidade de você referenciar
  as Issues nas mensagens de commit;

 cd /home/almadmin/projetos-svn/projeto1/trunk
 touch novo-arquivo.txt
 svn commit –m “Correçao de problema de encoding da IssueID #2”




 @vsenger
                                                    Globalcode – Open4education
Integração com Redmine
• Você pode configurar as palavras que serão detectadas
  nas mensagens de commit em:
 Redmine –> Administration –> Settings -> Repositories

                               Configuramos as palavras de referência aqui




                          Fixing keywords podem mudar o status da Issue!
 @vsenger
                                                    Globalcode – Open4education
Integração com Redmine
 cd /home/almadmin/projetos-svn/projeto1/trunk
 touch novo-arquivo.txt
 svn commit –m “Correçao de problema closes #2”




 @vsenger
                                                  Globalcode – Open4education
Maven (Java)
 • Gestão de dependências e build do seu software Java;
 • Obriga a declaração das dependências de JAR's;
 • É uma “clínica de softwares dependentes”;
 • Torna seu projeto Java 100% independente de IDE!
 • Representa o elo entre Integração Continua, gestão de
   componentes, modularidade avançada, testes e +;
 • É chato, mas necessário! Alternativa? Gradle.
 • TODA plataforma tem problemas com dependências!
 • Conceito de arquétipos de projetos é excelente;

 @vsenger
                                               Globalcode – Open4education
Nexus (Java)
 • O Maven pode baixar automaticamente bibliotecas da
   Internet (se open-source);
 • Isso é excelente para o desenvolvimento de pequenos
   times, agora se tivermos um time de 100
   desenvolvedores criando projetos Maven que fazem
   downloads da Internet?
 • Fatalmente teremos um problema de rede até que todos
   os Mavens terminem seus downloads!




 @vsenger
                                            Globalcode – Open4education
Introdução Nexus (Java)
 • Para ajudar a solucionar este tipo de problema contamos
   com Gerenciadores de Repositórios, que
   desempenham um papel de proxy para os demais:

            Developer                      Hudson


                        Build com Maven


               jar: log4j, hibernate, spring etc.


                            Nexus


 @vsenger                   Internet
                                                    Globalcode – Open4education
Introdução ao Nexus (Java)
 • O Nexus faz o download centralizado dos componentes
   fazendo um cache que ele utilizará para servir aos
   demais desenvolvedores;


 • Além do papel de cache, o Nexus também pode
   catalogar o componentes e artefatos da sua empresa, do
   seu negócio;


 • Isso facilita bastante o reuso entre equipes;


 • Maven + Nexus + Hudson: parceria perfeita!
 @vsenger
                                                   Globalcode – Open4education
Configurando Maven (Java)
 • Devemos adicionar esta configuração em um arquivo
   settings.xml que ficará no diretório .m2 do usuário:




 @vsenger
                                              Globalcode – Open4education
Configurando Maven (Java)
 • Para que o Maven possa fazer deployment de artefatos
   no Nexus:




 @vsenger
                                            Globalcode – Open4education
Introdução ao Jenkins
 • Jenkins é um servidor open-source de integração
   continua;
 • Um “Continous integration server / CI server” pode
   desempenhar várias tarefas como:
    • Checkout de código-fonte;
    • Build e teste;
    • Publicação de resultados;
    • Comunicação com membros do time;
 • Na prática o Jenkins é um agendador de tarefas de
   construção de softwares altamente customizável;

 @vsenger
                                               Globalcode – Open4education
Introdução ao Jenkins
 • Fácil instalação e configuração;
 • Interface é web based;
 • Pode fazer builds distribuídos;
 • Relatório de teste unitário;
 • Notificação do estado dos builds;
 • Notificação em caso de quebra;




 @vsenger
                                       Globalcode – Open4education
Introdução ao Jenkins
 • Arquitetura extensível baseada em plugins com mais de
   150 de plugins disponíveis;
 • Por padrão vem com 4 plugins instalados:
    • CVS
    • SVN
    • Maven
    • SSH




 @vsenger
                                              Globalcode – Open4education
Instalação e inicialização
 • O Hudson pode funcionar de três formas:
    • Stand-alone: java –jar hudson.war


    • JNLP: https://hudson.dev.java.net/hudson.jnlp


    • JavaEE container: fazendo deploy do hudson.war
      Glassfish, Jboss, Tomcat, Jetty, Winstone,
      Websphere;



 @vsenger
                                              Globalcode – Open4education
Configuração
 • Para fazer as configurações iniciais devemos clicar em
   Manage Hudson




 @vsenger
                                               Globalcode – Open4education
Configuração
 • Em seguida Configure System teremos acesso as
   principais configurações do Hudson:




  Representa o no. de
  executores de builds.
 @vsenger
                                          Globalcode – Open4education
Configuração
 • Após a instalação é importante configurar o local onde
   estão instalados JDK, Maven e Ant (se usar);




 @vsenger
                                               Globalcode – Open4education
Configuração
 • A outra configuração importante é uma conta de e-mail
   funcionando para o Hudson poder se comunicar com
   equipes:




 @vsenger
                                              Globalcode – Open4education
Dashboard
• O dashboard traz as informações sobre os diversos jobs /
  projetos configurados;
• Este ícone indica a estabilidade dos builds:




 @vsenger
                                                 Globalcode – Open4education
Selenium
• Testes regressivos de aplicativos Web;
• Capaz de abrir diferentes navegadores, entrar com dados
  em formulários e analisar a resposta;
• Selenium IDE: plug-in para firefox que permite gravar
  scripts de testes;
• Selenium WebDriver: API Java para executar scripts
• Selenium Server: testes remotos
• Selenese: DSL para simulação
• DEMO


 @vsenger
                                              Globalcode – Open4education
Arquétipo
• Representa o template de arquitetura;
• Contém os principais elementos de arquitetura;
• Gestão de arquétipos é muito importante para grande
  cenários multi-arquitetura;
• Com maven podemos escolher centenas de diferentes
  arquétipos existentes:
   – mvn archetype:generate




 @vsenger
                                              Globalcode – Open4education
Conclusões

 • Tem que ser gostoso modularizar, implantar, testar,
   integrar, simular!
 • Todas as ferramentas apresentadas são open-source;
 • Podem funcionar com Delphi, C, C++, Ruby, entre outras
   plataformas;
 • Muitas possibilidades de customização;
 • Para pessoal de Java,




 @vsenger
                                              Globalcode – Open4education
Obrigado!
 vinicius@globalcode.com.br
 @vsenger




 @vsenger
                              Globalcode – Open4education

Mais conteúdo relacionado

Mais procurados

DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014
Leo Lorieri
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
Gilmar Pupo
 
DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack Microsoft
Graziella Bonizi
 
Jenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaJenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do Java
Fernando Boaglio
 
UAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsUAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao Jenkins
Stefan Teixeira
 
Jenkins
JenkinsJenkins
Jenkins
Emmanuel Neri
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
ocfelipe
 
Docker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entregaDocker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entrega
Humberto Streb
 
DevOps, NoOps...afinal que raios é isso?
DevOps, NoOps...afinal que raios é isso?DevOps, NoOps...afinal que raios é isso?
DevOps, NoOps...afinal que raios é isso?
Thiago Ganzarolli
 
Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaS
Eder Magalhães
 
Vamos falar de DevOps?
Vamos falar de DevOps?Vamos falar de DevOps?
Vamos falar de DevOps?
Karini Rodrigues Magalhaes
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.
Leonardo Kobus
 
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia IIDevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
Alefe Variani
 
Integração Continua - Jenkins
Integração Continua - JenkinsIntegração Continua - Jenkins
Integração Continua - Jenkins
João Carlos Ottobboni
 
Introducao ao Git
Introducao ao GitIntroducao ao Git
Introducao ao Git
Claudinei Brito Junior
 
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOpsE se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
Edson Celio
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
Felipe Caputo
 
Simtecce 2011 Integracao Continua
Simtecce 2011 Integracao ContinuaSimtecce 2011 Integracao Continua
Simtecce 2011 Integracao Continua
PwC
 
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo FilhoDesenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Tchelinux
 
Implantação de Ambiente de Integração contínua para projeto que usa Java e C
Implantação de Ambiente de Integração contínua para  projeto que usa Java e CImplantação de Ambiente de Integração contínua para  projeto que usa Java e C
Implantação de Ambiente de Integração contínua para projeto que usa Java e C
Eliane Collins
 

Mais procurados (20)

DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014DevOps com Exemplos Práticos - QConRio 2014
DevOps com Exemplos Práticos - QConRio 2014
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
 
DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack Microsoft
 
Jenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaJenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do Java
 
UAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsUAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao Jenkins
 
Jenkins
JenkinsJenkins
Jenkins
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
Docker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entregaDocker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entrega
 
DevOps, NoOps...afinal que raios é isso?
DevOps, NoOps...afinal que raios é isso?DevOps, NoOps...afinal que raios é isso?
DevOps, NoOps...afinal que raios é isso?
 
Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaS
 
Vamos falar de DevOps?
Vamos falar de DevOps?Vamos falar de DevOps?
Vamos falar de DevOps?
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.
 
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia IIDevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
 
Integração Continua - Jenkins
Integração Continua - JenkinsIntegração Continua - Jenkins
Integração Continua - Jenkins
 
Introducao ao Git
Introducao ao GitIntroducao ao Git
Introducao ao Git
 
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOpsE se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
 
Simtecce 2011 Integracao Continua
Simtecce 2011 Integracao ContinuaSimtecce 2011 Integracao Continua
Simtecce 2011 Integracao Continua
 
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo FilhoDesenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
 
Implantação de Ambiente de Integração contínua para projeto que usa Java e C
Implantação de Ambiente de Integração contínua para  projeto que usa Java e CImplantação de Ambiente de Integração contínua para  projeto que usa Java e C
Implantação de Ambiente de Integração contínua para projeto que usa Java e C
 

Destaque

Aplicando logica orientada_a_objeto_em_java
Aplicando logica orientada_a_objeto_em_javaAplicando logica orientada_a_objeto_em_java
Aplicando logica orientada_a_objeto_em_java
Carlos Antonio Castro Oliveira
 
Introdução à programação em Android - Alcides Maya 16.04.2013
Introdução à programação em Android - Alcides Maya 16.04.2013Introdução à programação em Android - Alcides Maya 16.04.2013
Introdução à programação em Android - Alcides Maya 16.04.2013
guisester
 
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Luís Gustavo Martins
 
Conceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoConceitos e técnicas de programação introdução
Conceitos e técnicas de programação introdução
Robson Ferreira
 
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
Manuel Menezes de Sequeira
 
Programação Orientada por Objectos - Aula 5
Programação Orientada por Objectos - Aula 5Programação Orientada por Objectos - Aula 5
Programação Orientada por Objectos - Aula 5
Manuel Menezes de Sequeira
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
Moises Omena
 
Enterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na práticaEnterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na prática
Globalcode
 
Javafx Introdução
Javafx IntroduçãoJavafx Introdução
Javafx Introdução
Fábio Nogueira de Lucena
 
Palestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao JavafxPalestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao Javafx
alfredofurtado
 
Java persintence api
Java persintence apiJava persintence api
Java persintence api
Eduardo Carvalho
 
Internet das Coisas com Java e Things API
Internet das Coisas com Java e Things APIInternet das Coisas com Java e Things API
Internet das Coisas com Java e Things API
Globalcode
 
Campus Party 2014 - Internet das Coisas com coisas reais
Campus Party 2014 - Internet das Coisas com coisas reaisCampus Party 2014 - Internet das Coisas com coisas reais
Campus Party 2014 - Internet das Coisas com coisas reais
Globalcode
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
Rafael Carneiro
 
Ria e Java FX
Ria e Java FXRia e Java FX
Ria e Java FX
Marcelo Quinta
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
Robson Ferreira
 
JavaFX: Abordagem Prática
JavaFX: Abordagem PráticaJavaFX: Abordagem Prática
JavaFX: Abordagem Prática
Eder Magalhães
 
POO - Aula 10 - Polimorfismo
POO - Aula 10 - PolimorfismoPOO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
Felipe J. R. Vieira
 
POO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de ClassePOO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de Classe
Felipe J. R. Vieira
 
JavaFx - Guia Prático
JavaFx - Guia PráticoJavaFx - Guia Prático
JavaFx - Guia Prático
danielfc
 

Destaque (20)

Aplicando logica orientada_a_objeto_em_java
Aplicando logica orientada_a_objeto_em_javaAplicando logica orientada_a_objeto_em_java
Aplicando logica orientada_a_objeto_em_java
 
Introdução à programação em Android - Alcides Maya 16.04.2013
Introdução à programação em Android - Alcides Maya 16.04.2013Introdução à programação em Android - Alcides Maya 16.04.2013
Introdução à programação em Android - Alcides Maya 16.04.2013
 
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
 
Conceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoConceitos e técnicas de programação introdução
Conceitos e técnicas de programação introdução
 
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
 
Programação Orientada por Objectos - Aula 5
Programação Orientada por Objectos - Aula 5Programação Orientada por Objectos - Aula 5
Programação Orientada por Objectos - Aula 5
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
 
Enterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na práticaEnterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na prática
 
Javafx Introdução
Javafx IntroduçãoJavafx Introdução
Javafx Introdução
 
Palestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao JavafxPalestra Sepai Alfredofurtado Introducao Ao Javafx
Palestra Sepai Alfredofurtado Introducao Ao Javafx
 
Java persintence api
Java persintence apiJava persintence api
Java persintence api
 
Internet das Coisas com Java e Things API
Internet das Coisas com Java e Things APIInternet das Coisas com Java e Things API
Internet das Coisas com Java e Things API
 
Campus Party 2014 - Internet das Coisas com coisas reais
Campus Party 2014 - Internet das Coisas com coisas reaisCampus Party 2014 - Internet das Coisas com coisas reais
Campus Party 2014 - Internet das Coisas com coisas reais
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 
Ria e Java FX
Ria e Java FXRia e Java FX
Ria e Java FX
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
JavaFX: Abordagem Prática
JavaFX: Abordagem PráticaJavaFX: Abordagem Prática
JavaFX: Abordagem Prática
 
POO - Aula 10 - Polimorfismo
POO - Aula 10 - PolimorfismoPOO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
 
POO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de ClassePOO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de Classe
 
JavaFx - Guia Prático
JavaFx - Guia PráticoJavaFx - Guia Prático
JavaFx - Guia Prático
 

Semelhante a Introdução a Application Life-cycle Management Open Source

Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!
Globalcode
 
Integração Contínua com Hudson
Integração Contínua com HudsonIntegração Contínua com Hudson
Integração Contínua com Hudson
Luis Reis
 
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...
tdc-globalcode
 
Zend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteZend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil Competente
Michael Cardoso
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
Carlos Gonzaga
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
tdc-globalcode
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
Giovanni Bassi
 
Web Tools Pt Br
Web Tools Pt BrWeb Tools Pt Br
Web Tools Pt Br
Paulo Mattos
 
IC-Testes Invasao
IC-Testes InvasaoIC-Testes Invasao
IC-Testes Invasao
Denny Vriesman
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
tdc-globalcode
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em Go
Alvaro Viebrantz
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
Norberto Santos
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Amazon Web Services LATAM
 
Integração contínua com Jenkins
Integração contínua com JenkinsIntegração contínua com Jenkins
Integração contínua com Jenkins
Aécio Pires
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Thiago Sinésio
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
Valmir Justo
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
Amazon Web Services LATAM
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
Mayara Fernandes
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto Globalcode
Globalcode
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Renato Groff
 

Semelhante a Introdução a Application Life-cycle Management Open Source (20)

Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!
 
Integração Contínua com Hudson
Integração Contínua com HudsonIntegração Contínua com Hudson
Integração Contínua com Hudson
 
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...
TDC 2013 SP | Trilha ALM: Construindo uma solução de ponta a ponta com ferram...
 
Zend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteZend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil Competente
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
Web Tools Pt Br
Web Tools Pt BrWeb Tools Pt Br
Web Tools Pt Br
 
IC-Testes Invasao
IC-Testes InvasaoIC-Testes Invasao
IC-Testes Invasao
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em Go
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
 
Integração contínua com Jenkins
Integração contínua com JenkinsIntegração contínua com Jenkins
Integração contínua com Jenkins
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto Globalcode
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
 

Mais de Globalcode

Use scratch para aprender a programar se divertindo
Use scratch para aprender a programar se divertindoUse scratch para aprender a programar se divertindo
Use scratch para aprender a programar se divertindo
Globalcode
 
Java, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de InovaçãoJava, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de Inovação
Globalcode
 
Internet das Coisas com Coisas Reais: Java , Things API, Raspberry PI e Toys!
Internet das Coisas com Coisas Reais:  Java , Things API, Raspberry PI e Toys!Internet das Coisas com Coisas Reais:  Java , Things API, Raspberry PI e Toys!
Internet das Coisas com Coisas Reais: Java , Things API, Raspberry PI e Toys!
Globalcode
 
Contruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things API
Contruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things APIContruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things API
Contruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things API
Globalcode
 
Palestra sobre Carreira Java / JavaEE - TDC2012 - Trlha Java
Palestra sobre Carreira Java / JavaEE - TDC2012 - Trlha JavaPalestra sobre Carreira Java / JavaEE - TDC2012 - Trlha Java
Palestra sobre Carreira Java / JavaEE - TDC2012 - Trlha Java
Globalcode
 
Android com Arduino: como integrar via bluetooth, Google ADK ou wi-fi
Android com Arduino: como integrar via bluetooth, Google ADK ou wi-fiAndroid com Arduino: como integrar via bluetooth, Google ADK ou wi-fi
Android com Arduino: como integrar via bluetooth, Google ADK ou wi-fi
Globalcode
 
Placa Tomada - Controlando Tomadas com Arduino
Placa Tomada - Controlando Tomadas com ArduinoPlaca Tomada - Controlando Tomadas com Arduino
Placa Tomada - Controlando Tomadas com Arduino
Globalcode
 
33 design patterns com Java
33 design patterns com Java33 design patterns com Java
33 design patterns com Java
Globalcode
 
O futuro do arquiteto e das arquiteturas Java Enterprise
O futuro do arquiteto e das arquiteturas Java EnterpriseO futuro do arquiteto e das arquiteturas Java Enterprise
O futuro do arquiteto e das arquiteturas Java Enterprise
Globalcode
 
Academia do Arquiteto - Introdução a ALM e Redmine
Academia do Arquiteto - Introdução a ALM e RedmineAcademia do Arquiteto - Introdução a ALM e Redmine
Academia do Arquiteto - Introdução a ALM e Redmine
Globalcode
 

Mais de Globalcode (10)

Use scratch para aprender a programar se divertindo
Use scratch para aprender a programar se divertindoUse scratch para aprender a programar se divertindo
Use scratch para aprender a programar se divertindo
 
Java, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de InovaçãoJava, Internet das Coisas, Things API e Arquiteturas de Inovação
Java, Internet das Coisas, Things API e Arquiteturas de Inovação
 
Internet das Coisas com Coisas Reais: Java , Things API, Raspberry PI e Toys!
Internet das Coisas com Coisas Reais:  Java , Things API, Raspberry PI e Toys!Internet das Coisas com Coisas Reais:  Java , Things API, Raspberry PI e Toys!
Internet das Coisas com Coisas Reais: Java , Things API, Raspberry PI e Toys!
 
Contruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things API
Contruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things APIContruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things API
Contruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things API
 
Palestra sobre Carreira Java / JavaEE - TDC2012 - Trlha Java
Palestra sobre Carreira Java / JavaEE - TDC2012 - Trlha JavaPalestra sobre Carreira Java / JavaEE - TDC2012 - Trlha Java
Palestra sobre Carreira Java / JavaEE - TDC2012 - Trlha Java
 
Android com Arduino: como integrar via bluetooth, Google ADK ou wi-fi
Android com Arduino: como integrar via bluetooth, Google ADK ou wi-fiAndroid com Arduino: como integrar via bluetooth, Google ADK ou wi-fi
Android com Arduino: como integrar via bluetooth, Google ADK ou wi-fi
 
Placa Tomada - Controlando Tomadas com Arduino
Placa Tomada - Controlando Tomadas com ArduinoPlaca Tomada - Controlando Tomadas com Arduino
Placa Tomada - Controlando Tomadas com Arduino
 
33 design patterns com Java
33 design patterns com Java33 design patterns com Java
33 design patterns com Java
 
O futuro do arquiteto e das arquiteturas Java Enterprise
O futuro do arquiteto e das arquiteturas Java EnterpriseO futuro do arquiteto e das arquiteturas Java Enterprise
O futuro do arquiteto e das arquiteturas Java Enterprise
 
Academia do Arquiteto - Introdução a ALM e Redmine
Academia do Arquiteto - Introdução a ALM e RedmineAcademia do Arquiteto - Introdução a ALM e Redmine
Academia do Arquiteto - Introdução a ALM e Redmine
 

Introdução a Application Life-cycle Management Open Source

  • 1. Application Lifecycle Management Vinicius Senger @vsenger Globalcode – Open4education
  • 2. Agenda Introdução a Application Lifecycle Management A.L.M. open source Arquétipos & A.L.M. Demonstrações práticas @vsenger Globalcode – Open4education
  • 3. Vinicius Senger vinicius@globalcode.com.br @vsenger Fundador da Globalcode Programador Desenvolvimento e Pesquisas Open-source hardware developer Entusiasta da vida: beatles, pizza, vinhos, surf, travessias oceânicas, filhos, código, yoga, home- office, violão, robôs (e $ pra sustentar tudo isso). Sou beta forever! @vsenger Globalcode – Open4education
  • 4. A.L.M. • Application Lifecycle Management: gerenciamento contínuo do software; • Casamento da gestão de negócio com engenharia de software; • Requer ferramentas integradas para gerenciar: Requisitos / backlog / projeto; Repositório de código; Construção integrada; Arquitetura e codificação; Testes e qualidade; Gerenciamento de versões e componentes; @vsenger Globalcode – Open4education
  • 5. A.L.M. • Independente de metodologia, arquitetura e tecnologia TODA EMPRESA PRECISA DE A.L.M. • ALM = é como álbum de fotografia do seu software, com retratos tirados automaticamente a cada mudança, falha, novo requisito, novo release, etc. • Maior exposição da T.I. para líderes; • Todo mundo sai ganhando! @vsenger Globalcode – Open4education
  • 6. A.L.M. - vantagens • Vantagens na adoção: • Rastreabilidade e dados post-hoc; • Cultura de planejamento de releases / backlog; • Gerenciamento integrado; • Simplificação nos processos; • Agilidade na construção do software; • Conseqüente aumento na cultura de testes; • Aumento da reusabilidade; • Agilidade na prática! @vsenger Globalcode – Open4education
  • 7. Gestão de Arquitetura • Expõe os ciclos de vida do software, facilitando e motivando sua a gestão: • Requisitos / Backlog / Atividade / User Story • Documentação (wiki / files) e suporte (fórum) • Versionamento, tags, brunches, .. • Gestão de Componentes e repositórios • Arquétipos e Templates de Arquitetura • Construção • Testes – Homologação - Produção • Deployment @vsenger Globalcode – Open4education
  • 8. A.L.M. open-source Gestão de componentes Nexus Gerenciamento de Requisitos Redmine Gestão de código / versionamento SVN, GIT, ... Construção e dependências Maven / Ant Gerenciamento de arquétipos Maven Gestão de componentes Nexus Teste Carga / Regressivo Jmeter / Selenium Inspeção Sonar Integração Contínua Jenkins @vsenger Globalcode – Open4education
  • 9. • Oferece esta pilha como SaaS rodando na Amazon • Mais vantagens ainda: • Você tem o ambiente montado em 24hs • Você não vai ganhar novos servidores na sua empresa! • Softwares atualizados pela ToolsCloud e suporte • Redmine, SVN, GIT, Hudson, Nexus integrados com LDAP é um enorme diferencial @vsenger Globalcode – Open4education
  • 10. A.L.M. 1 Novo projeto 2 RedMine 2 SVN 2 Hudson 3 Requisitos 4 Codificação 5 Build & Testes 6 Inspeção Bugs 10 e Melhorias 7 Nexus 9 Produção 8 Homologação @vsenger Deployment Contínuo Globalcode – Open4education
  • 11. Redmine • Gerenciamento de Requisitos com: • Gestão de pendências; • Gerenciamento de horas gastas / time tracking; • Integração com SCM; • Conceito de projetos e sub-projetos; • Fórum, wiki, arquivos, news, calendário, gantt chart e sistema de segurança; • Software open-source construído em Ruby on Rails; • Centenas de plug-ins e módulos adicionais; • Muitas possibilidades de customização; @vsenger Globalcode – Open4education
  • 12. Redmine • Download e Instalação • www.redmine.org • Precisa de Ruby 1.8, Rails 2.3.5, Rack 1.0.1, RubyGems 1.8, Rake, i18n, libmysql-ruby, libopenssl- ruby1.8; @vsenger Globalcode – Open4education
  • 13. DEMONSTRAÇÃO @vsenger Globalcode – Open4education
  • 14. Versionamento • Temos dezenas de opções de controladores de versões de arquivos no mercado: • Subversion / SVN • CVS • GIT • Microsft Sourcesafe e TFS • Borland Starteam • Clearcase @vsenger Globalcode – Open4education
  • 15. Versionamento • No mundo open-source os destaques são: • CVS: sistema mais antigo e precário, porém, ainda muito utilizado. Trabalha com protocolo proprietário; • Subversion: evolução do CVS com disponibilização via HTTP (além de protocolo proprietário) e alta performance para versionamento; • GIT: mais moderno ainda, por se tratar de um repositório distribuído. Tem muitas vantagens, mas demanda mais conhecimento do usuário; @vsenger Globalcode – Open4education
  • 16. Versionamento • “Qualidade” dos commits • Cuidar bem das mensagens • GIT File System? • Hooks & ALM @vsenger Globalcode – Open4education
  • 17. Integração com Redmine • O Redmine pode ser integrar com seu sistema de ; • Para isso, clique nos Settings do Projeto e, em seguida, escolha Repository: @vsenger Globalcode – Open4education
  • 18. Integração com Redmine • Ao vincular o projeto a um repositório você terá algumas integrações; • Últimas mudanças e commits no item Activities @vsenger Globalcode – Open4education
  • 19. Integração com Redmine • Navegar nos arquivos do SVN via Web clicando no item Repository: @vsenger Globalcode – Open4education
  • 20. Integração com Redmine • O recurso mais útil é a possibilidade de você referenciar as Issues nas mensagens de commit; cd /home/almadmin/projetos-svn/projeto1/trunk touch novo-arquivo.txt svn commit –m “Correçao de problema de encoding da IssueID #2” @vsenger Globalcode – Open4education
  • 21. Integração com Redmine • Você pode configurar as palavras que serão detectadas nas mensagens de commit em: Redmine –> Administration –> Settings -> Repositories Configuramos as palavras de referência aqui Fixing keywords podem mudar o status da Issue! @vsenger Globalcode – Open4education
  • 22. Integração com Redmine cd /home/almadmin/projetos-svn/projeto1/trunk touch novo-arquivo.txt svn commit –m “Correçao de problema closes #2” @vsenger Globalcode – Open4education
  • 23. Maven (Java) • Gestão de dependências e build do seu software Java; • Obriga a declaração das dependências de JAR's; • É uma “clínica de softwares dependentes”; • Torna seu projeto Java 100% independente de IDE! • Representa o elo entre Integração Continua, gestão de componentes, modularidade avançada, testes e +; • É chato, mas necessário! Alternativa? Gradle. • TODA plataforma tem problemas com dependências! • Conceito de arquétipos de projetos é excelente; @vsenger Globalcode – Open4education
  • 24. Nexus (Java) • O Maven pode baixar automaticamente bibliotecas da Internet (se open-source); • Isso é excelente para o desenvolvimento de pequenos times, agora se tivermos um time de 100 desenvolvedores criando projetos Maven que fazem downloads da Internet? • Fatalmente teremos um problema de rede até que todos os Mavens terminem seus downloads! @vsenger Globalcode – Open4education
  • 25. Introdução Nexus (Java) • Para ajudar a solucionar este tipo de problema contamos com Gerenciadores de Repositórios, que desempenham um papel de proxy para os demais: Developer Hudson Build com Maven jar: log4j, hibernate, spring etc. Nexus @vsenger Internet Globalcode – Open4education
  • 26. Introdução ao Nexus (Java) • O Nexus faz o download centralizado dos componentes fazendo um cache que ele utilizará para servir aos demais desenvolvedores; • Além do papel de cache, o Nexus também pode catalogar o componentes e artefatos da sua empresa, do seu negócio; • Isso facilita bastante o reuso entre equipes; • Maven + Nexus + Hudson: parceria perfeita! @vsenger Globalcode – Open4education
  • 27. Configurando Maven (Java) • Devemos adicionar esta configuração em um arquivo settings.xml que ficará no diretório .m2 do usuário: @vsenger Globalcode – Open4education
  • 28. Configurando Maven (Java) • Para que o Maven possa fazer deployment de artefatos no Nexus: @vsenger Globalcode – Open4education
  • 29. Introdução ao Jenkins • Jenkins é um servidor open-source de integração continua; • Um “Continous integration server / CI server” pode desempenhar várias tarefas como: • Checkout de código-fonte; • Build e teste; • Publicação de resultados; • Comunicação com membros do time; • Na prática o Jenkins é um agendador de tarefas de construção de softwares altamente customizável; @vsenger Globalcode – Open4education
  • 30. Introdução ao Jenkins • Fácil instalação e configuração; • Interface é web based; • Pode fazer builds distribuídos; • Relatório de teste unitário; • Notificação do estado dos builds; • Notificação em caso de quebra; @vsenger Globalcode – Open4education
  • 31. Introdução ao Jenkins • Arquitetura extensível baseada em plugins com mais de 150 de plugins disponíveis; • Por padrão vem com 4 plugins instalados: • CVS • SVN • Maven • SSH @vsenger Globalcode – Open4education
  • 32. Instalação e inicialização • O Hudson pode funcionar de três formas: • Stand-alone: java –jar hudson.war • JNLP: https://hudson.dev.java.net/hudson.jnlp • JavaEE container: fazendo deploy do hudson.war Glassfish, Jboss, Tomcat, Jetty, Winstone, Websphere; @vsenger Globalcode – Open4education
  • 33. Configuração • Para fazer as configurações iniciais devemos clicar em Manage Hudson @vsenger Globalcode – Open4education
  • 34. Configuração • Em seguida Configure System teremos acesso as principais configurações do Hudson: Representa o no. de executores de builds. @vsenger Globalcode – Open4education
  • 35. Configuração • Após a instalação é importante configurar o local onde estão instalados JDK, Maven e Ant (se usar); @vsenger Globalcode – Open4education
  • 36. Configuração • A outra configuração importante é uma conta de e-mail funcionando para o Hudson poder se comunicar com equipes: @vsenger Globalcode – Open4education
  • 37. Dashboard • O dashboard traz as informações sobre os diversos jobs / projetos configurados; • Este ícone indica a estabilidade dos builds: @vsenger Globalcode – Open4education
  • 38. Selenium • Testes regressivos de aplicativos Web; • Capaz de abrir diferentes navegadores, entrar com dados em formulários e analisar a resposta; • Selenium IDE: plug-in para firefox que permite gravar scripts de testes; • Selenium WebDriver: API Java para executar scripts • Selenium Server: testes remotos • Selenese: DSL para simulação • DEMO @vsenger Globalcode – Open4education
  • 39. Arquétipo • Representa o template de arquitetura; • Contém os principais elementos de arquitetura; • Gestão de arquétipos é muito importante para grande cenários multi-arquitetura; • Com maven podemos escolher centenas de diferentes arquétipos existentes: – mvn archetype:generate @vsenger Globalcode – Open4education
  • 40. Conclusões • Tem que ser gostoso modularizar, implantar, testar, integrar, simular! • Todas as ferramentas apresentadas são open-source; • Podem funcionar com Delphi, C, C++, Ruby, entre outras plataformas; • Muitas possibilidades de customização; • Para pessoal de Java, @vsenger Globalcode – Open4education
  • 41. Obrigado! vinicius@globalcode.com.br @vsenger @vsenger Globalcode – Open4education

Notas do Editor

  1. abrir falando: eu estou mais motivado que o normal hoje em dia, pois o progresso da tecnologia tem trazido muitas facilidades para desenvolver softwares e eventualmente criar um business ao redor dele.