Parte 4 - Pipeline Completo de CI/CD
Nesta etapa final, o grupo dará continuidade ao pipeline desenvolvido na Parte 3, evoluindo a Integração Contínua (CI) para um fluxo de Integração e Entrega Contínuas (CI/CD). O trabalho incluirá build de imagem Docker, verificações automatizadas de segurança, execução de job em runner próprio na AWS EC2 e implantação da aplicação no AWS ECS, com acesso público por meio de um Application Load Balancer (ALB). As atividades deverão manter a colaboração e a rastreabilidade entre Jira e GitLab.
O que você vai construir:
- Um pipeline de CI/CD que evolua o pipeline implementado na Parte 3;
- Manutenção da execução automatizada dos jobs de testes unitários, SAST e Secret Detection;
- Um job de build da imagem Docker da aplicação;
- Um job de Container Scanning, com análise das vulnerabilidades identificadas e das ações adotadas;
- Execução de pelo menos um job em runner próprio configurado em uma instância AWS EC2;
- Implantação da aplicação no AWS ECS, com acesso público por Application Load Balancer (ALB);
- Cards no Jira para organização, distribuição e acompanhamento das atividades do grupo;
- Feature branches e commits vinculados aos respectivos cards do Jira;
- Merge Requests revisados e aprovados por outro integrante antes da integração à branch principal;
- Documentação no README.md com a estrutura do pipeline, a infraestrutura utilizada e uma breve discussão dos resultados do Container Scanning.
Fluxo de trabalho:
Cada contribuição deverá percorrer o fluxo: Card Jira → Em andamento → Feature Branch → Commit e Push → Merge Request → Revisão por pares → Merge → Pipeline CI/CD → Concluído .
Os commits deverão estar associados aos respectivos cards do Jira, mantendo a rastreabilidade entre a atividade planejada, a alteração realizada no GitLab, os resultados dos jobs e a implantação da aplicação.
O pipeline deverá integrar o build da imagem Docker, as verificações de qualidade e segurança e a etapa de deploy no AWS ECS. O grupo deverá demonstrar o funcionamento da aplicação implantada por meio do ALB.
Como dinâmica de trabalho, o grupo poderá distribuir responsabilidades relacionadas a Desenvolvimento (Dev), Operações (Ops) e gestão das atividades no Jira, mantendo a colaboração entre todos durante a execução.
Competências avaliadas:
- Pessoas e Cultura: colaboração, divisão de responsabilidades, revisão por pares e integração das contribuições do grupo;
- Planejamento e Desenvolvimento: organização, execução e rastreabilidade das atividades entre Jira e GitLab;
- Compilação e Testes: manutenção dos testes automatizados, build da imagem Docker e acompanhamento dos resultados dos jobs;
- Liberação e Implantação: configuração e execução do fluxo de implantação da aplicação no AWS ECS;
- Operações e Infraestrutura: configuração de runner próprio na AWS EC2, utilização do AWS ECS e disponibilização da aplicação por meio do ALB;
- Segurança e Conformidade: continuidade das verificações de SAST e Secret Detection, execução do Container Scanning e análise das vulnerabilidades identificadas.
Critérios de avaliação:
- Organização e rastreabilidade das atividades no Jira (0,5);
- Colaboração por branches, commits e Merge Requests (0,5);
- Documentação do pipeline e da infraestrutura no README.md (1,0);
- Execução dos jobs de testes unitários, SAST e Secret Detection (1,0);
- Build da imagem Docker e execução e análise do Container Scanning (2,0);
- Execução de pelo menos um job em runner próprio na AWS EC2 (2,0);
- Implantação e acesso público à aplicação no AWS ECS por meio de um ALB (3,0).