Olá! Este é o curso 4 da Alura sobre CI/CD inteligente dentro do nosso curso de AIOps. Estou muito feliz em oferecer mais este módulo para vocês.
Neste módulo, nós vamos:
Vamos executar uma seleção de testes apenas para o código que foi alterado, detectar flaky tests (testes instáveis), colocá-los em quarentena e corrigi-los. Também vamos discutir o impacto na análise de testes, remover redundâncias, gaps (lacunas) e tratar o custo invisível dentro da suíte de testes que podemos resolver.
Além disso, veremos conceitos de automatização de pipelines (esteiras), como trabalhar com paralelismo, cache (armazenamento em cache) inteligente, skip (pular) seguro dependendo do stage (etapa), como identificar gargalos dentro de CI/CD (Integração Contínua/Entrega Contínua) e ideias de agentes que podemos criar para, mesmo com uma pessoa humana no processo — o famoso human-in-the-loop (humano no ciclo) —, gerar bons relatórios e aprimorar essas esteiras de CI/CD.
Também falaremos sobre ferramentas: Harness, Argo Rollouts, LaunchDarkly, BuildKit, entre outras, e traremos dois projetos práticos.
Espero você no nosso curso de CI/CD inteligente da nossa trilha de AIOps da Alura. Até mais!
Olá, pessoal. Esta é a nossa primeira aula do curso de CI (Integração Contínua) e CD (Entrega/Implantação Contínua) inteligente do curso de AIOps da Alura.
Nós vamos abordar temas como pipelines; ferramentas para feature flags (sinalizadores de recursos) e para estratégias de canary (implantação canário); funcionalidades preditivas; modelos de risco de implantação; e diversos tópicos que relacionam CI e CD inteligentes com o uso de AI (Inteligência Artificial), explorando como podemos utilizar esses recursos.
Na nossa primeira aula, vamos discutir como e por que deploys (implantações) falham — a anatomia do risco. Vamos reconhecer que falhas de implantação não são aleatórias, mas correlacionadas a fatores mensuráveis da própria implantação.
Nós vamos trabalhar com um cenário real: um histórico de aproximadamente 200 implantações, e investigar a pergunta: era possível prever? Em termos de teoria, vamos comparar a taxa de falha global com a taxa de falha condicionada a cada fator de risco.
Quais são os conceitos-chave que vamos trabalhar hoje?
Essa base será a semente para os modelos dos próximos vídeos. Este é um código que executamos para demonstrar isso na prática.
Temos um histórico de cerca de 200 deploys (implantações), no qual registramos 51 falhas. A taxa de falha global (a base) é de 25%.
Ao analisarmos a taxa de falha por fator de risco, observamos que, com migration (migração), considerando 51 deploys (implantações), 51% deles falharam — um lift (elevação relativa) de 2,0 vezes. Para o fator “testes reprovados”, em 23 deploys (implantações), 47% falharam — quase 48%. Em “sexta à noite”, isto é, deploys (implantações) depois das 17h, de 11 deploys (implantações), 45% falharam — um lift (elevação relativa) de 1,8 vezes. E assim por diante.
Esses fatores se acumulam; o risco não é simplesmente aditivo. Por exemplo, com migration (migração) mais deploy (implantação) à noite, na sexta-feira: de 4 deploys (implantações), 25% falharam (um falhou), resultando em lift (elevação relativa) de 1,0.
Há também casos em que o resultado é positivo. Se os testes estão aprovados, não há migration (migração) e a implementação foi feita por uma pessoa sênior, em 96 deploys (implantações), apenas 13% falharam — um lift (elevação relativa) de 0,5.
Qual é a intenção desse deploy risk score (pontuação de risco de implantação)? Cada fator empurra a probabilidade de falha para cima ou para baixo. Se nós somássemos todos eles em um único número — esse risk score (pontuação de risco) —, poderíamos avaliar o risco agregado. Um deploy (implantação) na sexta à noite, com migration (migração), testes reprovados e autoria júnior, é mais arriscado, pois acumula vários fatores simultaneamente.
Nos próximos vídeos, vamos deixar de olhar fator a fator manualmente e permitir que um modelo, treinado de acordo com nossa base de PRs (Pull Requests, solicitações de alteração), aprenda a partir desse histórico e o transforme em um score (pontuação) de 0 a 100. Essa pontuação poderá barrar um deploy (implantação) se ele for crítico — isto é, se representar um risco muito alto —, antes de ir para produção.
No próximo vídeo, vamos discutir quais features (características) extrair de cada PR (Pull Request, solicitação de alteração) para o modelo. Vamos ver isso? Vejo vocês no próximo. Valeu!
Chegamos ao vídeo 1.2 da Aula 1 de CI/CD Inteligente. Vamos falar sobre features (características) preditivas. O que torna um deploy (implantação) perigoso? Vamos transformar sinais brutos de commits (registros de alteração) e pull requests (PRs) em um vetor numérico de features (características) que um modelo consegue aprender.
No nosso cenário real, vamos pegar um lote de PRs com mensagens e estatísticas de diff (diferença). Na teoria, vamos do diff bruto ao feature vector (vetor de características), calculando a correlação de cada feature (característica) com falha.
Quais são os conceitos-chave que vamos aprender hoje?
Retomando: vamos aplicar esses conceitos para pegar um lote de PRs com mensagens e estatísticas de diff. Com esse diff bruto, vamos construir o feature vector e calcular a correlação de cada feature (característica) com as falhas.
Vamos ver como vamos trabalhar com este script em Python de exemplo. Vamos executar nosso script em Python de exemplo. Já o executamos. O que temos?
Temos a extração de features (características) preditivas de pull requests (PRs). Foram processados 120 pull requests (PRs). Há feature vectors (vetores de características) como amostras dos seis primeiros PRs: 1000, 1001, 1002, 1003, 1004 e 1005.
Entre as métricas exibidas no exemplo:
No caso anterior, não foi algo que falhou. Aqui, temos o 1001: churn (volume de mudanças) de 612, nenhuma cobertura de testes, complexidade um pouco maior e uma quantidade maior de arquivos. O código não é tão antigo. O risco é 1, mas acabou falhando. Há outras ocorrências com a mesma correlação que podemos observar, por exemplo, o 1005, com churn de 684, que corresponde à relação que mencionamos acima. Vamos consultar o nosso README: o churn é o volume de mudanças — quanto mudou, de fato, no código. Exemplos: 612, 242. Isso representa o quanto foi alterado no nosso código.
Quais features (características) mais se associam à falha? Quanto maior o número de arquivos, maior a probabilidade de falha. Quanto maior o número de mudanças (entradas e saídas de código, o diff), maior o risco. Quando temos uma cobertura de testes maior, o risco reduz. Isso é esperado, mas vale reforçar.
As features (características) não têm o mesmo peso. O número de arquivos e o code churn (volume de mudanças no código) costumam dominar o sinal, enquanto a cobertura de testes puxa o risco para baixo. Mudanças extensas aumentam o risco de falha, pois mexemos muito na base de código. A idade do código também pode aumentar o risco, porque podemos ficar muito distantes do main atualizado, da base atualizada. Porém, isso não é necessariamente um risco, dependendo do que estamos modificando.
A correlação simples já mostra a direção de cada feature (característica), mas trata cada uma isoladamente. Um modelo aprende os pesos em conjunto, considerando as interações entre elas.
No próximo vídeo, nós vamos falar sobre treinar um modelo de risco com base nesses vetores dos quais estamos tratando: vetores de complexidade, de cobertura, de idade, de número de arquivos, etc. Vamos ver isso, então?
[música]
O curso CI/CD inteligente: automação preditiva e entrega progressiva possui 156 minutos de vídeos, em um total de 48 atividades. Gostou? Conheça nossos outros cursos de Builds em DevOps, ou leia nossos artigos de DevOps.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
O Plano Plus evoluiu: agora com Luri para impulsionar sua carreira com os melhores cursos e acesso à maior comunidade tech.
2 anos de Alura
Matricule-se no plano PLUS 24 e garanta:
Jornada de estudos progressiva que te guia desde os fundamentos até a atuação prática. Você acompanha sua evolução, entende os próximos passos e se aprofunda nos conteúdos com quem é referência no mercado.
Back-end, Dados, Front-end, DevOps, Mobile, Gestão & Negócios, UX & Design, Cibersegurança, Cloud, Inteligência Artificial
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
Acesso à inteligência artificial da Alura.
No Discord, você participa de eventos exclusivos, pode tirar dúvidas em estudos colaborativos e ainda conta com mentorias em grupo com especialistas de diversas áreas.
Catálogo de tecnologia para quem é da área de Marketing
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
20% de desconto na Pós Tech
Luri Vision chegou no Plano Pro: a IA da Alura que enxerga suas dúvidas, acelera seu aprendizado e conta também com o Alura Língua que prepara você para competir no mercado internacional.
2 anos de Alura
Todos os benefícios do PLUS 24 e mais vantagens exclusivas:
Acesso ao catálogo da Casa do Código e leitura dentro da plataforma
Chat, busca, exercícios abertos, revisão de aula, geração de legenda para certificado.
Modo entrevista - Pratique situações reais e evolua com feedback personalizado
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Para quem quer atingir seus objetivos mais rápido: Luri Vision ilimitado, vagas de emprego exclusivas e mentorias para acelerar cada etapa da jornada.
2 anos de Alura
Todos os benefícios do PRO 24 e mais vantagens exclusivas:
Lives CareerUp: eventos exclusivos com foco em empregabilidade e carreira
Mentorias de carreira: 2 encontros individuais com mentores do Talent Lab
Conecte-se ao mercado com mentoria individual personalizada, vagas exclusivas e networking estratégico que impulsionam sua carreira tech para o próximo nível.