Slide 1

Slide 1 text

2017 Containerizing Continuous Deployment

Slide 2

Slide 2 text

Containerizing Continuous Deployment Agenda ● DevOps ● Arquitetura ● Toolchain ● Demo ● Conteinerização

Slide 3

Slide 3 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n DevOps ✔ C ulture ✔ A utomation ✔ L ean (& Agile) ✔ M etrics (Monitoring & Measurement & Management) ✔ S haring (& Source)

Slide 4

Slide 4 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n DevOps DevOps

Slide 5

Slide 5 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n DevOps (+QA+SEC ...) QA Sec DevOps Mkt/...

Slide 6

Slide 6 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment

Slide 7

Slide 7 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment ● Rancher – Ambientes

Slide 8

Slide 8 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment ● Rancher – Ambientes hosts e stacks

Slide 9

Slide 9 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment ● Gitlab (gitlab.com) – Análise de ciclos (ex: plan, test, prod)

Slide 10

Slide 10 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment ● Gitlab (gitlab.com) – Quadro “kanban”

Slide 11

Slide 11 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment ● Gitlab (gitlab.com) – Comandos / (em “comentários”) – Controle de tempo em issues

Slide 12

Slide 12 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment ● Gitlab (gitlab.com) – Aprovação em MR – Git LFS – registry para imagens docker * – Pipeline CI/CD *

Slide 13

Slide 13 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment ● .gitlab-ci.yml – simples ou avançado como precisar – Build com sua ferramenta (maven, grunt, gradle etc) – Artefatos no próprio pipeline/build – Possibilita uso embarcado de docker para todos os jobs – com diferentes templates e imagens por job

Slide 14

Slide 14 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment ● .gitlab-ci.yml – N estágios quantos necessitar – N ambientes quantos forem os requisitos – Rotinas de profiling e testes que definir (unitários, cobertura, DB etc) – Delivery ou Deployment

Slide 15

Slide 15 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment

Slide 16

Slide 16 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment Demonstração

Slide 17

Slide 17 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment ● Containers – Otimizar construção da imagem ● + app mesma imagem base ● Desempenho do pipeline ● Desempenho de deploy ● Otimização de área de storage

Slide 18

Slide 18 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment ● Containers – Scaneie imagens ● Conteúdo (ex: microbadger)

Slide 19

Slide 19 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n ● App base image (15 layers, 105MB/253MB) ● App (19 layers, 118MB/293MB) Containerizing Continuous Deployment

Slide 20

Slide 20 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n ● pytest image (13 layers, 85MB/253MB) Containerizing Continuous Deployment

Slide 21

Slide 21 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment ● Containers – Scaneie imagens ● Segurança (ex: open-scap*, coreos clair, docker bench)

Slide 22

Slide 22 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n ● SCAP (CVE) Containerizing Continuous Deployment

Slide 23

Slide 23 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment Dúvidas? https://speakerdeck.com/adrianovieira

Slide 24

Slide 24 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment ● Referências – Daniels, Katherine; Davis, Jennifer. Effective DevOps. O'Reilly. 2016 – Morris, Kief. Infrastructure as Code. O'Reilly. 2015 – Get Started with DevOps: A Guide for IT Managers. Rushgrove, Gareth. Puppet. 2016 – GitLab Continuous Integration. Gitlab. Disponível em: https://about.gitlab.com/gitlab-ci – CIS Docker 1.11.0 Benchmark. Pravin Goyal. CIS. 2016. disponível em: https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.11.0_Benchmark_v1.0.0 .pdf – CIS Docker 1.13.0 Benchmark. Pravin Goyal. CIS. 2017. disponível em: https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.13.0_Benchmark_v1.0.0 .pdf ● Ferramentas – Usadas na demonstração: ● Gitlab-CI+runners (http://gitlab.com) ● Pytest (www.pytest.org) ● Rancher (http://rancher.com) ● Open-scap (https://www.open-scap.org)

Slide 25

Slide 25 text

[email protected] @adriano_vieira K e e p C A L M S a n d h a v i n g f u n Containerizing Continuous Deployment Adriano Vieira [email protected] @adriano_vieira