Continuous Delivery com
Docker, OpenShift e Jenkins
Bruno Padilha
DevOps Engineer
(Leroy Labs)
Leandro Costa
DevOps Engineer
(Digital / Boitatá)
Gabriel Machado
Software Developer
(Digital / Boitatá)
Agenda
● A Leroy Merlin
● Projeto
○ Overview
○ Arquitetura
○ Monorepo ou multirepo?
○ Docker-compose
● Processo de Deployment
○ Pipeline
○ Jenkins
● Demo
A Leroy Merlin
● Rede Francesa multiespecialista do lar;
● Presente no Brasil desde 1998;
● 41 lojas distribuídas em 11 estados + e-commerce;
● +10.000 colaboradores;
● Presente em 12 países com +400 lojas;
A Leroy Merlin
● Transformação digital (quem nunca?)
● Containerização de legados;
● Migração para nuvem;
● Aplicações distribuídas entre 2 contas AWS;
● ChatOps;
● OpenShift;
Projeto
● Baleine (baleia em francês)
● Abrangência global
● Modular
Arquitetura
Arquitetura
Arquitetura
OpenShift / Kubernetes
Arquitetura
OpenShift / Kubernetes
Elasticsearch
Arquitetura
OpenShift / Kubernetes
Elasticsearch
AWS S3
Monorepo ou Multirepo?
Preocupações Monorepo Multirepo
Acompanhamento de
mudanças consolidado
✅ ❌
Organização ✅ ✅
Ambiente de dev ✅ ❌
Tamanho ❌ ✅
$$$$$$ ✅ ❌
$ git clone monorepo
O repositório
baleiene-repo
|-- Jenkinsfile
|-- docker-compose.yml (Todos os serviços + dependências)
|-- docker-compose.build.yml (Todos os serviços - tag openshift)
|
service-A/
|--- docker-compose.yml (Somente o serviço - Com os builds dos dockerfiles abaixo com suas dependências)
|--- dockerfile.app (Dockerfile)
|--- dockerfile.web (Dockerfile)
--- docker/ (folder)
---- app/ (files and configs)
---- web/ (files and configs)
|
service-B/
|--- docker-compose.yml
|--- dockerfile.app (Dockerfile)
|----dockerfile.web (Dockerfile)
--- docker/ (folder)
---- app/ (files and config)
---- web/ (files and config)
docker-compose FTW!
$ docker-compose up --build -d
Creating network "baleinedev_content" with driver "bridge"
Creating network "baleinedev_cluster" with driver "bridge"
Creating network "baleinedev_auth" with driver "bridge"
Creating volume "baleinedev_mongodb-data" with local driver
Building auth-web
Step 1/6 : FROM nginx:1.13-alpine
...
Successfully built 48319c1ae833
Successfully tagged leroymerlinbr/baleine-auth-web:latest
...
...
Creating baleienedev_mongodb_1 ...done
Creating baleinedev_auth-web_1 ...done
Creating baleienedev_content-app_1 ...done
Creating baleinedev_content-web_1 ...done
Creating baleinedev_es_1 ...done
Creating baleienedev_kibana_1 ...done
Creating baleienedev_logstash_1 ...done
BRICOLAGEM?
Processo de Deployment
Processo de Deployment
Push
Processo de Deployment
Vamos tomar um café?
Processo de Deployment
Algo no #ALERTS ?
Jenkinsfile
Jenkins Pipeline
Só Develop
Branch = DEVELOP
Jenkins Pipeline
Staging e prod
Branch = MASTER
Demo
Estamos Contratando!
Devs BackEnd, Devs FrontEnd, UXs
rscafi@leroymerlin.com.br
Obrigado!
Perguntas?
Continuous Delivery com
Docker, OpenShift e Jenkins

Continuous Delivery com Docker, Jenkins e OpenShift