Page 46 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 46
46 | CI/CD Süreç Yönetimi
3.2. Kubernetes
Kubernetes; temelde uygulamaların dağıtımını, ölçeklenmesini ve yönetimini otomatikleştirmek
için yazılmış açık kaynaklı bir konteyner orkestrasyon aracıdır. Uygulamaların günden güne
konteynerleştirilmesi ile Kubernetesin dokunduğu alan giderek artmıştır ve öyle ki sunucular
üzerinde toptan bir veri merkezi işlevselliğine kadar gidebilmektedir.
Kubernetes birçok nesneden oluşur. Bu nesneler tanım olarak YAML formatındadır ve GitOps
pratiklerine göre GIT deposunda yaml dosyaları olarak saklanır. Bu dosyalar GitOps sürecinin sonunda
test veya canlı Kubernetes ortamlarına kurulur. Kubernetesin bu kadar kabiliyetli olmasının nedenleri,
kendi içerisinde sanal ağ yapılandırması ve ağ politikalarıyla konteynerlerde çalışan uygulamalara
dışarıdan bir hizmete bağımlı kalmada ağ ve güvenlik hizmeti verebilir durumda olmasıdır. Ek
olarak kurulabilir veya dışarıdan entegre edilebilir depolama sistemi yönetimi yetenekleriyle,
uygulamaların kalıcı disk ihtiyaçlarını da çözebilir duruma gelmiştir. Bilişim ekosistemi Kubernetes
kullanımını artırdıkça daha fazla kullanım durumu ortaya çıkmaktadır.
3.3. ArgoCD
ArgoCD, Kubernetes için açık kaynaklı bir GitOps sürekli teslim aracıdır. ArgoCD git deposunda
saklanan kubernetes yaml yapılandırma dosyalarını Kubernetes ortamlarına otomatik olarak dağıtır.
Git üzerinden sürüm kontrolünün denetlenebilir olmasını sağlar. Hem Git’ten gelen kaynağın
hem de hizmete alınan uygulamanın durumunu izleyerek bir Kubernetes denetleyicisi görevi
görür. Ikisi arasındaki farkları arar ve dağıtılan yazılım uygulamasını manuel veya otomatik olarak
güncelleme imkanı sağlar. Bunun yanı sıra, web arayüzü üzerinden farklılıkların mevcut durumunun
görselleştirilmiş bir raporunu da sunar. ArgoCD ayrıca Keycloak kimlik yönetimi aracını da destekler
ve rol tabanlı erişim kontrolüne sahiptir. Geliştirici ekiplerine, kendi projelerine erişim ve kurulum
için yetkilendirme sağlar. Ayrıca Helm desteği de bulunmaktadır.
ArgoCD, bir Git sunucu ve Jenkins ile birlikte Kubernetes üzerinde koşan iş yükleri için tüm yaşam
döngüsünü yönetebilir.
Uzmanlar, gelecekteki standart yazılım geliştirme süreçlerinin, yazılım geliştirmeden başlayarak,
CI/CD süreçlerini ve gözlemlenebilirliği içeren GitOps sürecini içermesi gerektiğini önermektedir.
Özellikle süreklilik isteyen firmalar için tüm yazılım yaşam döngüsünü kapsayabilecek çözümlerin
olması çok önemlidir.