https://afonsolelis.github.io/governanca-entrega-continua/

Este relatório apresenta um conteúdo completo para uma aula de 4 horas sobre Governança e Entrega Contínua, com foco específico em Segurança, Observabilidade e implementação de padrões LGPD/GDPR em pipelines de CI/CD123. A aula aborda também a aplicação de frameworks ISO 27001 e TOGAF para qualidade e governança de dados, fornecendo uma base sólida para profissionais que desejam implementar práticas modernas de DevSecOps456.

Contexto e Importância da Governança em DevOps

A governança em DevOps representa um equilíbrio crítico entre velocidade de entrega e controle de qualidade e segurança4. De acordo com o State of DevOps Report de 2024, organizações que implementam práticas maduras de governança conseguem aumentar a velocidade de entrega de software mantendo plena conformidade às normativas e segurança4. Este equilíbrio é fundamental, especialmente em um cenário onde a velocidade de desenvolvimento não pode comprometer a segurança e a conformidade regulatória78.

A implementação eficaz da governança em DevOps facilita o uso de diversas ferramentas e frameworks que auxiliam na automação, monitoramento e conformidade dos processos4. A Amazon, por exemplo, utiliza uma abordagem altamente automatizada para o gerenciamento de mudanças, com pipelines de CI/CD que incluem verificações automáticas de conformidade e segurança4. Isso permite que equipes autônomas implementem mudanças rapidamente, mantendo altos padrões de segurança e conformidade4.

Pipeline CI/CD com Governança Integrada

O pipeline de integração contínua e entrega contínua constitui o núcleo das práticas modernas de desenvolvimento de software12. A entrega contínua permite que desenvolvedores automatizem testes além dos testes unitários, verificando atualizações de aplicativo em várias dimensões antes da implantação para os clientes1. Esta abordagem estabelece um processo pelo qual alterações feitas por um desenvolvedor podem ser enviadas para um repositório através da automação2.

Pipeline de CI/CD com Governança e Segurança Integradas

A segurança de CI/CD tenta detectar e remediar riscos potenciais à segurança do aplicativo em todas as fases do pipeline8. Ao implementar a estratégia "shift left", a segurança CI/CD reduz o custo e o impacto das falhas e vulnerabilidades de software8. Os pipelines corporativos de CI/CD enfrentam vários riscos de segurança, incluindo exposição de dados confidenciais, utilização de códigos de terceiros não confiáveis e acesso não autorizado a ferramentas de criação9.

Para obter governança de ponta a ponta no Azure usando CI/CD, é importante entender que o Azure DevOps e a automação podem se tornar uma brecha de segurança não intencional se não estiverem devidamente protegidos3. Esses recursos devem ser protegidos espelhando o modelo RBAC (controle de acesso baseado em função) usado para o Resource Manager3.

Segurança e Observabilidade em Sistemas Distribuídos

Os Três Pilares da Observabilidade

A observabilidade de dados é a capacidade de compreender a integridade dos sistemas de dados coletando e correlacionando eventos em áreas como pipelines de dados, armazenamento, computação e processamento10. A observabilidade é baseada em três pilares fundamentais que devem ser trabalhados de forma integrada1112.

Os Três Pilares da Observabilidade: Métricas, Logs e Traces

Métricas representam dados quantitativos que mostram tendências e padrões ao longo do tempo12. O Prometheus é uma ferramenta de código aberto amplamente adotada para monitorar e alertar sobre a saúde de sistemas e aplicações, oferecendo uma arquitetura simples e flexível para coleta e armazenamento eficiente de métricas13. Os pipelines de dados são executados continuamente, portanto a qualidade dos dados é monitorada usando técnicas como controles estatísticos de processos para identificar e resolver anormalidades imediatamente14.

Logs constituem registros detalhados de eventos que ocorrem no sistema12. O monitoramento contínuo e feedback sobre pipelines de dados permitem melhorias contínuas, garantindo que o fornecimento de dados permaneça eficiente14. Alterações nos dados são documentadas usando sistemas de controle de versão, como o Git, para rastrear modificações de modelos de dados e permitir reversões mais simples14.

Traces permitem o rastreamento de requisições através de sistemas distribuídos12. A colaboração e comunicação são fundamentais para o Agile e o DataOps reflete isso, com engenheiros, analistas e equipes de negócios trabalhando conjuntamente para definir metas e garantir que pipelines forneçam valor comercial14.