Quais são os reais benefícios no uso de uma pipeline CCD Quais são as etapas e os testes que eu devo executar como é que eu garanto a integração e a comunicação dos meus microsserviços numa pipeline e como é que eu faço para escolher a ferramenta ideal para construir essa solução essas e outras perguntas eu vou responder para você nesse [Aplausos] [Música] vídeo Fala aí beleza seja bem-vindo seja bem-vinda a mais esse vídeo aqui no canal Hoje a gente vai falar sobre pipeline CCD Eu vou tirar aqui as principais dúvidas responder as principais perguntas que vocês
fazem para mim é no Linkedin no Instagram aqui no YouTube então se você tem dúvida sobre algum assunto já coloca aqui no YouTube coloca lá no meu Instagram no Linkedin se você não me segue começa a me seguir que a sua dúvida pode tá aqui no próximo vídeo certo e se você não me conhece eu sou Fabrício Veronês e eu tô aqui para ajudar você a desenvolver aplicações escaláveis de grande porte utilizando as melhores práticas em Cloud E devops então se você não é inscrito se você não é inscrito aqui no canal já se inscreve
aciona o Sininho dá um like no vídeo pro YouTube entender que esse conteúdo é de qualidade vale a pena ser distribuído porque toda semana tem conteúdo novo aqui no canal e se você quer dar mais um passo rumo a elite doss profissionais de ti sendo capaz de criar soluções escaláveis de grande porte utilizando Cloud devops com o meu acompanhamento eu te convido a clicar no link aí embaixo na descrição pra gente entrar em contato com você e falar mais sobre a formação devops pro a gente vai entender o seu momento profissional e entender como a
gente consegue te ajudar a evoluir de forma mais rápida e eficiente Ok então vamos lá PR as perguntas vamos lá primeira pergunta quais os principais benefícios de um pipeline CCD traz para as equipes de desenvolvimento e operações cara isso é uma excelente pergunta e muita gente que tá começando tem essa dúvida vamos lá quando a gente fala em entrega de software entregar uma aplicação eu tenho diversas etapas que são executadas tanto no lado de desenvolvimento quanto no lado de operação vamos começar aqui no desenvolvimento Normalmente quando você desenvolve ali divers as features e diversas correções
de bug fecha ali uma Sprint uma nova versão precisa ser entregue e quando a gente faz isso manualmente sem utilizar pipeline CCD normalmente o profissional mais Senior Tech Lead ou a pessoa técnica responsável pelo projeto e paralisa ali os comites né não sobe nada mais pro repositório e todas as etapas necessárias para entregar essa nova versão é feita por esse profissional que vai ali pegar o código executar o build se a aplicação é compilada se a aplicação é interpretada você vai eh gerar um pacote de entrega ou de execução para verificar os testes né executar
teste de unidade ou teste unitário teste de integração eh e várias etapas em relação à qualidade também da aplicação vai se analisar e qualidade de código normalmente vai executar ali um sonar cube vai vai verificar a vulnerabilidade da aplicação se todos os pacotes estão atualizados se tem alguma vulnerabilidade e passando tudo isso né tudo isso sendo executado com sucesso na máquina né do profissional eh é feita ali a o pacote de entrega é criada ali uma nova release E é disponibilizada em algum lugar para que depois entre aí o profissional de operação né a galera
que cuida ali do Deploy da aplicação no ambiente e aí equipe de operação né Normalmente também o profissional mais Sênior o Tech Lead ali da equipe vai pegar essa nova release vai colocar no ambiente e fazer também as verificações executar teste análise de vulnerabilidade muitas vezes também e quando vai se colocar no ambiente final tem que ter ali aprovação aceite de um Project Manager ou um po enfim tem ali uma validação manual também para garantir que No final a aplicação essa nova versão vai ser executada no ambiente final e cara esse processo ele sendo manual
sendo burocrático né dependendo de profissionais normalmente demora muito tempo eu já vi casos em que a equipe perde um dia inteiro fazendo esse processo muitas vezes até mais dependendo da situação semanas para fazer o Deploy de uma nova aplicação isso não é eficiente não garante a qualidade da entrega porque como a gente tá executando etapas de forma manual quem te garante que realmente as etapas estão sendo executadas Quem garante que o Tech Lead profissional Sênior aí que é responsável por executar isso realmente executou todas as etapas muitas vezes né a gente sabe né A gente
trabalha com ti já tem um tempinho né muitas vezes essas etapas são puladas ali manualmente para fazer a entrega o mais rápido possível então entregas manuais são suscetíveis a erros porque o ser humano comete erro e não garante a qualidade final além de ser extremamente lento por se tratar de entrega manual de você parar um profissional que normalmente é um profissional que é caro né pra empresa né porque ele tem ali e a sua remuneração E você tá eh parando esse profissional para fazer uma entrega que é um processo extremamente repetitivo manual e suscetível a
falhas quando a gente trabalha com pipeline CCD todo esse processo ele é feito automaticamente tudo que o profissional de desenvolvimento e o profissional de operação tá fazendo ali no seu ambiente executando manualmente os comandos a pipeline vai fazer continuamente e ela pode executar essas etapas a cada comite que é feito para entregar uma nova versão então ao invés de ficar ali o tempo inteiro executando esse processo manualmente eu vou eh a cada comite executar esse processo fazendo pequenas entregas garantindo que sempre eu vou ter ali eh a execução dos meus testes da minha análise de
código da minha análise de vulnerabilidade tanto no ambiente de integração quando eu tô fazendo ali a entrega de um novo código quant quando eu tô executando ali no meu ambiente de de entrega realmente o meu ambiente de homologação no meu ambiente de produção então esses são os benefícios cara quando você quer trabalhar com aplicações escaláveis deig Grand porte onde você precisa entregar continuamente novas versões Onde você trabalha numa arquitetura baseada em microsserviços que é muito comum você ter 1 2 3 10 depóis no mesmo dia empresas como o Mercado Livre fazem lá é mais de
3.500 deployment por dia não tem como você trabalhar dessa forma sem você implementar pipelines deci E decd então esses são os benefícios e é por isso que é importante você que desenvolve aplicações entender como implementar isso como você lida com a automação de testes dentro de um pipeline de cicd bom vamos lá tem diversos tipos de testes diferentes que eu posso posso aplicar para garantir qualidade do meu software eu tenho o teste de unidade o teste unitário eu tenho o teste de integração tem o teste funcional tem o teste de carga enfim tem diversos testes
mas eu vou basear aqui nos três principais que fazem parte ali da pirâmide principal de teste né que é o teste e unitário teste de unidade o teste de integração e o teste funcional né o teste de unidade e o teste de integração normalmente você vai colocar na pipeline deci por quê Porque tá mais vinculado ali a aplicação tá vinculado ao código o teste de unidade teste unitário ele vai verificar ali uma pequena unidade do seu código normalmente você tem Mox ali para simular os as integrações externas né porque o teste unitário ele normalmente ele
não faz nenhuma comunicação com o serviço externo e você vai mocar esse Car cara então faz mais sentido você utilizar ele executar ele no na pipeline de c de integração contínua que é onde você tá pegando aí um novo código e integrando no código já existente então é o primeiro teste que você vai executar o teste de integração onde você começa a testar a integração e a comunicação do seu código com serviços externos como por exemplo eh banco de dados é serviço de mensageria ou outros serviços você vai executar também na pipeline deci Porque caso
o teste de unidade o teste unitário e o teste de integração ele não funcione cara você nem vai criar uma nova release você nem vai criar uma nova versão porque você já tem problema no seu código esse tipo de teste é o que a gente chama de teste caixa branca por quê Porque você tem acesso direto ao código você consegue verificar as funcionalidades do seu código verificar o que foi ali desenvolvido você tem acesso direto a ele já o teste funcional é onde você verifica o comportamento do sistema onde você vai imputar ali os valores
na aplicação e verificar os resultados ele já tem a característica de ser um teste que você precisa de um ambiente para ser executado Então você vai executar esse teste no seu ambiente ambiente né na sua pipeline de CD porque você precisa ter ele rodando no ambiente normalmente você vai colocar esse cara para ser executado num ambiente preliminar num ambiente de desenvolvimento ou num ambiente de produção antes de ir né ou melhor num ambiente de homologação antes de ir pra produção Então você vai fazer o Deploy dessa release que passou por toda a pipeline d c
executando teste de unidade teste de e integração e vai executar ele num ambiente lá homologação ou pré-produção enfim e vai registrar ali o input que foi inserido na na funcionalidade e vai eh fazer ali o registro também da saída verificar se tá tudo funcionando isso a gente chama de teste de caixa preta por você não tem acesso ao código você sabe as regras de negócio você sabe o que você precisa imputar e o que o sistema tem que devolver então é assim basicamente que você vai lidar com os testes você precisa analisar Quais são os
testes que você vai executar no código e quais são os testes que você vai executar direto no ambiente mas esses aqui são os três principais se você tiver aplicando eles você já tá trazendo muita qualidade na sua entrega e se você quiser ver isso na prática esse tipo de implementação Coloca aí embaixo nos comentários que a gente prepara aqui um conteúdo legal aqui para mostrar para você como fazer isso beleza como o contêiner pode me ajudar na construção de pipeline e CCD cara vamos lá essa é fácil de responder porque cara docker kubernetes facilita muito
não só a criação da sua pipeline CCD mas o seu ambiente de desenvolvimento seu ambiente final de execução da aplicação seu ambiente de estudo se você ainda não tá estudando sobre Dock sobre kubernetes não conhece Essas tecnologias cara você tá perdendo tempo e tá perdendo grandes oportunidades eu vou inclusive fazer o seguinte eu vou colocar aí embaixo uma playlist de dock e de kubernetes para você começar a estudar sobre Essas tecnologias caso você ainda não tenha e estudado e ainda não conheça beleza bom mas vamos lá por que que container docker kubernetes ajuda na hora
de construir as nossas pipelines a tecnologia de contêiners ela serve para executar processos de uma maneira isolada em um ambiente com o docker com o kubernetes eu consigo criar uma imagem de contêiners uma imagem docker com tudo que é necessário para executar a minha aplicação o meu processo e esse cara ele vai ser executado pontualmente no meu ambiente de maneira isolada e quando eu não preciso mais desse cara ele é eliminado como se nada tivesse acontecido sem ter que desinstalar nada no meu ambiente e quando a gente trabalha trabalha com pipeline deci e pipeline de
CD eu vou ter lá na pipeline o meu agente de execução ou Run como é chamado em algumas ferramentas de pipeline também o que que é esse cara é o ambiente que eu vou executar as etapas do meu processo da pipeline as tarefas que eu preciso executar na minha pipeline e essas tarefas elas precisam de configurações e também de dependências Pô você vai executar o teste de uma aplicação em node você precisa ter ali o node instalado Pô você vai executar um sei lá uma infraestrutura como código com terraform ou ansible você precisa ter um
setup já definido nesse agente do terraform do anb você precisa ter eles instalados e muitas vezes você tem uma versão específica que você precisa utilizar para aquela pipeline E aí olha só que interessante ao invés de você se preocupar em instalar a versão correta do terraform ou node ou GO ou dnet seja lá o que for no seu agente e depois ter que desinstalar caso você não esteja utilizando um Executor como um serviço você pode definir uma imagem que você construiu anteriormente com tudo que é necessário para executar aquelas etapas da pipeline Então você ganha
muito mais eficiência na execução das suas tarefas na pipeline você consegue ter a garantia de tá utilizando o ambiente correto e utilizando o ambiente o mais próximo de produção que você vai ter porque você vai garantir que você tá utilizando a versão correta do node a versão correta do go ou seja lá qual for a tecnologia que você tá utilizando sem se preocupar ali com setup adicional dos agentes certo fora que você ter um ambiente kubernetes para executar a sua aplicação você consegue executar as suas aplicações em tecnologias diferentes mas tendo ali uma gestão única
porque você tá gerenciando contêiners Então dessa forma contêiner vai te ajudar na hora de construir as suas pipelines mas volto a falar contêiner docker kubernetes vai te ajudar não só com pipeline mas também também em diversas outras etapas do desenvolvimento e da entrega do seu software então se você ainda não tá estudando entra aí na playlist E já começa Bom vamos lá Quais as ferramentas você recomenda paraa construção de um pipeline CCD eficiente cara a gente tem diversas ferramentas para pipeline ccd hoje no mercado a gente tem github Actions que eu posso dizer que é
a ferramenta mais acessível vamos dizer assim porque ela faz parte ali do github e normalmente a gente já tem os nossos códigos lá no github então para acessar ali estudar é muito rápido muito fácil porque já tá ali né e além de ser gratuita mas a gente tem também o gitlab que é muito utilizado pelas empresas a devops que na verdade é o ay pipelines que faz parte do a devops tem o Code build code de apply da WS tem do Google eh tem da Oracle tem o jenkins que apesar de ser uma solução eh
mais antiga é também bastante adotado pelas empresas e a dica que eu te dou aqui na hora de escolher essas ferramentas né porque tem essas que eu falei e muitos mais outras mas a dica que eu te dou é Analisa Quais são os requisitos que você precisa para implementar uma pipeline O que quais são as necessidades da empresa que você tá atuando Quais são as parcerias que a empresa tem normalmente a empresa que você trabalha já adota uma tecnologia de cloud ou já tem parceria com alguma empresa que tem uma solução de pipeline então a
dica que eu te dou é antes de você ver outras opções se a sua empresa já tem uma parceria com alguma dessas empresas já Analisa se essa ferramenta vai te atender porque normalmente você consegue e negociar valor consegue ter um suporte diferenciado e um outro ponto também que eu considero muito na hora de adotar não só ferramenta de pipeline Mas qualquer outra ferramenta ou solução é analisar aderência de mercado quanto eh o mercado utiliza essa ferramenta porque é mais fácil de você encontrar documentação você encontrar suporte na comunidade e também na hora de contratar é
muito mais provável que a pessoa que você vai contratar paraa sua equipe já conheça ou tenha algum contato com a ferramenta então eu gosto de utilizar essa abordagem também mas além das Ferramentas de pipeline CCD você vai utilizar também no processo de integração e de entrega contínua da da sua solução de software diversas outras ferramentas como por exemplo docker e kubernetes que eu falei antes paraa solução de contêiners ferramentas de infraestrutura como código para você provisionar os seus recursos de cloud você vai utilizar também Algum serviço de cloud você vai utilizar um ambiente de nuvem
ferramentas de monitoramento observabilidade então Analisa com cuidado cada uma dessas ferramentas que vão fazer parte da etapa de entrega e implementa coloca para funcionar mas pipeline CCD se você escolher qualquer uma delas e aplicar corretamente você vai se dar muito bem Comenta aí embaixo inclusive qual ferramenta de pipeline CCD que você mais gosta então é isso galera eu espero que esse esse conteúdo tem ajudado você a tirar as suas dúvidas em relação a pipeline CCD e coloca aqui embaixo Qual a pergunta que você faria aí para mim que você quer fazer para mim é sobre
pipeline CCD sobre doc sobre kubernet sobre ambiente de cloud desenvolvimento de software que a sua pergunta pode est aqui no próximo vídeo certo então não deixa de dar um like no vídeo pro YouTube entender que esse conteúdo é de qualidade vale a pena ser distribuído não deixa de se inscrever no canal para você não perder mais nenhum conteúdo e não deixa também de clicar aí embaixo no link entrar em contato com a gente pra gente falar mais sobre a formação Dev devops pro entender o seu momento e saber como a gente pode te ajudar beleza
Ah e um ponto muito importante também pega aqui o link desse vídeo compartilha nas suas redes sociais principalmente no Linkedin porque você mostra para a sua rede e também pros recrutadores recrutadoras que você tá se especializando então coloca lá me marca que eu vou ter maior prazer de interagir lá com você beleza bom então é isso muito obrigado até o próximo vídeo valeu