• Nenhum resultado encontrado

Integração Contínua com containers Docker. Fabricio

N/A
N/A
Protected

Academic year: 2021

Share "Integração Contínua com containers Docker. Fabricio"

Copied!
58
0
0

Texto

(1)

Integração Contínua com containers Docker

Fabricio Leotti

[email protected]

@lonefreak

(2)

Agenda

Stacks

Continuous Integration

Docker

Dockerize Continuous Integration

Docker + Jenkins

(3)

Devtools

(4)

Stacks

(5)

Stacks

(6)

Stacks

(7)

Stacks

(8)

Stacks

(9)

Stacks

(10)

Stacks

(11)

Stacks

(12)

Stacks

(13)

Stacks

(14)

Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.

-- Martin Fowler

Continuous Integration

(15)

Maintain a code repository Automate the build Make the build self-testing

Everyone commits to the baseline every day Every commit (to baseline) should be built Test in a clone of the production environment

Make it easy to get the latest deliverables Everyone can see the results of the latest build

Keep the build fast Automate deployment

Continuous Integration

(16)

Maintain a code repository Automate the build Make the build self-testing

Everyone commits to the baseline every day Every commit (to baseline) should be built Test in a clone of the production environment

Make it easy to get the latest deliverables Everyone can see the results of the latest build

Keep the build fast Automate deployment

Continuous Integration

(17)

Maintain a code repository Automate the build Make the build self-testing

Everyone commits to the baseline every day Every commit (to baseline) should be built Test in a clone of the production environment

Make it easy to get the latest deliverables Everyone can see the results of the latest build

Keep the build fast Automate deployment

Continuous Integration

(18)

Maintain a code repository Automate the build Make the build self-testing

Everyone commits to the baseline every day Every commit (to baseline) should be built Test in a clone of the production environment

Make it easy to get the latest deliverables Everyone can see the results of the latest build

Keep the build fast Automate deployment

Continuous Integration

(19)

Maintain a code repository Automate the build Make the build self-testing

Everyone commits to the baseline every day Every commit (to baseline) should be built Test in a clone of the production environment

Make it easy to get the latest deliverables Everyone can see the results of the latest build

Keep the build fast Automate deployment

Continuous Integration

(20)

Maintain a code repository Automate the build Make the build self-testing

Everyone commits to the baseline every day Every commit (to baseline) should be built Test in a clone of the production environment

Make it easy to get the latest deliverables Everyone can see the results of the latest build

Keep the build fast Automate deployment

Continuous Integration

(21)

Maintain a code repository Automate the build Make the build self-testing

Everyone commits to the baseline every day Every commit (to baseline) should be built Test in a clone of the production environment

Make it easy to get the latest deliverables Everyone can see the results of the latest build

Keep the build fast Automate deployment

Continuous Integration

(22)

Continuous Integration

(23)

Continuous Integration

(24)

Continuous Integration

(25)

Continuous Integration

(26)

Continuous Integration

(27)

Continuous Integration

(28)

Continuous Integration

(29)

Continuous Integration

(30)
(31)

Docker

(32)

Docker

(33)

Docker

(34)

PRODUCTION READY??

Docker

(35)

Docker

(36)

Docker

(37)

Docker

(38)

Dockerize Continuous Integration

(39)

Dockerize Continuous Integration

(40)

Dockerize Continuous Integration

(41)

Dockerize Continuous Integration

(42)

Dockerize Continuous Integration

(43)

Dockerize Continuous Integration

(44)

Dockerize Continuous Integration

(45)

Dockerize Continuous Integration

(46)

Dockerize Continuous Integration

(47)
(48)
(49)

Docker + Jenkins = Amor

empacotamento de aplicações

FPM

https://github.com/jordansissel/fpm build.sh

$FPM_OPTS

(50)

Docker + Jenkins = Amor

empacotamento de aplicações

Especialmente útil para linguagens que sem facilidades para empacotar Desacoplamento entre a aplicação e o

ambiente Script de empacotamento no controle de versão Sem conflito entre dependências

Container precisa de acesso ao workspace

Nem sempre é a melhor solução Cuidado com a arquitetura em que ocorre o empacotamento

(51)

Docker + Jenkins = Amor

teste e análise uniformes

(52)

Docker + Jenkins = Amor

teste e análise uniformes

Ideal para ambientes de CI com mutas necessidades diferentes Liberdade na escolha da sua pilha de

testes Ambiente de integração contínua organizado Fácil reprodução e manutenção do

ambiente de testes Código de execução dos testes no

controle de versão

Container precisa de acesso ao workspace

CI Server precisa ter permissão pra manipular artefatos

É uma “caixa preta” se os devs não conhecerem Docker

Manutenção do Docker host

(53)

Docker + Jenkins = Amor

Jenkins slaves com containers

(54)

Docker + Jenkins = Amor

Jenkins slaves com containers

Funciona bem para casos onde não há ambiente sob demanda Mais rápido do que usar VMs Escala facilmente com muito jobs Permite usar containers como artefatos de build

Documentação escassa

Cada job necessita de uma imagem cadastrada

Volumes para os caches de dependências

Container precisa de acesso ao workspace

CI Server/Container precisa ter permissão pra manipular artefatos

(55)

Docker + Jenkins = Amor

testes de integração

(56)

integração contínua de cookbooks

Docker + Jenkins = Amor

driver_plugin: docker driver_config:

socket: tcp://docke.host:5000 dockerfile: test/Dockerfile

http://kitchen.ci/

(57)
(58)

[email protected] @lonefreak

Referências

Documentos relacionados

Na forma de pagamento Pós-Paga ou na hi- pótese de haver a alteração automática da forma de pagamento para Pré-Paga durante o período de Permanência Mínima, no caso de

O projeto ou proposta de revisão deverá ser votado pelas duas assem - bléias em term os idênticos, sendo que ela será definitiva depois de aprovada pelo referendum. Todavia, o

Este projeto buscou desenvolver uma pesquisa sobre a “Geração Y” e desenvolver produtos de moda coerentes com seu estilo de vida, para isso foi atrelado

For the model’s comparison by soil properties, for pH prediction using linear models, the best method of covariate selection was the RFE, in both cases, using external and

Os 3 entrevistados afirmam que as empresas não estão organizadas para explorar essa capacidade, mas todos deixam a entender que elas tendem a organizar essa capacidade e que isso

Entre os animais portadores dos diferentes tipos de cistos (hialinos, contaminados e calcificados), não houve alterações enzimática considerável, tornando-se desnecessária,

Porém, o teste de Scott Knott mostrou diferenças entre as médias de inoculação até os 120 dias (Tabela 16), o que sugere ser essa uma variável bastante sensível

Teste com voluntários da análise realizada pelo método ASTM D 1209-00 Este teste visou à obtenção de resultados de análise de cor pelo método ASTM D 1209-00 a