{"id":1970,"date":"2025-06-04T09:15:00","date_gmt":"2025-06-04T09:15:00","guid":{"rendered":"https:\/\/mugnos-it.com\/?p=1970"},"modified":"2025-06-03T00:53:14","modified_gmt":"2025-06-03T00:53:14","slug":"por-que-cada-vez-mais-times-estao-migrando-para-o-argocd","status":"publish","type":"post","link":"https:\/\/mugnos-it.com\/pt\/por-que-cada-vez-mais-times-estao-migrando-para-o-argocd\/","title":{"rendered":"Por que cada vez mais times est\u00e3o migrando para o ArgoCD ?"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"1970\" class=\"elementor elementor-1970\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-520f7d18 e-flex e-con-boxed e-con e-parent\" data-id=\"520f7d18\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1d03c5af elementor-widget elementor-widget-text-editor\" data-id=\"1d03c5af\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<p><\/p>\n\n\n\n<p>Voc\u00ea j\u00e1 precisou fazer um rollback \u00e0s pressas? Ou pior: passou horas tentando descobrir por que o ambiente de produ\u00e7\u00e3o est\u00e1 diferente do que foi versionado no Git?<\/p>\n\n\n\n<p>Pois \u00e9\u2026 em ambientes modernos, manter <strong>consist\u00eancia entre o que est\u00e1 no reposit\u00f3rio e o que roda no cluster<\/strong> virou uma dor constante. E \u00e9 exatamente aqui que o <strong>GitOps<\/strong> entra como uma abordagem salvadora.<\/p>\n\n\n\n<p>Em resumo: <strong>GitOps \u00e9 quando o Git vira a sua fonte de verdade<\/strong> \u2014 e n\u00e3o s\u00f3 pro c\u00f3digo da aplica\u00e7\u00e3o, mas tamb\u00e9m para a infraestrutura e os manifestos do Kubernetes. Nada de aplicar manualmente ou ficar dependendo de scripts soltos. Tudo o que est\u00e1 no Git <strong>\u00e9 o que tem que estar rodando no cluster<\/strong>. E se algu\u00e9m mudar algo fora disso? O sistema corrige ou alerta automaticamente.<\/p>\n\n\n\n<p>\u00c9 nesse cen\u00e1rio que o <strong>ArgoCD<\/strong> come\u00e7ou a brilhar \u2014 e virou a escolha natural de quem quer entregar aplica\u00e7\u00f5es de forma segura, audit\u00e1vel e resiliente.<\/p>\n\n\n\n<p>** Lembre-se, ArgoCD \u00e9 usado para CD de recursos em Kubernetes **<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que \u00e9 o ArgoCD e por que ele t\u00e1 em toda arquitetura moderna?<\/h2>\n\n\n\n<p>O <strong>ArgoCD<\/strong> \u00e9 um <strong>controller de Kubernetes especializado em Continuous Delivery com GitOps<\/strong>. Em outras palavras: ele l\u00ea os manifests versionados no Git e garante que o cluster esteja sempre refletindo esse estado desejado.<\/p>\n\n\n\n<p>Diferente de muitas ferramentas de CI\/CD que empurram c\u00f3digo pro cluster (push-based), o ArgoCD \u00e9 <strong>pull-based<\/strong>. Ele roda <em>dentro<\/em> do cluster, fica &#8220;escutando&#8221; o reposit\u00f3rio e aplica automaticamente qualquer mudan\u00e7a detectada. Se a branch do Git diz \u201c3 r\u00e9plicas\u201d e algu\u00e9m altera direto no cluster pra \u201c4\u201d, ele detecta esse <strong>drift<\/strong> e corrige. Ou, no m\u00ednimo, te avisa. (depende do que voc\u00ea configurar pra ele fazer)<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que voc\u00ea realmente precisa entender sobre o ArgoCD<\/h2>\n\n\n\n<p>O ArgoCD \u00e9 mais do que \u201cum GitOps bonito com UI\u201d (\u00e9 bonito mesmo, olha as imagens de exemplo abaixo). Ele \u00e9 um <strong>controller de Kubernetes<\/strong> que roda dentro do cluster e <strong>garante que o estado do ambiente reflita o que est\u00e1 versionado no Git<\/strong>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1000\" height=\"505\" src=\"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-52.png\" alt=\"\" class=\"wp-image-1972\" srcset=\"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-52.png 1000w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-52-300x152.png 300w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-52-768x388.png 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1718\" height=\"901\" src=\"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-53.png\" alt=\"\" class=\"wp-image-1973\" srcset=\"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-53.png 1718w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-53-300x157.png 300w\" sizes=\"(max-width: 1718px) 100vw, 1718px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Aqui v\u00e3o 8 pontos-chave para voc\u00ea conhecer sobre mais sobre o ArgoCD.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Ele funciona como um controller customizado (via CRD)<\/h3>\n\n\n\n<p>Ao instalar o ArgoCD, voc\u00ea adiciona novos tipos de recursos (CRDs) ao Kubernetes, como <code>Application<\/code> e <code>ApplicationSet<\/code>. Esses recursos s\u00e3o gerenciados como qualquer outro recurso do cluster, com <code>kubectl<\/code>, YAML e tudo mais. Ou seja, o Argo <strong>fala a linguagem nativa do Kubernetes<\/strong> \u2014 e isso muda tudo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u201cApplication\u201d cora\u00e7\u00e3o da automa\u00e7\u00e3o<\/h3>\n\n\n\n<p>Um <code>Application<\/code> representa o link entre o reposit\u00f3rio Git e o que deve ser aplicado no cluster. Nele, voc\u00ea define:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>O reposit\u00f3rio Git com os manifests (Deployment, Service, ConfigMap etc.)<\/li>\n\n\n\n<li>O diret\u00f3rio ou branch que ser\u00e1 monitorado<\/li>\n\n\n\n<li>O cluster e namespace de destino<\/li>\n\n\n\n<li>E ainda configura\u00e7\u00f5es como auto-sync e pol\u00edticas de rollback<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"627\" height=\"434\" src=\"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-54.png\" alt=\"\" class=\"wp-image-1974\" srcset=\"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-54.png 627w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-54-300x208.png 300w\" sizes=\"(max-width: 627px) 100vw, 627px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. \u201cApplicationSet\u201d : Escalando a entrega para m\u00faltiplos clusters<\/h3>\n\n\n\n<p>Se o <code>Application<\/code> \u00e9 1-para-1, o <code>ApplicationSet<\/code> \u00e9 1-para-N. Com ele, voc\u00ea consegue aplicar o <strong>mesmo conjunto de manifests em v\u00e1rios clusters<\/strong>, mudando s\u00f3 o que for necess\u00e1rio por cluster (como namespace, nome da aplica\u00e7\u00e3o, etc.). Ideal pra:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ambientes multi-tenant<\/li>\n\n\n\n<li>Microsservi\u00e7os replicados em diferentes regi\u00f5es<\/li>\n\n\n\n<li>Plataformas B2B com um cluster por cliente<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"450\" height=\"630\" src=\"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-55.png\" alt=\"\" class=\"wp-image-1975\" srcset=\"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-55.png 450w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-55-214x300.png 214w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Drift: Git como verdade absoluta (e rollback real)<\/h3>\n\n\n\n<p>Se algu\u00e9m mudar algo direto no cluster (ex: escalar manualmente de 2 para 5 r\u00e9plicas), o Argo detecta a <strong>diferen\u00e7a entre o estado atual e o desejado<\/strong>. Isso \u00e9 o famoso <strong>drift<\/strong>.<\/p>\n\n\n\n<p>A resposta? Depende da sua pol\u00edtica:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Modo manual<\/strong>: ele te avisa e voc\u00ea decide aplicar o que est\u00e1 no Git<\/li>\n\n\n\n<li><strong>Modo auto-sync<\/strong>: ele reverte automaticamente para o que est\u00e1 versionado<\/li>\n<\/ul>\n\n\n\n<p>E o rollback? \u00c9 s\u00f3 fazer um <code>git revert<\/code> e pronto \u2014 o Argo aplica de volta no cluster.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Integra\u00e7\u00e3o com autentica\u00e7\u00e3o corporativa<\/h3>\n\n\n\n<p>O ArgoCD j\u00e1 vem com suporte a SSO, OIDC, LDAP e outras formas de autentica\u00e7\u00e3o enterprise. Voc\u00ea define quem pode ver, sincronizar, ou editar quais <code>Applications<\/code>, garantindo <strong>controle de acesso por projeto, time ou ambiente<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6. UI visual poderosa (sem abrir m\u00e3o do YAML)<\/h3>\n\n\n\n<p>O painel web do Argo mostra:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>O status de sincroniza\u00e7\u00e3o de cada aplica\u00e7\u00e3o<\/li>\n\n\n\n<li>Quais recursos foram aplicados (pods, services, secrets\u2026)<\/li>\n\n\n\n<li>Alertas de drift e falhas de deploy<\/li>\n\n\n\n<li>Hist\u00f3rico de sincroniza\u00e7\u00f5es e rollback<\/li>\n<\/ul>\n\n\n\n<p>Tudo isso sem esconder o YAML por tr\u00e1s. Transpar\u00eancia total.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">7. Hooks e automa\u00e7\u00f5es avan\u00e7adas<\/h3>\n\n\n\n<p>Precisa rodar um job antes ou depois do deploy? Lidar com falhas de sincroniza\u00e7\u00e3o de forma customizada? nativamente esses hooks est\u00e3o l\u00e1!<\/p>\n\n\n\n<p>Com <strong>hooks declarados no pr\u00f3prio reposit\u00f3rio<\/strong>, voc\u00ea consegue configurar a\u00e7\u00f5es como:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Jobs de pr\u00e9-deploy (<code>PreSync<\/code>)<\/li>\n\n\n\n<li>Tarefas ap\u00f3s sucesso (<code>PostSync<\/code>)<\/li>\n\n\n\n<li>Triggers autom\u00e1ticos ap\u00f3s falha (<code>SyncFail<\/code>)<\/li>\n<\/ul>\n\n\n\n<p>Tudo orquestrado pelo pr\u00f3prio Argo \u2014 sem precisar de ferramentas externas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">8. Observabilidade nativa<\/h3>\n\n\n\n<p>O ArgoCD exp\u00f5e m\u00e9tricas via Prometheus, exporta logs estruturados e permite integra\u00e7\u00e3o com Grafana, Datadog, entre outros. E claro, tudo que ele faz tem <strong>API aberta<\/strong>, ent\u00e3o d\u00e1 pra automatizar alertas, dashboards e a\u00e7\u00f5es sem dificuldade.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">E por que tanta gente est\u00e1 adotando o ArgoCD?<\/h2>\n\n\n\n<p>Se voc\u00ea tem essa d\u00favida, acredito que n\u00e3o leu os itens anteriores n\u00e9 ?! Mas vamos l\u00e1\u2026 Porque ele resolve o que todo time moderno precisa hoje! pelo menos uma parte\u2026<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Entregas mais r\u00e1pidas, seguras e audit\u00e1veis<\/li>\n\n\n\n<li>Redu\u00e7\u00e3o do trabalho manual<\/li>\n\n\n\n<li>Rollbacks previs\u00edveis (sem gambiarra)<\/li>\n\n\n\n<li>Observabilidade sobre o que est\u00e1 no ar e o que est\u00e1 desatualizado<\/li>\n\n\n\n<li><strong>Governan\u00e7a sem engessar o time de dev<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Simples assim: o ArgoCD virou pe\u00e7a-chave na esteira de deploy de quem quer escalar <strong>com confian\u00e7a<\/strong>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Quer aprender mais e discutir essas solu\u00e7\u00f5es com quem vive isso no dia a dia?<\/h2>\n\n\n\n<p>Se voc\u00ea curte conte\u00fado como esse, e quer aprender os padr\u00f5es e pr\u00e1ticas que grandes empresas est\u00e3o usando pra construir sistemas modernos e resilientes, vem com a gente.<\/p>\n\n\n\n<p>A Comunidade de Arquitetura Descomplicada (CaD) t\u00e1 cheia de gente como voc\u00ea \u2014 buscando clareza t\u00e9cnica em assuntos complexos!<\/p>\n\n\n\n<p>\ud83d\udc49 Saiba mais e fa\u00e7a parte: <a href=\"https:\/\/mugnos-it.com\/pt\/cad\/\">https:\/\/mugnos-it.com\/cad<\/a> <\/p>\n\n\n\n<p><\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-04ac2de e-flex e-con-boxed e-con e-parent\" data-id=\"04ac2de\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Voc\u00ea j\u00e1 precisou fazer um rollback \u00e0s pressas? Ou pior: passou horas tentando descobrir por que o ambiente de produ\u00e7\u00e3o est\u00e1 diferente do que foi versionado no Git? Pois \u00e9\u2026 em ambientes modernos, manter consist\u00eancia entre o que est\u00e1 no reposit\u00f3rio e o que roda no cluster virou uma dor constante. E \u00e9 exatamente aqui [&hellip;]<\/p>","protected":false},"author":3,"featured_media":1976,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1970","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/Argo-CD-2.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/posts\/1970","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/comments?post=1970"}],"version-history":[{"count":4,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/posts\/1970\/revisions"}],"predecessor-version":[{"id":2064,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/posts\/1970\/revisions\/2064"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/media\/1976"}],"wp:attachment":[{"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/media?parent=1970"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/categories?post=1970"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/tags?post=1970"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}