fala pessoal bem-vindos a mais um vídeo aqui no canal do cof stch e hoje a gente vai falar sobre um tema que eu gosto bastante hoje a gente vai falar sobre devops mas especificamente a gente vai criar um pipeline que implementa as técnicas de CD de forma que a gente consiga entregar uma aplicação de maneira simples eficiente e com qualidade para fazer isso a gente poderia utilizar diversas ferramentas que existem no mercado a gente poderia utilizar o gitlab o gth Hub Actions o jenkins mas eu optei pra gente utilizar o bit Bucket pipelines nesse vídeo
muito por conta que ele é amplamente utilizado nas empresas muitas das empresas aqui no Brasil no exterior elas utilizam a stack datation que é o Gira o confluency e o bit Bucket e acabam também utilizando bit Bucket pipelines por conta de toda essa integração por isso eu acho que vai ser um conhecimento extremamente relevante para você e um conhecimento que você vai conseguir aplicar na sua empresa mas antes de botar a mão na massa e começar a construir o nosso pipeline Eu queria que a gente ficasse na mesma página Eu queria que a gente entendesse
que um pipeline é um conjunto de processos automatizados que tem o objetivo da gente realizar alguma ação e quais as ações que a gente quer realizar aqui no nosso pipeline O que precisa ter no pipeline a gente precisa implementar as técnica de CD Então nesse pipeline vão ter uma série de processos automatizados relacionados ao Ci e uma série de processos automatizados relacionados ao CD O ci vai ser responsável por garantir a qualidade do nosso código toda vez que um código é alterado seja por via de p request ou comit direto a gente precisa garantir a
qualidade desse código então o c né né o continu continuous integration ou integração contínua ele consiste uma série de processos automatizados que vai garantir a qualidade do nosso código vamos supor que a gente trabalha num time e esse time tem vários desenvolvedores trabalhando no mesmo repositório e eles vão fazer as mudanças através de p requests nesses P requests vão ter alguns processos automatizados que vão ser executados e vão garantir que o código é de qualidade tá com uma boa cobertura de testes não tem nenhum potencial bug então todas esses passos para garantir a qualidade do
código responsabilidade do CIA e do continuous integration já a parte de continuous deployment ou cd são outros processos que são relacionados por automatizar o processo de Deploy da sua aplicação então o ci vai garantir a qualidade da sua aplicação a qualidade do seu código e o CD Vai automatizar o Deploy da sua aplicação Agora vamos pra parte prática vamos construir o nosso pipeline E para isso eu queria que vocês dessem uma olhada rapidinho na aplicação que eu criei para servir como base no nosso pipeline basicamente eu criei uma aplicação utilizando nestjs uma aplicação muito simples
que contém apenas o endp chamado Hello e quando a gente bater nesse end Point a gente vai retornar pro cliente um hello world é uma aplicação muito simples eu não me tentei a usar nenhum pattern nenuma biblioteca nada do tipo é justamente pra gente testar o nosso pipeline Tá bom então basicamente essa ap ela vai tá totalmente dentro do nosso repositório do bitbucket eu joguei todo esse código para repositório no bitbucket e todo o pipeline vai ser executado dentro desse reposit histório Então vamos lá vamos começar a criar o nosso pipeline de fato Vamos abrir
aqui o nosso vers code e começar a criar o arquivo que vai ser responsável por conter todas as configurações do nosso pipeline aí a gente precisa criar um arquivo na raiz do nosso repositório chamado bit Bucket pipelines então ele vai se chamar bitbucket traço pipelines e a extensão desse arquivo é um arquivo pamel É nesse arquivo que a gente vai ter todas as configurações do nosso pipeline e a primeira configuração que a gente tem que colocar é a configuração de qual imagem docker que a gente quer que seja executado no nosso pipeline todo pipeline ele
é executado em cima de uma imagem docker isso não é só uma característica do bit Bucket pipelines oit Hub Actions oit laab eles também funcionam dessa maneira outras ferramentas também funcionam dessa maneira tá então a primeira coisa que a gente tem que definir aqui é qual imagem que a gente quer que nosso pipeline Execute Então a gente vai dizer aqui ó image name e como a nossa aplicação é uma aplicação em nestjs acho que uma imagem node é mais do que o ideal é mais do que o suficiente pra gente executar todos os steps todos
os passos do nosso pipeline Então a gente vai vir aqui node a versão que eu tenho aqui na minha máquina versão 12.4 não necessariamente precisa ser a versão da minha máquina mas como eu rodei a aplicação Nessa versão então tô criando pipeline também Nessa versão Então vamos lá agora depois que a gente já definir qual imagem que a gente quer no nosso pipeline a gente tem que começar a definir os steps os processos e primeiro a gente vai começar a definir os processos do nosso C do continuous integration Então a gente vai vir aqui no
nosso pipeline e vai digitar definitions e vai começar a definir os steps do nosso ci do Nossa continuous integration Então a gente vai vir aqui em steps né que são como se fosse Passos processos a gente vai chamar o nosso primeiro step E qual vai ser o nosso primeiro step como a gente tá trabalhando numa aplicação nds num aplicação node a primeira coisa que a gente faz é instalar as dependências e no pipeline não é diferente então a gente vai criar um step justamente para instalar as dependências da nossa aplicação Então a gente vai chamar
esse step de Install dependencies dependencies e o que que a gente quer que seja que seja executado nesse step a gente quer que seja executado um npm install O que que você vai fazer você vai baixar todas as dependências da nossa aplicação todas as dependências que estão no pack de Jon e vai instalar essas dependências numa pasta chamada node modos só que a gente vai precisar dessas dependências a gente vai precisar usar elas nos próximos steps e até nos próximos pipelines então a gente pode pedir pro bit Bucket cachear a pasta node modos e para
fazer isso a gente tem que incluir uma nova chave aqui um novo item aqui no nosso pipeline e vai dizer bitbucket cacheia a pasta node modulos e para fazer isso a gente precisa colocar essa instrução aqui caches node a gente pode cachear outras coisas se a gente for na documentação no bitbucket pipelines vocês vão ver que tem outras opções que podem ser cacheadas mas para nossa aplicação pro nosso caso a gente só precisa cachear a pasta node modul tá então a gente vai começar a criar agora o segundo step que de fato a gente vai
começar a validar a garantia com qualidade do nosso código e para isso a gente vai criar o nosso segundo step com o objetivo de executar o lint Tá o que que é o lint Né o lint ele garante que o nosso código não tem nenhuma vulnerabilidade que ele não tem nenhum potencial bug ou ele às vezes até sugere algumas melhorias de código então a gente tem aqui rodar a gente vai chamar o nosso step de lint e pra gente executar o lint a gente precisa instalar o es link Então a gente vai vir aqui npm
install vocês save save mostrar sav Dev e lint e vai rodar um npm Run link quando a gente rodar um npm Run link ele vai executar essa linha aqui do nosso package Jon que vai fazer uma verificação do nosso código e vai buscar alguma vulnerabilidade alguma melhoria tá a gente poderia utilizar outras ferramentas como um sonar cube que ele faz uma análise estática do nosso código é uma ferramenta extremamente é interessante ela tem sua versão paga e sua versão gratuita também mas para esse caso a gente o a gente já dá uma boa uma boa
checagem no nosso código e já dá uma boa validação inicial Tá bom e o segundo step que a gente gostaria que seja executado no nosso continuous integration a gente quer que todos os testes sejam executados e que todos eles passem Então a gente tem que criar um Step para rodar os nossos testes Então vamos chamar esse e step de testes e o que que a gente vai fazer a gente vai rodar o comando que roda os testes da nossa aplicação que qual Esse comando test só que para isso ele usa usa o jest então a
gente precisa também instalar o jest aqui então a gente vai dar o npm install traço traço save Dev jest e agora a gente vai executar um npm Run test então com esses três steps aqui a gente tá instalando as dependências executando link e executando os testes da nossa aplicação com isso a gente já faz uma excelente garantia que todo código a ser integrado vai ter alguma certa qualidade a gente vai estar verificando a qualidade nesse código no lint e a gente vai estar verificando que todos os testes vocêes estão passando utilizando jest tá então esses
steps já são um bom começo pro nosso continuous integration a gente já pode dizer que a gente já tá aplicando técnicas de continuous integration Então agora que a gente já criou os steps de continuous integration a gente precisa falar em que ordem ou quando que eles vão ser executados para isso a gente tem várias maneiras de executar o pipeline a gente pode falar pro pipeline ser executado manualmente e toda vez que a gente comitar numa Branch específica ou toda vez que a gente criar uma tag mas pro nosso caso seria interessante que a gente Rode
todo esses steps quando a gente criar um p request porque a gente definiu aqui vamos supor que na nossa organização no nosso time a gente definiu que toda a mudança de código vai ter que ser via requests então a gente quer que toda vez que a gente abre um pro request esses steps aqui sejam executados para isso a gente vai criar a gente vai colocar uma nova instrução aqui no nosso é arquivo. email vamos dizer pipelines e é Aqui é onde a gente define a ordem e quando que o pipeline vai ser executado Então a
gente vai dizer que nosso pipeline vai ser executado Quando a gente tiver algum P request Qual o padrão de p request qualquer P request a gente poderia dizer que a gente poderia trigar o nosso pipeline baseado num padrão de p request por exemplo começa com a letra C começa com a letra e b a gente poderia definir isso ou a gente pode colocar esses dois asterístico aqui dizer qualquer por request que for aberto eu quero que sejam executado os seguintes steps então Vamos definir os steps que a gente quer que seja executado quando a gente
abre um request Então a gente vai vir aqui e vai falar quais steps que a gente quer que sejam executados aqui a gente vai usar um recurso bastante interessante do bit Bucket pipelines a gente vai utilizar o recurso de ancor de Ancora que a gente pode fazer uma analogia com ponteiro do c com referência basicamente a gente vai vai colocar alguma referência pros steps a gente vai dizer Esse step Aqui tem uma referência chamada instal esse step aqui vai ter uma referência chamado é lint esse aqui é Test e aqui a gente vai referenciar esses
steps a gente vai dizer que eu quero que seja executado o step de install o step de lint e o step de teste então toda vez que a gente abrir um p request esses steps vão ser executados Então vamos ver na prática isso aqui funcionando vamos criar uma Branch aqui vamos dar um Git checkout menos B vamos chamar essa Branch de pipeline vamos chamar de pipeline cof stack Opa cof stack vamos salvar nosso arquivo vamos vamos adicionar vamos comitar ele vamos chamar de first pipeline first pipeline e vamos dar o push nosso terminal e vamos
fazer o push da nossa Branch e abrir o p request beleza Vamos abrir um p request para m não vamos colocar nenhum revisor só que antes da gente criar o p request a gente tem que vir aqui em repository settings a gente vai descer até a parte de pipelines e a gente precisa habilitar os pipelines para esse repositório Então a gente vai vir aqui habilitar beleza e agora a gente vai criar o nosso request e assim que a gente criar o nosso P request se a gente vier na parte de pipelines a gente vai observar
que um pipeline foi iniciado acho que isso aqui tá um pouco deve ser algum bug do bitbucket Porque a gente já habilitou os pipelines Mas a gente pode observar que o nosso primeiro pipeline foi habilitado E ele vai começar a rodar aqueles steps que a gente definiu para ser executados sempre quando a gente cria um p request então ao criar um p request a gente pode dizer pro bitbucket só permitir que a gente emergisse por request Se esse pipeline for executado com sucesso ou seja se não tiver nenhum problema com lint ele não reportar nenhuma
vulnerabilidade e se todos os testes tiverem passado então com isso a gente já garante que nosso integração que a integração do nosso código vai ser uma integração de qualidade então a gente já garante que a gente já vai ter uma integração contínua rodando então agora vamos esperar aqui E esse p pipeline finalizar e vamos começar a criar os steps do nosso cont continuos deployment Beleza finalizou o nosso pipeline vocês podem observar que ele foi concluído com sucesso se a gente Navegar por cada um step aqui a gente vai perceber que no npm install ele instalou
todas as dependências foram adicionados é 714 pacotes E se a gente vir aqui nesse Beil trown que é tudo que é feito após finalizar o step a gente pode ver que a pasta node mods foi cacheada se a gente abrir o step de lint o lint foi executado e no retor tornou nenhum problema e o step de teste todos os testes passaram com sucesso no caso a gente só tem apenas um teste Então beleza tudo certo com nosso pipeline a gente pode dizer que a parte de continuous integration Tá ok foi finalizada e agora a
gente vai começar a construir os steps de continuous deployment tá então a gente vai vir aqui no nosso vs code e vai começar a criar mais steps e o primeiro step de continuous deployment ele vai ser responsável por fazer o build da nossa aplicação Então vamos criar um step aqui vamos chamar el de Build build e pra gente fazer o build da aplicação a gente vai utilizar o docker a gente vai fazer o build dentro de docker file que tá aqui na nossa aplicação dentro desse docker file aqui tá então pra gente buildar a uma
imagem docker A gente precisa do serviço de docker só que a gente não vai instalar o docker aqui nesse step porque lembre-se a gente tá rodando todos esses steps em cima de uma imagem node e provavelmente a imag node não tem um docker instalado mas a gente pode utilizar um serviço do beat buuck de pipelines a gente a gente vai ter um docker disponível pra gente usar então a gente vem aqui e digita Services docker então a gente agora pode utilizar os comandos de docker dentro desse step tem diversos outros serviços muito interessantes por exemplo
a gente pode subir um serviço de post para qu que a gente vai querer um serviço de post aqui para rodar teste de integração então a gente roda um teste de integração utilizando um post CR real tá é possível a gente fazer isso Tá Mas para esse caso a gente vai usar só o Services de docker Então a gente vai começar a criar os nossos scripts primeiro a gente tem que fazer o login do nosso docker vamos utilizar uma maneira não tão elegante mas só para que seja mais simples para vocês entenderem vamos fazer o
login do nosso no nosso docker Hub né a gente pod poderia utilizar qualquer regist um regist é como se fosse um repositório de imagens docker tá então tenho docker Hub tem o Sr da WS Mas vamos usar o docker Hub que já é o padrão aqui vamos fazer o login Vamos botar docker login username o username a gente quer que ele seja que ele esteja numa variável de ambiente não quer a gente não quer colocar nossas credenciais abertas expostas no repositório então a gente vem aqui docker username e a senha a gente vai colocar docker
password beleza esse step vai ser responsável por fazer o login no Dock Hub Tá e agora a gente vai fazer vai criar o script para fazer o build da nossa imagem consequentemente o build da nossa aplicação então a gente vem aqui docker build traço T vamos chamar o a a tag da nossa imagem de cof stack traço Hello a versão Vamos botar a versão de de produção production Tá ok e agora a gente precisa dar uma tag que vai ser usada no nosso Dock Hub para essa imagem então a gente vem aqui docker tag Qual
imagem que a gente quer tagar ela podemos dizer assim essa aqui que a gente acabou de criar agora a gente quer referenciar ela mas agora a gente precisa passar o prefixo do meu doc HUB no caso é Igor Ramos então a gente tá Tando a imagem que está localmente no Nossa no caso na nossa máquina que tá rodando p Line a gente tem uma imagem chamada cof stack Hello agora a gente quer tagar essa imagem com prefixo de que vai ter o nosso regist ali na frente então vai ser Igor Ramos mas aqui poderia ser
um nome qualquer mas a gente colocou o mesmo nome da nossa imagem que a gente budou tá bom e por último a gente precisa fazer o push dessa imagem tá então a gente vem aqui docker push e vai copiar só que agora com o prefixo tá E é isso com esses steps a gente vai conseguir buildar com construir o build da nossa aplicação Mas beleza já build nossa imagem já tá guiamos já enviamos essa imagem pro nosso registre que é o DOC Hub agora a gente precisa fazer de fato o Deploy a gente precisa criar
o step de Deploy da nossa aplicação e para deployar eu criei um cluster na WS tá no ecs da WS O ecs que é um um serviço deamento de contêiner da WS não vou entrar muito em detalhe se vocês quiserem deixa nos comentários que a gente faz um vídeo só falando de CS Tá mas basicamente eu criei um um cluster e nesse cluster tem um serviço chamado cof stack Hello o cluster cof stack cluster e o serviço é cof stack Hello e a gente vai precisar fazer o Deploy para esse cluster tá e o bit
Bucket pipelines ele fornece algumas como posso dizer algumas bibliotecas alguns utilitários prontos para que a gente possa usar e um deles é justamente o Deploy pro ss e esses utilitários a gente chama de Pipe se a gente pesquisar aqui no Google rapidamente bitbucket pipeline Pipe ã Deploy SS já temos aqui a gente pode observar que a gente já tem no próprio repositor do bitbucket tá a gente já tem um Pipe ou seja um código pronto para fazer o Deploy no awss a gente poderia utilizar o próprio SDK da WS e fazer o Deploy usando cli
por exemplo da WS a gente poderia Sem problema nenhum mas a gente também já pode utilizar esse Pipe tá que é um próprio serviço da WS ele tem diversos pipes prontos a gente tem Pipe de fazer Deploy para diversos serviços diferentes enviar conteúdos pro S3 assim uma grande diversidade de Pipe que a gente pode utilizar Então vamos criar o nosso step de Deploy utilizando esse Pipe vamos voltar pro nosso PRS code tá E vamos criar o nosso step de Deploy vamos aqui criar o nosso step de Deploy mas tem em mente que esse step tanto
de build como de Deploy ele vai variar de acordo com o tipo de aplicação que você tem se é um um uma aplicação uma página Web vai ser de uma forma se é uma aplicação que tá deoi no SS no kubernet na Google na Amazon tudo isso aqui vai variar de acordo com o cenário que você tem mas o conceito o conceito vai ser o mesmo para todos eles Tá bom então a gente vai criar aqui o nosso step de Deploy tá vamos chamar esse step de Deploy to ecs tá Opa aqui tem um um
ponto interessante uma um recurso interessante do bitbucket que ele divide os nossos Deploy em deployment tá com isso a gente tem uma visualização muito boa de a gente pode ter vários ambientes de Deploy a gente tem um pode deployar paraa produção para ambiente de desenvolvimento para ambiente de testes tá e a gente pode controlar no bitbucket cada ambiente saber o que que foi Deploy em cada ambiente Mas vamos só criar um ambiente só vamos criar um ambiente de production tá a gente vai criar lá no bitbucket a gente não a gente não precisa do docker
aqui a gente só precisa colocar os script que a gente precisa e vamos utilizar o p Vamos pegar lá o nome certinho do Pipe esse aqui vamos utilizar o Pipe de Deploy e vamos utilizar as variáveis que ele fornece variables então você pode observar que a gente só precisa passar as variáveis que o Pipe vai fazer tudo pra gente todos os steps de Deploy vamos copiar as variáveis a gente não precisa de todas elas tá bom V copiar elas todas dentar Beleza a gente precisa das nossas credenciais da Amazon e de novo a gente não
vai deixar asas credenciais abertas no repositório a gente vai utilizar variável de ambiente então a gente vem aqui a WS access Key vamos criar uma variável de ambiente não sei se ficou Claro mas pra gente utilizar a variável de ambiente a gente precisa botar o dólar na frente tá bom Acabei não comentando isso mas pra gente utilizar as variáveis de ambiente a só precisa colocar o dólar na frente então beleza aqui a gente já criou a gente já tá dizendo pro o bit Bucket que a gente vai e usar as variáveis de ambiente para setar
as credenciais do WS tá a gente não precisa desses parâmetros de Roll aqui aqui pro nosso caso a gente só precisa colocar o nome do nosso cluster a gente pode colocar aqui aqui a gente não pris variável de ambiente a gente pode colocar na mão cluster cof stack cluster o nome do nosso serviço que é cof stack Hello pro nosso caso a gente não precisa de citar a tesk definition aqui tá Isso é um conceito do próprio ss e aqui a gente vai forçar sim o new deployment então a gente vem aqui e fala true
que a gente quer que seja feito um deployment novo beleza com esse step de Deploy a gente já tá automatizando depois da nossa aplicação Proc Vamos comitar essa mudança Não antes de comitar a gente tem que dizer quando que a gente quer deployar a nossa aplicação né porque Beleza a gente tá fazendo o oous integration Cada vez que a gente abre um p request isso faz sentido que a gente quer verificar o nosso código antes de mergi mas quando que a gente vai querer deployar nessa aplicação a gente pode deployar a aplicação sempre quando a
gente faz o mer para Brand Master poderia mas eu gosto eu particularmente gosto de configurar o nosso pipeline para deployar sempre que for criada uma tag que uma uma tag vai referên vai dizer que uma nova versão da nossa aplicação foi criada então a gente vem aqui e diz tags é qualquer tag a gente poderia colocar um padrão de tag específico Mas a gente pode dizer qualquer padrão também e a gente vai fazer igual o pipeline do P request a gente vai colocar todos os steps que a gente quer que seja executado para deployar a
nossa aplicação a gente pode e reutilizar os mesmos steps que foram utilizados no por request mas a gente precisa acrescentar os steps de build e de Deploy então toda vez que a gente criar uma tag no nosso repositório que a gente vai dizer ó uma nova versão da nossa aplicação foi criada os steps que estão dentro desse desse bloco aqui de configuração de tags vai ser executado Então vamos subir essas mudanças pro nosso repositório Vamos dar um Clear aqui vamos subir essas mudanças um commit traço a traço M que vai adicionar e incluir uma mensagem
e deployment e steps vou dar um push vocês podem observar que um novo pipeline foi executado aqui mas não é o pipeline de Deploy ele é o pipeline que a gente atualizou o nosso P request tá então el só vai ter esses três steps tá aqui tá dizendo que tá desabilitado mas estranho mas aqui tá habilitado né é algum bug do bit Bucket tá então ah já sumiu então para a gente disparar um Deploy né um um um contnuo de deployment ali os steps de Deploy a gente precisa criar uma tag Então vamos criar uma
tag aqui a gente vai abrir um commit específico obviamente é uma boa prática gente criar uma tag sempre a partir da brint Master tá ou da Main né da da brint principal então a gente merg por request pra Brand principal E cria tag aqui a gente vai criar na própria Brand mesmo só para demonstrar o continu continuous deployment rodando tá criei uma tag E se a gente observar Vamos dar um refresh se a gente observar um novo pipeline foi executado aqui na tag que eu criei 1 e se a gente abrir esse pipeline vocês podem
observar que ele tem todos os steps necessários para fazer o Deploy da nossa aplicação e vamos esperar esses steps ser executados mas eu já vou adiantando para vocês que ele vai retornar um erro e um erro porque a gente não setou as variáveis de ambiente a gente referenciou elas no bitbucket pipelines no arquivo Mas a gente não configurou elas no nosso repositório Então a gente vai configurar e um detalhe importante antes Se vocês observarem a gente utilizou variável de ambiente no step de build né e no step de Deploy Então a gente vai configurar dois
tipos diferentes de variável de ambiente a gente vai configurar uma uma variável de ambiente para todo o repositório Tá eu já vou explicar o porquê que são as variáveis de ambiente do docker Vou botar aqui docker username vou chamar colocar o meu username aqui não precisa ser seguro o username mas a password precisa ser seguro password vou vir aqui beleza então a gente criou as variáveis de ambiente do docker mas são variáveis para todo o repositório como a gente tá utilizando um deployment a gente pode criar variáveis de ambiente de acordo para cada ambiente que
a gente tem ou seja se a gente vir aqui deployment vocês vão ver que a gente pode criar diversos tipos de deployment aqui já existe um uns criados para testes Stage in production então a gente pode utilizar esses deployments pra gente criar variáveis ent específicas como a gente colocou em letra música Vamos alterar esse deployment aqui de produção Vamos colocar as V de ambiente da aw S nesse nessa parte né nesse deployment de produção por que isso a gente pode ter variáis diferent de acordo com o ambiente por exemplo nome do cluster poderia ser diferente
a gente poderia colocar o nome do cluster como variável de ambiente ou as próprias credenciais da WS poderiam ser diferentes de acordo com o ambiente o ambiente de staging é uma variável de ambiente e o ambiente de production é alguma outra variável de ambiente né mas no nosso caso Vamos criar as variáveis de ambiente aqui só pro ambiente de produção tá Axe sk deixa eu pegar a minha Axe ski aqui beleza peguei Max ski Secret já coloquei a region e agora como eu falei para vocês Provavelmente o nosso pipeline eh falhou lá tá então vamos
abrir o pipeline que falhou ele foi tentar fazer login mas como não tinham variável de ambiente para fazer o login né não tinha o docker nem docker password é esse step aqui falhou tá ele tá dando um aviso que não é a melhor opção de de login Mas é só para demonstrar o funcionamento do pipeline Tá então vamos re executar os steps que falharam e provavelmente vai funcionar agora eu queria que vocês só tivessem em mente que todos esses steps que a gente criou aqui eles vão variar de acordo com o tipo de aplicação que
você tem de acordo A onde você tá rodando mas o conceito é o mesmo a gente poderia est rodando esse mesmo pipeline no github Actions no gitlab ou poderia estar deando uma aplicação Java uma aplicação go a gente vai só precisar fazer as alterações necessárias mas o conceito de pipeline de c e de CD vai ser o mesmo então se a gente entender o conceito a gente consegue replicar esse pipeline em qualquer ferramenta em qualquer linguagem a gente só precisa saber como é que builda como é que constrói como é que roda os testes de
uma imagem e já vai ser o suficiente para que a gente consiga rodar esse pipeline e aqui falhou Ah faltou um pontinho pra gente buildar uma imagem docker A gente precisa colocar docker build nome da tag e um ponto esse ponto diz que vai a gente vai utilizar os dados que estão no nosso repositório ali no na Rot né da onde tá o docker file Vamos só fazer um commit aqui vamos Fix build step vamos fazer o push e agora a gente vai precisar criar uma nova imagem uma nova tag Tá bom a gente vem
aqui em commit vamos criar uma tag chamada 1.0.1 e vamos lá pro nosso pipeline que está em Progress de novo Tem outro outro executando um pipeline é porque a gente atualizou o p request e o outro pipeline é porque a gente criou uma imagem nova o certo seria a gente criar imagem já na Branch principal a gente pode fazer essa validação Tá mas como a gente tá aqui testando estamos é só demonstrando mesmo eu tô criando a tag na própria Branch Beleza vai executar todos os steps novamente vou dar um pause no vídeo só para
acelerar um pouco beleza já tá executando os testes e já vai entrar no build né o problema do do build anterior foi que a gente não tinha colocado ponto para referenciar onde que tá o docker file né que a gente tem que referenciar que o docker file tá na na pasta raiz ali na na rot e beleza Vai executar o build Agora vamos esperar no step de login já foi agora ele tá fazendo o build agora o build tá sendo executado beleza Deploy finalizado com sucesso então agora a gente acabou de implementar o nosso pipeline
por completo a gente fez os steps de continuous integration e automatizamos o Deploy fizemos os steps de Cont continuos deployment agora vamos ver se essa aplicação de fato foi Deploy para o USS Vamos abrir aqui o nosso cluster no ss e a gente pode ver aqui que tem uma aplicação rodando a gente já tinha também é E se a gente for em testes em tarefas a gente pode ver que uma aplicação foi atualizada há 2 minutos atrás Então nossa aplicação foi de fato Deploy E se a gente abrir essa tesca aqui a gente pode tentar
acessar ela a gente vi aqui em networking em Public IP é vocês podem observar que não tem nenhum load balancer nenhum DNS não tem nenhum CDN na frente ela é realmente bem simples só para demonstrar mesmo o funcionamento do pipeline deixa eu copiar isso aqui que é mais fácil só para demonstrar o funcionamento do pipeline vou vir aqui e vou dar um 3000 Barra Hello beleza Nossa aplicação foi deoi com sucesso e está retornando Então é isso pessoal com isso a gente criou um pipeline do zero né implementando as técnicas de ci de conin integration
automatizou o Deploy ou seja se a gente implementou as técnicas de Cont continuos de deployment e fez o Deploy de uma aplicação para o ss a gente tem como modificar todos esses steps para fazer Deploy de forma diferente utilizando plataformas diferente e imagens diferentes aplicações linguagens a gente pode fazer muita coisa com os pipelines de formas totalmente diferentes mas o conceito vai ser o mesmo então se você entendeu Como é que a gente faz um pipeline no bit Bucket pipelines você vai conseguir entender um pipeline no kit Hub Actions n kit laab e no circ
ci e basicamente todas as outras ferramentas de CCD só vai ter que entender as nuances nas particularidades de cada uma mas o conceito como elas funcionam são bem parecidos Então é isso Pessoal espero que vocês tenham gostado do vídeo não esqueçam de se inscrever no canal no ctech e deixar aquele like e se vocês tiverem alguma dúvida ou quiserem que eu traga esse conteúdo em outra plataforma ou traga outro conteúdo de devops deixa aqui nos comentários tá que a gente vai est lendo todos os comentários e trazendo cada vez mais conteúdo para vocês beleza até
o próximo vídeo pessoal valeu [Música]