{"id":2669,"date":"2025-01-17T20:44:00","date_gmt":"2025-01-17T17:44:00","guid":{"rendered":"https:\/\/www.bircloud.com\/cloud\/index.php\/2025\/01\/17\/argo-cd-gitops-surekli-dagitim-stratejileri\/"},"modified":"2025-01-17T20:44:00","modified_gmt":"2025-01-17T17:44:00","slug":"argo-cd-gitops-surekli-dagitim-stratejileri","status":"publish","type":"post","link":"https:\/\/www.bircloud.com\/cloud\/index.php\/2025\/01\/17\/argo-cd-gitops-surekli-dagitim-stratejileri\/","title":{"rendered":"Argo CD ile GitOps Tabanl\u0131 S\u00fcrekli Da\u011f\u0131t\u0131m Stratejileri: Kapsaml\u0131 Rehber"},"content":{"rendered":"<h2>Giri\u015f: GitOps ve Argo CD&#8217;nin Y\u00fckseli\u015fi<\/h2>\n<p>Yaz\u0131l\u0131m geli\u015ftirme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7leri, modern bulut bili\u015fim d\u00fcnyas\u0131nda s\u00fcrekli bir evrim ge\u00e7iriyor.  Geleneksel yakla\u015f\u0131mlar\u0131n yerini, daha h\u0131zl\u0131, g\u00fcvenilir ve otomatik s\u00fcre\u00e7lere b\u0131rakt\u0131\u011f\u0131 bu d\u00f6n\u00fc\u015f\u00fcmde, GitOps ve S\u00fcrekli Da\u011f\u0131t\u0131m (Continuous Delivery &#8211; CD) \u00f6nemli bir rol oynuyor. GitOps, altyap\u0131 ve uygulamalar\u0131n deklaratif olarak Git depolar\u0131nda tan\u0131mlanmas\u0131n\u0131 ve bu depolardaki de\u011fi\u015fikliklerin otomatik olarak ortamlara uygulanmas\u0131n\u0131 sa\u011flayan bir y\u00f6ntemdir. Bu yakla\u015f\u0131m, s\u00fcr\u00fcm kontrol sisteminin (Git) tek do\u011fruluk kayna\u011f\u0131 (single source of truth) olarak kabul edilmesini ve t\u00fcm de\u011fi\u015fikliklerin bu sistem \u00fczerinden takip edilmesini ve y\u00f6netilmesini temel al\u0131r.  Argo CD ise, GitOps prensiplerini uygulayan, pop\u00fcler ve g\u00fc\u00e7l\u00fc bir a\u00e7\u0131k kaynakl\u0131 s\u00fcrekli da\u011f\u0131t\u0131m arac\u0131d\u0131r.<\/p>\n<p>Bu blog yaz\u0131s\u0131nda, Argo CD&#8217;nin ne oldu\u011funu, GitOps ile nas\u0131l entegre oldu\u011funu, sa\u011flad\u0131\u011f\u0131 avantajlar\u0131, farkl\u0131 kullan\u0131m senaryolar\u0131n\u0131 ve nas\u0131l kurulup kullan\u0131laca\u011f\u0131n\u0131 detayl\u0131 bir \u015fekilde inceleyece\u011fiz. Ayr\u0131ca, BirCloud Teknoloji \u00c7\u00f6z\u00fcmleri olarak, Argo CD ve GitOps konusundaki deneyimlerimizi ve m\u00fc\u015fterilerimize sundu\u011fumuz \u00e7\u00f6z\u00fcmleri de payla\u015faca\u011f\u0131z.<\/p>\n<h2>Argo CD Nedir?<\/h2>\n<p>Argo CD, Kubernetes i\u00e7in tasarlanm\u0131\u015f, deklaratif ve GitOps tabanl\u0131 bir s\u00fcrekli da\u011f\u0131t\u0131m arac\u0131d\u0131r.  Temel amac\u0131, bir Git deposunda tan\u0131mlanan uygulama manifestolar\u0131n\u0131n (YAML, JSON, Helm chart&#8217;lar\u0131, Kustomize yap\u0131land\u0131rmalar\u0131 vb.) Kubernetes k\u00fcmelerine otomatik olarak uygulanmas\u0131n\u0131 sa\u011flamakt\u0131r. Argo CD, Git deposundaki de\u011fi\u015fiklikleri s\u00fcrekli olarak izler ve k\u00fcmedeki mevcut durum ile istenen durumu kar\u015f\u0131la\u015ft\u0131r\u0131r. Herhangi bir farkl\u0131l\u0131k tespit edildi\u011finde, Argo CD otomatik olarak de\u011fi\u015fiklikleri uygular ve k\u00fcmenin istenen duruma gelmesini sa\u011flar.<\/p>\n<p>Argo CD&#8217;nin temel \u00f6zellikleri \u015funlard\u0131r:<\/p>\n<ul>\n<li><b>Deklaratif Yap\u0131land\u0131rma:<\/b> Uygulamalar ve altyap\u0131, Git depolar\u0131nda deklaratif olarak tan\u0131mlan\u0131r.<\/li>\n<li><b>Otomatik Senkronizasyon:<\/b> Git deposundaki de\u011fi\u015fiklikler, otomatik olarak Kubernetes k\u00fcmelerine uygulan\u0131r.<\/li>\n<li><b>Sa\u011fl\u0131k Kontrol\u00fc:<\/b> Argo CD, uygulamalar\u0131n sa\u011fl\u0131k durumunu s\u00fcrekli olarak izler ve herhangi bir sorun tespit etti\u011finde uyar\u0131 verir.<\/li>\n<li><b>Geri Alma (Rollback):<\/b> Hatal\u0131 bir da\u011f\u0131t\u0131m durumunda, kolayca \u00f6nceki s\u00fcr\u00fcme geri d\u00f6n\u00fclebilir.<\/li>\n<li><b>Eri\u015fim Kontrol\u00fc:<\/b> Kullan\u0131c\u0131 rolleri ve izinleri ile g\u00fcvenli eri\u015fim sa\u011flan\u0131r.<\/li>\n<li><b>Web Aray\u00fcz\u00fc ve CLI:<\/b> Kullan\u0131m\u0131 kolay bir web aray\u00fcz\u00fc ve komut sat\u0131r\u0131 arac\u0131 (CLI) ile y\u00f6netim imkan\u0131 sunar.<\/li>\n<\/ul>\n<h3>Argo CD&#8217;nin Temel Bile\u015fenleri<\/h3>\n<ul>\n<li><b>API Sunucusu:<\/b> Argo CD&#8217;nin temel bile\u015fenidir. Web aray\u00fcz\u00fc, CLI ve di\u011fer servisler API sunucusu \u00fczerinden etkile\u015fim kurar.<\/li>\n<li><b>Repository Sunucusu:<\/b> Git depolar\u0131na eri\u015fimi sa\u011flar ve uygulama manifestolar\u0131n\u0131 al\u0131r.<\/li>\n<li><b>Application Controller:<\/b> Uygulamalar\u0131n durumunu y\u00f6netir, senkronizasyon i\u015flemlerini ger\u00e7ekle\u015ftirir ve sa\u011fl\u0131k kontrollerini yapar.<\/li>\n<\/ul>\n<h2>GitOps&#8217;un Avantajlar\u0131<\/h2>\n<p>GitOps yakla\u015f\u0131m\u0131, yaz\u0131l\u0131m geli\u015ftirme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerine bir\u00e7ok avantaj sa\u011flar:<\/p>\n<ul>\n<li><b>Artan H\u0131z ve \u00c7eviklik:<\/b> Otomasyon sayesinde, da\u011f\u0131t\u0131m s\u00fcre\u00e7leri h\u0131zlan\u0131r ve ekipler daha \u00e7evik hale gelir.<\/li>\n<li><b>Geli\u015ftirilmi\u015f G\u00fcvenilirlik:<\/b> Git deposu tek do\u011fruluk kayna\u011f\u0131 oldu\u011fu i\u00e7in, da\u011f\u0131t\u0131mlar\u0131n tutarl\u0131l\u0131\u011f\u0131 ve g\u00fcvenilirli\u011fi artar.<\/li>\n<li><b>Daha \u0130yi G\u00fcvenlik:<\/b> T\u00fcm de\u011fi\u015fiklikler Git \u00fczerinden takip edildi\u011fi i\u00e7in, g\u00fcvenlik a\u00e7\u0131klar\u0131 daha kolay tespit edilir ve d\u00fczeltilir.<\/li>\n<li><b>Kolay Denetim:<\/b> Git deposundaki de\u011fi\u015fiklik ge\u00e7mi\u015fi, denetim ve uyumluluk s\u00fcre\u00e7lerini kolayla\u015ft\u0131r\u0131r.<\/li>\n<li><b>Geli\u015ftirilmi\u015f \u0130\u015fbirli\u011fi:<\/b> Geli\u015ftirme, operasyon ve g\u00fcvenlik ekipleri aras\u0131ndaki i\u015fbirli\u011fi artar.<\/li>\n<li><b>Daha Az Hata:<\/b> Otomasyon ve do\u011frulama s\u00fcre\u00e7leri sayesinde, insan kaynakl\u0131 hatalar azal\u0131r.<\/li>\n<li><b>Kolay Geri Alma:<\/b> Hatal\u0131 bir da\u011f\u0131t\u0131m durumunda, Git&#8217;teki \u00f6nceki s\u00fcr\u00fcme kolayca geri d\u00f6n\u00fclebilir.<\/li>\n<\/ul>\n<h2>Argo CD Kullan\u0131m Senaryolar\u0131<\/h2>\n<p>Argo CD, farkl\u0131 senaryolarda kullan\u0131labilir:<\/p>\n<ul>\n<li><b>S\u00fcrekli Da\u011f\u0131t\u0131m (CD):<\/b> Uygulamalar\u0131n otomatik olarak Kubernetes k\u00fcmelerine da\u011f\u0131t\u0131lmas\u0131.<\/li>\n<li><b>\u00c7oklu K\u00fcme Y\u00f6netimi:<\/b> Birden fazla Kubernetes k\u00fcmesinin tek bir yerden y\u00f6netilmesi.<\/li>\n<li><b>Altyap\u0131 Y\u00f6netimi:<\/b> Altyap\u0131 kaynaklar\u0131n\u0131n (\u00f6rne\u011fin, a\u011f yap\u0131land\u0131rmalar\u0131, depolama birimleri) GitOps prensipleriyle y\u00f6netilmesi.<\/li>\n<li><b>Uygulama Konfig\u00fcrasyonu Y\u00f6netimi:<\/b> Uygulama konfig\u00fcrasyonlar\u0131n\u0131n (\u00f6rne\u011fin, veritaban\u0131 ba\u011flant\u0131 bilgileri, API anahtarlar\u0131) GitOps prensipleriyle y\u00f6netilmesi.<\/li>\n<li><b>Felaket Kurtarma (Disaster Recovery):<\/b> Uygulamalar\u0131n ve altyap\u0131n\u0131n h\u0131zl\u0131 bir \u015fekilde yedek k\u00fcmeye ge\u00e7irilmesi.<\/li>\n<li><b>A\/B Testleri ve Canary Da\u011f\u0131t\u0131mlar\u0131:<\/b> Yeni s\u00fcr\u00fcmlerin kontroll\u00fc bir \u015fekilde kullan\u0131c\u0131lara sunulmas\u0131.<\/li>\n<\/ul>\n<h3>\u00d6rnek Senaryo: Mikroservis Uygulamas\u0131n\u0131n Da\u011f\u0131t\u0131m\u0131<\/h3>\n<p>Bir mikroservis uygulamas\u0131n\u0131n da\u011f\u0131t\u0131m\u0131n\u0131 Argo CD ile nas\u0131l y\u00f6netebilece\u011fimizi inceleyelim. Uygulamam\u0131z\u0131n her bir mikroservisi i\u00e7in ayr\u0131 bir Git deposu oldu\u011funu varsayal\u0131m. Her bir depoda, o mikroservise ait Kubernetes manifestolar\u0131 (Deployment, Service, Ingress vb.) bulunur. Argo CD&#8217;yi, her bir depoyu izleyecek ve de\u011fi\u015fiklikleri otomatik olarak ilgili Kubernetes k\u00fcmesine uygulayacak \u015fekilde yap\u0131land\u0131rabiliriz. Bu sayede, bir mikroserviste yap\u0131lan bir de\u011fi\u015fiklik, otomatik olarak canl\u0131 ortama yans\u0131t\u0131l\u0131r.<\/p>\n<h2>Argo CD Kurulumu ve Ba\u015flang\u0131\u00e7 Rehberi<\/h2>\n<p>Argo CD&#8217;nin kurulumu ve kullan\u0131m\u0131 olduk\u00e7a kolayd\u0131r. A\u015fa\u011f\u0131daki ad\u0131mlar\u0131 takip ederek, Argo CD&#8217;yi kendi Kubernetes k\u00fcmenize kurabilirsiniz:<\/p>\n<h3>Ad\u0131m 1: Argo CD&#8217;nin Kurulumu<\/h3>\n<p>Argo CD&#8217;yi kurmak i\u00e7in a\u015fa\u011f\u0131daki komutlar\u0131 kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">\nkubectl create namespace argocd\nkubectl apply -n argocd -f https:\/\/raw.githubusercontent.com\/argoproj\/argo-cd\/stable\/manifests\/install.yaml\n<\/code><\/pre>\n<p>Bu komutlar, `argocd` ad\u0131nda bir namespace olu\u015fturacak ve Argo CD&#8217;nin gerekli t\u00fcm bile\u015fenlerini bu namespace&#8217;e kuracakt\u0131r.<\/p>\n<h3>Ad\u0131m 2: Argo CD&#8217;ye Eri\u015fim<\/h3>\n<p>Argo CD&#8217;ye eri\u015fmek i\u00e7in, Kubernetes API sunucusuna bir port y\u00f6nlendirmesi yapabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">\nkubectl port-forward svc\/argocd-server -n argocd 8080:443\n<\/code><\/pre>\n<p>Bu komut, yerel makinenizdeki 8080 portunu Argo CD sunucusuna y\u00f6nlendirecektir. Taray\u0131c\u0131n\u0131zda `https:\/\/localhost:8080` adresine giderek Argo CD web aray\u00fcz\u00fcne eri\u015febilirsiniz.<\/p>\n<p>\u0130lk giri\u015fte kullan\u0131c\u0131 ad\u0131 `admin` ve \u015fifre, a\u015fa\u011f\u0131daki komutla al\u0131nabilir:<\/p>\n<pre><code class=\"language-bash\">\nkubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath=\"{.data.password}\" | base64 --decode\n<\/code><\/pre>\n<h3>Ad\u0131m 3: \u0130lk Uygulaman\u0131n Da\u011f\u0131t\u0131m\u0131<\/h3>\n<p>Argo CD&#8217;ye ilk uygulaman\u0131z\u0131 da\u011f\u0131tmak i\u00e7in, bir Git deposu belirtmeniz ve Argo CD&#8217;nin bu depoyu izlemesini sa\u011flaman\u0131z gerekir. \u00d6rne\u011fin, Argo CD&#8217;nin \u00f6rnek uygulamalar\u0131ndan birini kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">\nargocd app create guestbook \n  --repo https:\/\/github.com\/argoproj\/argocd-example-apps.git \n  --path guestbook \n  --dest-server https:\/\/kubernetes.default.svc \n  --dest-namespace default\n<\/code><\/pre>\n<p>Bu komut, `guestbook` ad\u0131nda bir uygulama olu\u015fturacak ve `argoproj\/argocd-example-apps` deposundaki `guestbook` dizinindeki manifestolar\u0131 `default` namespace&#8217;ine da\u011f\u0131tacakt\u0131r.<\/p>\n<h3>Ad\u0131m 4: Uygulaman\u0131n Senkronizasyonu<\/h3>\n<p>Uygulamay\u0131 senkronize etmek i\u00e7in, a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">\nargocd app sync guestbook\n<\/code><\/pre>\n<p>Bu komut, Argo CD&#8217;nin Git deposundaki manifestolar\u0131 Kubernetes k\u00fcmesine uygulamas\u0131n\u0131 sa\u011flayacakt\u0131r.<\/p>\n<h2>BirCloud Perspektifi<\/h2>\n<p>BirCloud Teknoloji \u00c7\u00f6z\u00fcmleri olarak, m\u00fc\u015fterilerimize bulut tabanl\u0131 \u00e7\u00f6z\u00fcmler sunarken, GitOps ve Argo CD gibi modern yakla\u015f\u0131mlar\u0131 benimsemekteyiz.  Deneyimli ekibimiz, m\u00fc\u015fterilerimizin ihtiya\u00e7lar\u0131na uygun, \u00f6l\u00e7eklenebilir, g\u00fcvenli ve y\u00fcksek performansl\u0131 altyap\u0131lar olu\u015fturmalar\u0131na yard\u0131mc\u0131 olmaktad\u0131r. Argo CD&#8217;nin sundu\u011fu otomasyon, g\u00fcvenilirlik ve denetim avantajlar\u0131 sayesinde, m\u00fc\u015fterilerimizin yaz\u0131l\u0131m geli\u015ftirme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerini optimize etmelerine ve i\u015flerine odaklanmalar\u0131na olanak tan\u0131yoruz.<\/p>\n<p>BirCloud olarak sundu\u011fumuz hizmetler aras\u0131nda \u015funlar bulunmaktad\u0131r:<\/p>\n<ul>\n<li><b>Argo CD Dan\u0131\u015fmanl\u0131\u011f\u0131:<\/b> Argo CD&#8217;nin kurulumu, yap\u0131land\u0131r\u0131lmas\u0131 ve kullan\u0131m\u0131 konusunda uzman dan\u0131\u015fmanl\u0131k hizmetleri.<\/li>\n<li><b>GitOps E\u011fitimleri:<\/b> Ekiplerinizin GitOps prensiplerini ve Argo CD&#8217;yi etkin bir \u015fekilde kullanabilmeleri i\u00e7in \u00f6zel e\u011fitimler.<\/li>\n<li><b>\u00d6zel \u00c7\u00f6z\u00fcmler:<\/b> M\u00fc\u015fterilerimizin \u00f6zel ihtiya\u00e7lar\u0131na uygun, \u00f6zelle\u015ftirilmi\u015f Argo CD \u00e7\u00f6z\u00fcmleri.<\/li>\n<li><b>Destek ve Bak\u0131m:<\/b> Argo CD altyap\u0131n\u0131z\u0131n s\u00fcrekli olarak sorunsuz \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in destek ve bak\u0131m hizmetleri.<\/li>\n<\/ul>\n<p>BirCloud&#8217;un bulut \u00e7\u00f6z\u00fcmleri uzmanl\u0131\u011f\u0131 ve Argo CD konusundaki deneyimi ile, i\u015fletmenizin dijital d\u00f6n\u00fc\u015f\u00fcm\u00fcn\u00fc h\u0131zland\u0131rabilir ve rekabet avantaj\u0131 elde edebilirsiniz.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Argo CD, GitOps prensiplerini uygulayan, g\u00fc\u00e7l\u00fc ve kullan\u0131m\u0131 kolay bir s\u00fcrekli da\u011f\u0131t\u0131m arac\u0131d\u0131r.  Sa\u011flad\u0131\u011f\u0131 otomasyon, g\u00fcvenilirlik ve denetim avantajlar\u0131 sayesinde, yaz\u0131l\u0131m geli\u015ftirme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerini optimize etmek isteyen t\u00fcm organizasyonlar i\u00e7in ideal bir \u00e7\u00f6z\u00fcmd\u00fcr. Bu blog yaz\u0131s\u0131nda, Argo CD&#8217;nin ne oldu\u011funu, GitOps ile nas\u0131l entegre oldu\u011funu, sa\u011flad\u0131\u011f\u0131 avantajlar\u0131, farkl\u0131 kullan\u0131m senaryolar\u0131n\u0131 ve nas\u0131l kurulup kullan\u0131laca\u011f\u0131n\u0131 detayl\u0131 bir \u015fekilde inceledik. Umar\u0131m bu bilgiler, Argo CD ve GitOps yolculu\u011funuzda size yard\u0131mc\u0131 olur.<\/p>\n<p>Unutmay\u0131n, BirCloud Teknoloji \u00c7\u00f6z\u00fcmleri olarak, Argo CD ve GitOps konusundaki uzmanl\u0131\u011f\u0131m\u0131zla, i\u015fletmenizin dijital d\u00f6n\u00fc\u015f\u00fcm\u00fcne katk\u0131da bulunmaktan mutluluk duyar\u0131z.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Argo CD ile GitOps&#8217;un g\u00fcc\u00fcn\u00fc ke\u015ffedin. S\u00fcrekli da\u011f\u0131t\u0131m stratejileri, avantajlar\u0131, kullan\u0131m senaryolar\u0131 ve kurulum rehberi ile bulut ortam\u0131n\u0131zda devrim yarat\u0131n. BirCloud uzmanl\u0131\u011f\u0131yla!<\/p>\n","protected":false},"author":2,"featured_media":2668,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[173],"tags":[174,165,175,155,176],"class_list":["post-2669","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-argo-cd","tag-bulut-bilisim","tag-gitops","tag-kubernetes","tag-surekli-dagitim"],"_links":{"self":[{"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/posts\/2669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/comments?post=2669"}],"version-history":[{"count":0,"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/posts\/2669\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/media\/2668"}],"wp:attachment":[{"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/media?parent=2669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/categories?post=2669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/tags?post=2669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}