document is confidential to the person to whom it is addressed and should not be disclosed to any other person. It may not be reproduced in whole, or in part, nor may any of the information contained therein be disclosed without the prior consent of the directors of iFood. It has been used as support material for an oral presentation and, therefore, it does not represent a complete record of the topics presented in the mentioned presentation. Março, 2022 Jhonn Frazão Jhonatan Morais
Cada time desenvolve e mantém própria solução • 10 a 100 pessoas desenvolvedoras: Times começam a compartilhar templates entre si • 100 a 1000 pessoas desenvolvedoras: Necessidade de uniformizar processos e incluir novas práticas e ferramentas torna imprescindível solução que abstraia complexidade • > 1000 pessoas desenvolvedoras: Tratar CI/CD como Cattles ao invés de Pets é questão de sobrevivência do ciclo de desenvolvimento de software CI/CD na vida real
plataforma centralizada • Pipelines devem ser versionadas • Suportar workflows já estabelecidos para evitar fricções O que precisamos considerar antes de começar? • Conjunto mínimo de code bases cobertos devem ser mantidos • Não haverá migração de pipelines as-is • Migração deve ser realizada pelos times donos dos projetos
objetivo de tornar mais sustentável a manutenção e evolução do processo de CI/CD, garantindo que padrões, práticas e ferramentas sejam adotados de maneira rápida e efetiva em escala. iFood Gitlab Pipelines
kilométricos dentro dos arquivos de CI, difíceis de testar e manter (quem nunca?) • Criar "cola" entre múltiplas ferramentas externas e internas • Opinar alguns comportamentos próprios p/ ecossistema iFood Food CLI
deve ser testado, de maneira automática e contínua • Cada pipeline tem seus próprios cenários de teste, priorizando os principais workflows e funcionalidades críticas • Executados em cada Merge Request submetido ao mono repo de pipelines • Simulam um projeto real utilizando o novo código submetido
209/dia de seg-sex Usuários No GitLab Respositórios Git No GitLab Serviços Que usam o GitLab como CI/CD Quais resultados obtivemos? Onde Chegamos? Em pouco mais de um ano… 13 Pipelines packages
lançamento de funcionalidades e correções em escala • Centralização da plataforma de CI aumenta estabilidade e qualidade do serviço • Consolidação da stack de CI/CD diminui variância não essencial de tecnologias, concentrando foco na pavimentação de uma estrada principal sobre o tema Resultados
de serviços em produção • Implementar EOL (End of Lifecycle) das versões das pipelines • Extração de métricas sobre SDLC (DORA)1 • Compliance check p/ pipelines usando OPA2 • Evoluir integração com outras plataformas internas para reduzir ainda mais a complexidade de configuração das pipelines 1. DevOps Research and Assessment (DORA) 2. Open Policy Agent
Apoio das lideranças de engenharia • Mudanças incrementais, sem quebras bruscas na rotina dos desenvolvedores • Estar próximo dos problemas • Construir bases sólidas para suportar evolução Chaves para o sucesso