14
Coders on Beer - DevOps 03/setembro

Jenkins x TeamCity

Embed Size (px)

Citation preview

Page 1: Jenkins x TeamCity

Coders on Beer - DevOps03/setembro

Page 2: Jenkins x TeamCity

X

Page 3: Jenkins x TeamCity

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.

Page 4: Jenkins x TeamCity

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

Page 5: Jenkins x TeamCity

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

Page 6: Jenkins x TeamCity

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;

Page 7: Jenkins x TeamCity

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.

Page 8: Jenkins x TeamCity

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.

Page 9: Jenkins x TeamCity

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;

Page 10: Jenkins x TeamCity

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.

Page 11: Jenkins x TeamCity

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.

Page 12: Jenkins x TeamCity

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.

Page 13: Jenkins x TeamCity

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.

Page 14: Jenkins x TeamCity

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