Iniciando agora o módulo de integração contínua e entrega contínua. Nesse módulo, falaremos um pouquinho mais sobre software delivered lifecycle, continuous integration, continuous delivery e continuous deployment, abordagens de testes automatizados, DevSecOps, onde falaremos sobre SAST, DAST e AST, e por fim, teremos uma pipeline de build de imagem de container, onde passaremos um pouco pelas etapas de build, teste, versionamento e publicação. Bom, entrando um pouquinho mais aqui no assunto de SDLC, o ciclo de vida, desenvolvimento e software contempla todas as etapas do processo de desenvolvimento, desde a concepção da ideia até a manutenção do produto final. Cada etapa é cuidadosamente planejada e executada para garantir que o software atenda os requisitos funcionais, qualidade, prazo e dentro do budget. Bom, antes de mais nada, é preciso dizer que existem diversas metodologias de entrega de software. Era muito comum a gente trabalhar ali com o modelo de waterfall, onde a gente fazia toda a coleta de requisitos, desenvolvia o software e muitas vezes acontecia de ter algum tipo de desentendimento do pedido do stakeholder com que era levantado de requisito, convertido em requisito de fato a gente fazia todo o desenvolvimento desse software depois que estava entregue é que a gente conseguia ter a percepção de que precisava corrigir algum requisito alguma funcionalidade, então era muito improdutivo, gerava um retrabalho, tinha que voltar, muitas vezes refatorar, era bem custoso. E uma das metodologias que foi mais amplamente adotadas recentemente é o ágil, onde a gente consegue separar uma grande entrega em pequenos ciclos, que a gente chama de sprints. Em cada uma dessas sprints a gente consegue entregar um pouquinho dos softwares. Então é feito todo o levantamento de requisitos ali, o levantamento de requisitos ali, todavia a gente fatia esse bolo para que a gente consiga entregar, transformar esse grande entregável em entregas menores e conforme for ali a gente já consegue corrigir se tiver alguma coisa que nãoapa de plan, é nela onde a gente basicamente faz todo o levantamento ali de requisitos, né, faz a definição das metas, requisitos, faz a definição das metas, cronograma, recursos, prioridades, pessoas, quais são as equipes que vão estar envolvidas, faz o levantamento de tudo isso, revisa, refina, então nessa etapa a gente consegue fazer todo esse processo. E a gente vai para a próxima etapa, que é a etapa de codificação, então nessa etapa a gente pega todos esses levantamentos de requisitos e transforma em código, em código fonte. A próxima etapa seria a etapa de build. Aqui a gente já está falando fortemente de integração contínua, por exemplo. Então, basicamente a gente pega todo aquele código que foi desenvolvido e a gente compila ele, e aí já tem algumas complexidades que a gente precisa resolver, como por exemplo a resolução de dependências e a geração do artefato em si. Então quando a gente fala de um ambiente moderno, microserviçado, geralmente é nessa etapa que a gente está falando de buildar uma imagem, buildar uma imagem de container, o imagem, buildar uma imagem de container. O artefato seria essa imagem de container. A gente tem a etapa de testes. Então nessa etapa a gente também está falando fortemente aqui de continuous integration, a gente vai falar um pouco mais para frente. Mas é nessa etapa que a gente vai fazer toda a parte de teste unitário, teste integrado, end-to-end, regressivo, todos os tipos de teste, qualidade de software, a gente inclui justamente nessa etapa de teste. Tem a etapa de release, de lançamento dessa versão. Então, uma vez que a gente já codou, já buildou, gerou o artefato, testou, a gente tem uma release para ser implementada ali no ambiente de produção, então a gente faz toda a parte de documentação, treinamento dos usuários, para que a gente consiga deixar o terreno pronto ali para essa aplicação de fato entrar em produção. A etapa de deploy é a implementação no ambiente de produção de fato, então aqui ele já passou por todas as etapas anteriores, a gente já consegue ter um nível de garantia saudável de que esse software está ok para entrar em produção, então a gente faz essa implementação aqui também de forma automatizada. Próxima etapa, operação. Então aqui o software já está implementado, já está em produção, e a gente olhar para toda a parte de integração ali com ferramentas de monitoração, validar que o pessoal consegue ter capacitação para operar esse sistema de fato, consegue entender quais são as funcionalidades dele, se ele está desempenhando bem, se está gerando incidentes, se não está. E a última etapa seria a etapa de monitoramento, observabilidade de forma geral. Então, a gente entender quais são os forma geral, então a gente entender quais são os indicadores, se a gente está conseguindo tirar os indicadores de como que está tanto indicadores operacionais quanto indicadores de negócios, se o nosso software está atendendo bem e com base em tudo isso a gente volta todo esse ciclo e vai melhorando cada vez mais ali o nosso software.