Post on 15-Apr-2017
Coders on Beer - DevOps03/setembro
X
Jenkins - Overview
● Projeto Hudson (Sun Microsystems);● Primeiro release em 2005;● Mais de 1,6 mil releases;● 7 dias de disponibilização de versões;● Desenvolvido em Java;● 1076 plugins para apoiar construção e testes;● Instalação em Linux, Windows e Mac OS X.
TeamCity - Overview
● Jetbrains;
● Primeiro release em 2006;
● 9 versões, um release por ano;
● Desenvolvido em Java;
● Mais de 130 plugins para construção e testes;
● Free até 20 configurações de build e 3 agentes slave;
● Instaladores para Windows, Linux e Mac OS X
Jenkins - Características
● Fácil instalação e atualização; intuitivo;
● Não precisa de estrutura para construção do projeto;
● Fácil gerenciamento e atualizações dos plugins;
● Persistência dos dados do sistema em disco.
● Acesso API em Python, XML e JSON
Jenkins - Características
● Integração com cloud computing;
● Não possui setup para a instalação;
● Wiki rica em detalhes quanto ao sistema e utilização dos plugins;
● Integra com os principais VCS do mercado: Git, Mercurial e Subversion;
TeamCity - Características
● Fácil instalação e atualização, mas não intuitivo.
● Criação de projeto necessária para iniciar as configurações do build;
● Fácil gerenciamento e atualizações dos plugins;
● Persistência dos dados do sistema em disco e em banco de dados. Default: HSQLDB, MySQL, PostgreSQL, Oracle e MS SQL.
TeamCity - Características
● Acesso API em Python, XML e JSON;
● Integração com cloud computing;
● Setup para a instalação;
● Na primeira instalação, é obrigatória a criação de um usuário e senha de administrador para acesso;
● Wiki rica em detalhes sobre sistema e plugins;
● Integra com Git, Mercurial e Subversion.
Jenkins - Boas práticas
● Subir o Jenkins com o Docker;
● Ativar autenticação;
● Forçar o acesso com usuários identificados;
● Realizar backup da home do Jenkins regularmente;
● Gerenciar o espaço em disco;
● Configurar as notificações dos builds;
Jenkins - Boas práticas
● Configurar os builds para gerar os relatórios;
● Implementar medidas para resolver/mitigar as falhas nos builds;
● Para ambientes complexos, utilizar servidores escravos (slaves) para a execução dos builds;
● Integrar com um sistema de controle de versão;
● Versionar os artefatos gerados nos builds.
TeamCity - Boas práticas
● Subir o TeamCity com o Docker;
● Realizar backup do Team City regularmente;
● Não utilizar o banco de dados default para um grande volume de dados;
● Configurar as notificações dos builds;
● Configurar os builds para gerar os devidos relatórios.
TeamCity - Boas Práticas
● Implementar medidas para resolver/mitigar as falhas nos builds;
● Para ambientes complexos, utilizar servidores escravos (slaves) para a execução dos builds;
● Integrar com um sistema de controle de versão;
● Versionar os artefatos gerados nos builds.
TeamCity - Build Agents
● Como endereçar a execução de projetos com diferentes arquiteturas (NodeJS, Java, Android, iOS, etc.)?
● Configuração baseada em propriedades:
Slave X – NPM instalado
Slave Y – Java JDK instalado
● Não é necessário configurar um slave para cada projeto;● Pode existir um pool de agentes com essas configurações
de propriedade.
blog.concretesolutions.com.brwww.concretesolutions.com.br
Rio de JaneiroRua São José, 90 cj. 2121 - Centro (21) 2240-2030
São PauloRua Sansão Alves dos Santos, 433 -
4º andar - Brooklin(11) 4119-0449