Integração Contínua com containers Docker. Fabricio Leotti fabricio.leotti@gmail.com @lonefreak



Documentos relacionados
Integração Contínua com Rational Team Concert, Jenkins e SonarQube

Orquestrando Docker Containers

@georgeguimaraes. Integração Discreta. melhorando a Integração Contínua e ganhando em colaboração

Project Management Activities

Continuous Delivery. E seus princípios e práticas. Carlos Felippe Cardoso (CFC) slideshare.

Jadson Santos Analista TI UFRN Amador Pahim Eng. Red Hat / Pesquisador SINFO

Gerenciamento de Projetos. Professor: Dr. Eduardo Santana de Almeida Universidade Federal da Bahia

Integração contínua com Hudson - Configuração, Extensão e Diversão! Fabiane Bizinella Nardon fabiane.nardon@zilics.com.br Zilics

Hands On para (web)developers: Docker vs Vagrant

Métodos Formais em Engenharia de Software. VDMToolTutorial

Software Open Source e Integração Contínua no Instituto de Informática Ferramentas de Integração Contínua

Plugins para Integração

Diretrizes de Qualidade de Projetos

35% GARTNER. Despesas com tecnologia ocorrem fora da T.I. Fazem uso de tecnologias não aprovadas pela T.I.

25/05/2015. Um pouco de história. O Modelo CMMI. Capability Maturity Model Integration (CMMI) Capability Maturity Model (CMM)

QCON 2015 Uma abordagem prática ao LXC. UOLHOST Marcus Vinícius Soares

Qualidade Arquitetural em Aplicações. Novembro / 2009 Kleber.Bacili@sensedia.com

DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% de uptime

ATIVIDADES AVALIATIVAS DE INGLÊS DO PRIMEIRO BIMESTRE ENGLISH ACTIVITIES OF THE FIRST TERM

J820. Integração Contínua. com CVS, CruiseControl, Cruise Control. argonavis.com.br. AntHill Gump e Helder da Rocha (helder@acm.

Scientific data repositories: the USP experience

Objetivos & Motivação

ÍNDICE PORTUGUÊS INDEX ENGLISH

O que estamos procurando?

Criando pipelines de entrega contínua multilinguagem com Docker e Jenkins Camilo Ribeiro Klarna AB

Ciência aberta na prática: Reproducibilidade, notebooks e tudo mais. Luiz Irber Michigan State University

Web APIs e delivery. Matando a fome de 1 milhão de pedidos mensais no. Tiago Dolphine

Todos os microprocessadores hoje disponíveis em micros compatíveis com PC utilizam o funcionamento do como ponto de partida.

How TO: Replicação de virtual machines com o Veeam

Orientador Informal. Co-orientador(es) Informal(is)

Mini Curso Gerenciamento de Configuração e Mudança com GIT + Eclipse. Jadson Santos Amador Pahim

Motivos para você ter um servidor

Docker do básico à orquestração de containers. Meetup de Laravel em São Paulo #3

Padrões de Interação com o Usuário

Job title: RIT Academy (Estágio Profissional em Telecomunicações/Informática)

Sumário. Arquitetura de Software com VSTS...1 Emerson Facunte. Gerenciando Projetos no VSTS com Práticas do PMI Alércio Bressano

PROJETO CEMEA. Um trabalho educacional

inciência Iniciação Científica Embrapa Anais da X Jornada de Iniciação Científica da Embrapa Amazônia Ocidental

Rede de Computadores (REC)

Relato de uma Implantação de uma Ferramenta de Integração Contínua em um Núcleo de Práticas em Informática de uma Universidade

22/10/15 Gradle 2. Gradle. Gradle is an advanced build tool of general purpose base on Groovy

Engenharia de Software Aula 8 (Versão )

Desenvolvimento Ágil com XP e Scrum. Guilherme Chapiewski guilherme.chapiewski@gmail.com

Padrões de Aplicações Empresariais


Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP

Dispositivos Externos Guia do Usuário

Introdução à Sistemas Operacionais. Glauber Magalhães Pires

Gerência de Configuração de Software Funções

! Tecnologia de Processos de Software. ! Visao Geral. ! WebAPSEE-PML. ! Definição. ! Atividades. ! Conexões. ! Artefatos. ! Recursos. !

Linux containers. Bruno Barcarol Guimarães Bruno Barcarol Guimarães Linux containers / 34

Gerenciamento de Projetos de Pesquisa e Desenvolvimento Tecnológico: a experiência do LSCAD/FACOM/UFMS. Ricardo R. Santos ricardo@facom.ufms.

DevOps A Origem DEV204

Introdução à Plataforma Eclipse. Leandro Daflon

DESENVOLVIMENTO DE IDE PARA PLATAFORMA OMAP. Larissa Lucena Vasconcelos¹, Raul Fernandes Herbster², Joseana Macêdo Fechine³

Geospatial Information for Integration and Development in Rio de Janeiro. Luiz Roberto Arueira City Information Director Marcus Silva GIS Consultant

Veeam Availability Suite v9.5. Carlos Gomes Systems Engineer

APLICAÇÃO DA INTEGRAÇÃO CONTÍNUA EM EQUIPES ÁGEIS

Produzindo Valor com Gerenciamento do Ciclo de Vida de Aplicativos Delivering Value with Application Lifecycle Management (ALM)

Sugestão de Leitura. Artigo "Painless Software Schedules" do Joel Spolski.

Capítulo 25. Gerenciamento de Configuração. Engenharia de Software Prof. Flávio de Oliveira Silva, Ph.D.

Advanced IT S/A. EM10g Grid Control. Introdução. Introdução. Agenda. Como alcança estes objetivos Grid Control Home Page Pode gerenciar:

Programação para web JavaScript

FACULDADE DE TECNOLOGIA SENAC GOIÁS PROJETO INTEGRADOR. 2º PERÍODO Gestão da Tecnologia da Informação GOIÂNIA 2013.

INFORMÁTICA PARA GESTÃO I Curso Superior de Gestão de Marketing

Dantas Tour System (DTS)

Searching for Employees Precisa-se de Empregados

Capítulo 4 Gerenciamento de Memória

SISTEMA DE INFORMAÇÃO

IBM Rational Quality Manager. Felipe Freire IBM Rational

USO DA ARQUITETURA AURA - AUTONOMOUS ROBOT ARCHITECTURE EM UM ROBÔ EXPLORADOR DE LABIRINTO CONTROLADO POR RASPBERRY PI.

Os Desafios da Segurança no Desenvolvimento com Métodos Ágeis. OWASP Education Project. The OWASP Foundation

Introdução ao Modelo de Referência para melhoria do processo de software (MR mps) Projeto: mps Br melhoria de processo do software Brasileiro

QUESTIONÁRIO DE AVALIAÇÃO Primeira Fase

Scrum: Gestão ágil para projetos de sucesso (Portuguese Edition)

Avaliando Scrum em um ambiente CMMi 5

Mediador: Mauro Cesar Sobrinho

3 Estudo de Ferramentas

PROGRAMAÇÃO EM LINUX. Usuário Avançado Ulisses Thadeu V Guedes

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

FAP - Faculdade de Apucarana Curso de Sistemas de Informação RESUMO EXPANDIDO DE TRABALHO DE CONCLUSÃO DE CURSO -

PLANO DE COMUNICAÇÃO PLANO DE COMUNICAÇÃO SOCIAL PARA A VIRTUALLINK

Dispositivos externos

Atendimento de Demandas CTIC

Gestor/TI e Consultor em Segurança de Informações Perito/Investigador em Computação Forense Blog:

Direito e Contabilidade: Fundamentos do Direito Contábil (Portuguese Edition)

Manual do Gate Expresso e Rodoviário

Centro Universitário Franciscano

O impacto de práticas de teste na velocidade de DevOps. Renato Quedas VP Solutions Marketing

ES06 Especialização em Engenharia de Software Prof.: Misael Santos Ago/2010

聯 絡 人 電 話 TELEFONE TELEPHONE

Hipnose Na Pratica Clinica

Daniel Romio, CISSP. Check Point Virtual Gateway Edition. Channel Manager - Brasil

Manual de Posicionamento On-line

Bruno Loureiro Rezende. Um Framework para a Automação de Testes com Linguagens de Especificação Configuráveis DISSERTAÇÃO DE MESTRADO

Enterprise JavaBeans. Java Deployment Course. por Jorge H. C. Fernandes DI-UFPE Julho de 1999

Integrações e o ecossistema Java. Fabric8 ao Resgate!

Rastreando fluxos para detecção de eventos em redes

Gerenciamento Agrícola com Suporte à Mobilidade: uma ferramenta móvel para automatizar cálculos de plantio

Transcrição:

Integração Contínua com containers Docker Fabricio Leotti fabricio.leotti@gmail.com @lonefreak

Agenda Stacks Continuous Integration Docker Dockerize Continuous Integration Docker + Jenkins

Devtools

Stacks

Stacks

Stacks

Stacks

Stacks

Stacks

Stacks

Stacks

Stacks

Stacks

Continuous Integration 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 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 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 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 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 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 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 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

Continuous Integration

Continuous Integration

Continuous Integration

Continuous Integration

Continuous Integration

Continuous Integration

Continuous Integration

Docker

Docker

Docker

Docker PRODUCTION READY??

Docker

Docker

Docker

Dockerize Continuous Integration

Dockerize Continuous Integration

Dockerize Continuous Integration

Dockerize Continuous Integration

Dockerize Continuous Integration

Dockerize Continuous Integration

Dockerize Continuous Integration

Dockerize Continuous Integration

Dockerize Continuous Integration

empacotamento de aplicações Docker + Jenkins = Amor build.sh $FPM_OPTS FPM https://github.com/jordansissel/fpm

empacotamento de aplicações Docker + Jenkins = Amor 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 Container precisa de acesso ao workspace Nem sempre é a melhor solução Cuidado com a arquitetura em que ocorre o empacotamento Sem conflito entre dependências

Docker + Jenkins = Amor teste e análise uniformes

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 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 Código de execução dos testes no controle de versão

Jenkins slaves com containers Docker + Jenkins = Amor

Jenkins slaves com containers Docker + Jenkins = Amor 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

Docker + Jenkins = Amor testes de integração

Docker + Jenkins = Amor integração contínua de cookbooks driver_plugin: docker driver_config: socket: tcp://docke.host:5000 dockerfile: test/dockerfile http://kitchen.ci/

fabricio.leotti@gmail.com @lonefreak