Bom pessoal, vamos falar um pouquinho agora de CodePipeline. CodePipeline agora que é um serviço de integração contínua da AWS, tá? É a nossa esteira ali de CI e CD, que ela vai oferecer ali as formas de você automatizar desde a fase de compilação, testes, implantação do seu código, quando você fizer alguma alteração nele, tá bom? Então é basicamente uma ferramenta de automação de implementação espera de 6 e de aqui a ferramenta que vai ser essencial para o seu dia a dia pra você que está usando o de vóps então o processo de release de implantação e etc você precisa ter code pipeline para conseguir fazer isso acontecer tá bom então essa é a nossa ferramenta de entrega contínua bom pra quem não tá tão acostumado ainda com essa idéia de entrega contínua. Bom, para quem não está tão acostumado ainda com essa ideia de entrega contínua, vamos só explicar rapidamente o que é o CI e o CD. CI é o Continuous Integration, é a prática de você automatizar a integração de código de diferentes pessoas. Então, você tem várias pessoas no time que estão fazendo suas codificações em projetos compartilhados, às vezes, e no dia a dia você vai fazendo essa integração para você não ficar com aquele código parado nas máquinas, e depois na hora de fazer o merge disso ou de juntar as coisas, você ter muitos conflitos. Então, o Continuous Integration é essa ideia de você integrar sempre os códigos do time para estar sempre com a sua melhor forma, pensa desse jeito. Quando a gente está falando de Continuous Delivery, que é o CD, forma, pensa desse jeito. Quando a gente está falando de Continuous Delivery, que é o CD, ele é a próxima parte da esteira de deploy. Então você tem ali o CI e depois você se estende ao CD que vai garantir que o código pode ser liberado para a produção, que está tudo bem, que já aconteceu tudo, ou seja, você já fez seus testes, já fez tudo que você precisa em uma esteira de deploy, o passo a passo que você faria ali para colocar algo em produção. Então, pensa aqui, no seu dia a dia ali, quando você codifica alguma coisa e você não tem uma esteira de CICD, o que você vai fazer? Você codifica, depois você vai fazer o merge request, vai fazer o merge dessa aplicação, depois você vai subir isso para o ambiente, testar, integrar, testar funcional e levar para frente ali o test end to end e depois fazer a implementação desse código, pelo menos isso você vai fazer, você pode fazer outras coisas também, mas pelo menos isso você tem que fazer. Então imagina quando a gente coloca uma esteira de CI e CI de automática, a gente está dizendo que tudo isso vai ser feito de forma automatizada desde que você tenha codado essa automação antes e daí a gente vai falar que tudo isso vai ser feito de forma automatizada desde que você tenha codado essa automação antes e daí a gente vai falar um pouco disso aqui nos próximos slides, tá bom? Então, outra coisa que é legal a gente pensar também é o Continuous Deployment que é uma continuação da ideia de Continuous Delivery. Então, quando a gente está falando de Continuous Delivery ele vai até a fase ali de preparação para oamento, ou seja, ele está falando que o seu código está pronto para ser levado para a produção, para ser entregue para o seu cliente. O Continuous Deployment vai um passo além, ele também vai fazer a liberação para a produção. Ele dá o passo de deploy mesmo no ambiente produtivo e cada mudança que passar por as estratégias de C e CD, ela vai ser automaticamente lançada em produção sem você precisar de ninguém fazendo isso de forma manual, beleza? Então, quando você fala de Continuous Deployment, você está falando de tudo, de C e CD, Continuous Delivery, Continuous Deployment, que vira tudo isso, uma coisa só dentro do Code Pipeline. A gente vai fazer toda essa estratégia dentro desse code pipeline, beleza? Bom, voltando para o code pipeline, vamos explorar mais dele e de como ele funciona, desde a gente falar da fase de search, build, test e deploy e assim por diante. Então, quando a gente está olhando o code pipeline, ele passa por pelo menos essas fases aqui, que são as fases que a gente imagina ali de uma esteira de deploy no dia a dia, tá bom? Primeira fase, vamos lá. O objetivo dela ali, que é o source, é capturar o código fonte sempre que uma alteração for feita. E iniciar automaticamente o pipeline disso. Ou seja, a partir do momento que você for lá e alterou o código, o source tem que ir lá e capturar esse código para você. As ferramentas que a gente tem de integração para isso, basicamente, são a AWS CodeCommit, GitHub, entre outros. Se você tiver alguma outra ferramenta também, ali de repositório de código, talvez você tenha bastante integração com a AWS. Ela integra com muitas ferramentas. Eu coloquei essas principais que a galera acaba utilizando, mas ela tem integração com muitas ferramentas a gente tem ali os detalhes de implementação ou seja, ao configurar o CodePipeline você vai ter que especificar o repositório a branch do CodePipeline que o CodePipeline vai olhar assim por diante e uma mudança de commit nessa branch como por exemplo um push ou merge ela vai disparar vai ser um trigger de disparo aqui da execução do pipeline beleza aqui a carinha do code pipeline quando você entra então imagina que você entrou lá na AWS você vai ter essa carinha pode fazer ele por por é pela web mesmo tá e você clica aqui no get started para começar nossa jornada e depois que você clicou no get started você consegue ir lá e colocar o nome do pipeline que você vai colocar beleza você vai nomear ele para começar a sua os seus próximos passos colocou lá o nome que você achar mais interessante para o seu pipeline por exemplo demo pipeline mas você pode colocar o nome que você acha mais interessante para o seu pai pela importância do demo pipeline mas você pode colocar o nome que você quiser esteja de implementação do zezinho na sua equipe etc com o nome que faça sentido óbvio mas aqui se coloca o nome que o que for melhor pra você depois clique next steps você vai pra parte de search que a gente está comentando agora aqui que eu queria chegar pra mostrar pra vocês quando está gente está falando de search, você vai falar de onde você está pegando qual é o search provider, que é o GitHub aqui no caso, ou você pode colocar outro search provider e assim por diante depois você pede para ele conectar o GitHub e Next Steps beleza? então você viu uma carinha ali de como isso funciona, vamos para o build o objetivo aqui é compilar o código e preparar os pacotes que vão ser executados ou seja, a gente está falando aqui da hora de buildar mesmo a aplicação, de deixar tudo preparado para o código estar pronto então aqui as ferramentas de integração que a gente tem, a AWS CodeBuild a gente vai falar um pouco dele também depois mas é uma ferramenta de compilação gerenciada ali pela própria AWS, que ela vai fazer tanto a compilação quanto os testes, tá? Para produzir o pacote de software pronto. Então, o CodeBuild a gente vai acabar entrando um pouco mais depois. Tem o Jenkins, que é um servidor de automação open source, que também pode ser integrado ali ao CodePipeline para fazer as tarefas de build. O Jenkins já é mais conhecido pra você que não é da AWS, possivelmente conhece o Jenkins, mas tem essas ferramentas aqui, beleza? E o Code Pipeline, qual que é a carinha dele? Essa daqui, tá vendo? Dentro do Code Pipeline, quando a gente tá falando do build, a gente foi em name, foi em search, na hora do build a carinha é essa daqui. A gente tá falando de ter que colocar aqui qual é o provedor de build que você quer colocar depois o next steps beleza quando está falando de teste o objetivo é executar os testes automatizados óbvio tá no nome também é para garantir a qualidade de código então como a gente faz testes unitários que vão testar as partes ali isoladas do código, ou seja o menor dos componentes testáveis possíveis, depois você vai fazer os testes de integração, para ver a integração entre os componentes e assim por diante poxa, se você quiser implementar algum teste end-to-end de aplicação, você consegue também você consegue colocar aqui todos os testes que você quer automatizar na sua CodePipeline, inclusive testes de carga que são extremamente importantes para a gente ver se a sua aplicação vai estar preparada para quando você tiver aumento de interação com ela, beleza? E a fase 4, que é o Deploy, Deploy propriamente dito, vai ter o objetivo ali de implementar o seu software no ambiente de produção, beleza? Ou no ambiente de teste também, se você quiser só subir ele para o próximo ambiente, também o CodePipeline vai fazer isso, tá bom? Então, o AWS CodeDeploy vai automatizar as implementações de aplicações como o do serviço da AWS ali, C2, Lambda, qualquer tipo de serviço da AWS, você vai usar para isso. Você consegue usar o AWS Elastic Beanstalk para aplicações web ali, então ele vai gerenciar automaticamente os detalhes de implementação, carga, auto-scale, etc. E o Kubernetes também para cenários de containers, então quando você está falando de subida de container, o que é a implementação disso, você também consegue colocar aqui no Code Pipeline no deploy. E aqui é uma página meio que de revisão, para ver se você não fez nada de errado, tá bom? Então depois que você passou por todos esses itens, você tem uma página ali de revisão, onde você vai ver se tudo que você fez está certo, ou seja, social stage, está no GitHub, qual repositório, qual branch, build stage, qual que é o provedor que a gente está querendo e assim por diante. Você vai colocando tudo que você, você vai conferindo tudo que você colocou para ver se está de acordo com o que você queria fazer, depois você cria uma pipeline e segue em frente.