GitOps Nedir?

Geleneksel yazılım geliştirme (development) ve yayınlama (deployment) süreçlerinde özellikle son 10 yılda bir dizi gelişme yaşandı. Her ne kadar DevOps kavramının 2000’li yılların henüz başlarında bile gündemde olduğunu kaynaklardan okusakta, milat olarak 2008 yılında hayatımıza giren GitHub’ı kabul edebiliriz. Yeri gelmişken, DevOps konusunda kabul edilen ilk etkinlik 2009 Yılında yapılmış.

Geliştiriciler yazdıkları kodları GitHub (ve benzeri) repolarında depolayıp, versiyonlarken geleneksel yöntemler bugün koruduğu yöntemler ile bazen kaçınılmaz çözüm olarak tercih ediliyordu. Mart, 2013’te release olan Docker, Container mimarisi ile geleneksel yöntemlere yön verirken “Automated container deployment, scaling, and management” mottosu ile 2014 yılında hayatımıza giren Kubernetes (k8s) Nedir? konuyu bambaşka bir noktaya taşıdı.

Tam bu noktada, Git kodum Kubernetes deployment işlemi otomatik olarak yapılıyor ve kod CD (continously development) döngüsünde yayınlanıyor derken bu kez GitOps kavramı ile tanıştık. CD için bir teknik olarak hayatımıza girse de GitOps, merkezi kontrol, görsellik gibi ek özellikler ile Container mimarisi kadar konuşulur hale geldi.

GitOps Gereklilikleri

GitOps, işlemler ve süreç takibi açısından tercih edilen bir araç ile yapılabilir. Bu yazının yazıldığı tarihlerde yaygın olarak kullanılan Jenkins, Flux ve ArgoCD en çok tercih edilen seçeneklerdir. Araçlar, ilişkilendirildiği Git reposunu dinleyerek olası değişiklikleri Kubernetes Cluster’a deploy etmekle görevlidir. ArgoCD için görsel ve manuel senkronizasyon işlemini aşağıda ki görselden önizleyebilirsiniz.


Varsayılan olarak araçlar 5 dakikalık periyodlar ile ilişkili Git reposunu dinleyerek değişiklikleri deploy eder. Ancak yukarıda ki görselde olduğu gibi her aracın internal olarak anlık senkronizasyonu sağlayan seçenekleri mevcut. Alternatif olarak senkronizasyon için CLI komutlarını kullanabilirsiniz.

Aşağıda ki görselde commit sürecini görebilirsiniz.

Görsel 1 Kaynak : https://argoproj.github.io/argo-cd/
Görsel 2 Kaynak : https://nortal.com/blog/gitops-argocd/

Kategori: DevOps
Etiketler: ArgoCD, DevOps, GitOps, Jenkins

Bunlarda ilgini çekebilir

Önceki yazı
UAT (User Acceptance Testing) Kurgusu
Sonraki yazı
WordPress Kullanmanın 8 Faydası