{"id":34166,"date":"2022-03-30T08:02:00","date_gmt":"2022-03-30T11:02:00","guid":{"rendered":"https:\/\/blog.locaweb.com.br\/?p=34166"},"modified":"2023-08-03T12:03:09","modified_gmt":"2023-08-03T15:03:09","slug":"o-que-e-ci-cd-em-devops","status":"publish","type":"post","link":"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/o-que-e-ci-cd-em-devops\/","title":{"rendered":"Como o processo de CI e CD pode tornar o seu desenvolvimento de software mais r\u00e1pido"},"content":{"rendered":"\n<p>Basicamente, grande parte do que dever\u00edamos fazer como <strong>desenvolvedores \u00e9 automatizar tarefas<\/strong>. Lembro at\u00e9 daquele caso de um dev que automatizou todo o seu trabalho e sei l\u00e1 quantos anos demoraram para descobrir que era tudo automatizado.<\/p>\n\n\n\n<p>Quando pensamos em desenvolvimento e principalmente em: entrega, subir para produ\u00e7\u00e3o, <a href=\"https:\/\/blog.locaweb.com.br\/temas\/codigo-aberto\/conheca-os-principais-tipos-de-deploy-e-quando-usar-cada-um\/\">deploy<\/a> ou qualquer outro nome que referenciamos \u00e0 <strong>entregar o c\u00f3digo para o ambiente de produ\u00e7\u00e3o<\/strong> de modo seguro. \u00c9 interessante tamb\u00e9m pensarmos em como podemos <strong>automatizar esse processo<\/strong>. N\u00e3o estamos mais na era onde tudo \u00e9 regido pelo FTP e temos que subir arquivo por arquivo de um site da web manualmente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que \u00e9 DevOps?<\/h2>\n\n\n\n<p>DevOps (desenvolvimento + opera\u00e7\u00e3o) \u00e9 uma cultura que preza o <strong>estreitamento entre as \u00e1reas de desenvolvimento<\/strong> e infraestrutura, atrav\u00e9s de ferramentas e metodologias, de modo que seja poss\u00edvel automatizar, monitorar, observar, testar e metrificar todas as etapas de desenvolvimento, at\u00e9 o deploy, fez com que ficasse ainda mais simples e r\u00e1pido a <a href=\"https:\/\/blog.locaweb.com.br\/temas\/codigo-aberto\/conheca-3-ferramentas-e-sites-que-avaliam-a-qualidade-do-codigo\/\">melhoria na qualidade de c\u00f3digo<\/a> e do desenvolvimento como um todo.<\/p>\n\n\n\n<p>Dentro os processos que visam o aumento dessa qualidade e tamb\u00e9m a facilita\u00e7\u00e3o de colocar um projeto em produ\u00e7\u00e3o \u00e9 o que chamamos de CI e CD .<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que \u00e9 CI DevOps?<\/h2>\n\n\n\n<p><strong>CI<\/strong> <em>(Continuous Integration ou Integra\u00e7\u00e3o Cont\u00ednua)<\/em> \u00e9 uma pr\u00e1tica em desenvolvimento utilizando DevOps em que DEVs frequentemente integram suas altera\u00e7\u00f5es de c\u00f3digo em um reposit\u00f3rio central. Ap\u00f3s isso, s\u00e3o executados builds e testes para verificar a <strong>confiabilidade do c\u00f3digo<\/strong>. Basicamente, a cada modifica\u00e7\u00e3o relevante o c\u00f3digo de uma pessoa DEV, o c\u00f3digo ser\u00e1 integrado com esse reposit\u00f3rio central.<\/p>\n\n\n\n<p>Normalmente, cada DEV desenvolve separadamente a funcionalidade em que est\u00e1 trabalhando em uma branch pr\u00f3pria e s\u00f3 depois de terminado o <strong>desenvolvimento da funcionalidade<\/strong> essa branch \u00e9 integrada com o reposit\u00f3rio central. No CI, de tempos em tempos esse c\u00f3digo modificado \u00e9 integrado automaticamente com o reposit\u00f3rio central e feito as devidas builds e testes.<\/p>\n\n\n\n<p>A ideia com isso \u00e9 <strong>receber um feedback r\u00e1pido<\/strong> sobre as modifica\u00e7\u00f5es que est\u00e3o ocorrendo no c\u00f3digo do projeto, adiantar e <strong>prever poss\u00edveis falhas<\/strong>, facilitando assim o processo de melhoria do c\u00f3digo, reduzindo o tempo de valida\u00e7\u00e3o desse c\u00f3digo e de lan\u00e7amento de uma nova atualiza\u00e7\u00e3o no software em quest\u00e3o.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Testes em CI DevOps<\/h2>\n\n\n\n<p>Dentre os testes que seriam ideais para a realiza\u00e7\u00e3o do processo de CI, temos: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Testes de unidade:<\/strong> onde s\u00e3o testados unitariamente cada unidade do c\u00f3digo (em geral cada m\u00e9todo das classes do projeto); <\/li>\n\n\n\n<li><strong>Testes de API: <\/strong>onde s\u00e3o testadas as integra\u00e7\u00f5es do software com servi\u00e7os que fornecem dados internos ou externos ao sistema; <\/li>\n\n\n\n<li><strong>Testes Funcionais: <\/strong>onde s\u00e3o testados os fluxos de trabalho dos usu\u00e1rios do software.<\/li>\n<\/ul>\n\n\n\n<p>Com feedbacks mais r\u00e1pidos de qualidade as <a href=\"https:\/\/blog.locaweb.com.br\/temas\/codigo-aberto\/como-se-tornar-uma-pessoa-dev-mais-produtiva\/\">pessoas desenvolvedoras<\/a> podem corrigir mais rapidamente os erros em seus c\u00f3digos e garantir que o c\u00f3digo em si est\u00e1 entregando as funcionalidades que deveriam. Aumentando a confiabilidade do time com o c\u00f3digo do software. Al\u00e9m de evitar conflitos entre as branchs quando muitas funcionalidades s\u00e3o desenvolvidas ao mesmo tempo.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"812\" height=\"500\" src=\"https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2022\/03\/CI-e-CD-em-TI-conheca-esse-processo.png\" alt=\"CI e CD em TI conhe\u00e7a esse processo\" class=\"wp-image-34167\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">O que \u00e9 CD DevOps?<\/h2>\n\n\n\n<p><strong>CD<\/strong> <em>(Continuous Delivery &#8211; Entrega Cont\u00ednua e\/ou Implanta\u00e7\u00e3o Cont\u00ednua)<\/em> \u00e9 uma pr\u00e1tica em desenvolvimento utilizando DevOps em que os times de desenvolvimento lan\u00e7am <strong>novas funcionalidades<\/strong> de forma constante e automatizada. A ideia aqui \u00e9 que quando uma nova funcionalidade \u00e9 finalizada, automaticamente ela ser\u00e1 disponibilizada no ambiente de testes e posteriormente no ambiente de produ\u00e7\u00e3o (em alguns casos j\u00e1 vai direto para produ\u00e7\u00e3o).<\/p>\n\n\n\n<p>Como o c\u00f3digo \u00e9 testado regularmente por causa da <strong>CI<\/strong>, em geral os times que utilizam CI\/CD tem uma confiabilidade maior de <strong>disponibilizar as novas funcionalidades<\/strong> mais rapidamente para seus clientes.&nbsp;<\/p>\n\n\n\n<p>Com a <strong>CD<\/strong> s\u00e3o criadas sequ\u00eancias l\u00f3gicas, chamadas de pipelines, para aplica\u00e7\u00e3o de checagens para validar se est\u00e1 tudo ok com o c\u00f3digo e a funcionalidade. Facilitando tamb\u00e9m a desabilita\u00e7\u00e3o e\/ou f\u00e1cil corre\u00e7\u00e3o de bugs ou algumas situa\u00e7\u00f5es inesperadas.<\/p>\n\n\n\n<p>Uma t\u00e9cnica muito utilizada por equipes que fazem o uso de <strong>CD<\/strong> \u00e9 o <strong>teste A\/B<\/strong>. Nesse caso consiste em liberar a nova funcionalidade para um n\u00famero pequeno de usu\u00e1rios e validar se est\u00e1 tudo ocorrendo conforme o esperado. Caso a valida\u00e7\u00e3o seja conclu\u00edda com sucesso. A nova funcionalidade ser\u00e1 disponibilizada para os demais usu\u00e1rios da aplica\u00e7\u00e3o.<\/p>\n\n\n\n<p>Como tudo estar\u00e1 automatizado, em caso de erros, basta voltar a aplica\u00e7\u00e3o para a vers\u00e3o anterior para que as pessoas devs possam trabalhar na corre\u00e7\u00e3o.<\/p>\n\n\n\n<p>Algumas grandes empresas utilizam esses conceitos de CI e CD em suas equipes de desenvolvimento, e com certeza esse tipo de processo faz com que as equipes sejam mais aut\u00f4nomas e confi\u00e1veis, dando maturidade as pessoas desenvolvedoras, facilitando e tornando mais r\u00e1pido todo processo de <strong>cria\u00e7\u00e3o de novas funcionalidades<\/strong> e disponibiliza\u00e7\u00e3o das mesmas.<\/p>\n\n\n\n<p>Desejo que tenha gostado do conte\u00fado, at\u00e9 a pr\u00f3xima!<\/p>\n\n\n\n<div class=\"user-cta-block\" style=\"background-color:#2E333C;\"><p>Quer ter mais performance nos seus projetos? Conhe\u00e7a a Hospedagem Dedicada da Locaweb!<\/p><a class=\"user-cta\" style=\"background-color: #F00842\n;\" href=\"https:\/\/www.locaweb.com.br\/hospedagem-dedicada\/?utm_source=Blog&#038;utm_medium=own&#038;utm_campaign=o-que-e-ci-cd-em-devops&#038;utm_id=Blog\" target=\"_blank\" rel=\"noopener\">CLIQUE AQUI!<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Basicamente, grande parte do que dever\u00edamos fazer como desenvolvedores \u00e9 automatizar tarefas. Lembro at\u00e9 daquele caso de um dev que automatizou todo o seu trabalho e sei l\u00e1 quantos anos demoraram para descobrir que era tudo automatizado. Quando pensamos em desenvolvimento e principalmente em: entrega, subir para produ\u00e7\u00e3o, deploy ou qualquer outro nome que referenciamos [&hellip;]<\/p>\n","protected":false},"author":24,"featured_media":34168,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-34166","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-aberto"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/34166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/users\/24"}],"replies":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/comments?post=34166"}],"version-history":[{"count":2,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/34166\/revisions"}],"predecessor-version":[{"id":43071,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/34166\/revisions\/43071"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/media\/34168"}],"wp:attachment":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/media?parent=34166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/categories?post=34166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/tags?post=34166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}