Page 47 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 47
CI/CD Süreç Yönetimi | 47
4. Yöntem
CI Pipeline
Kod Commit Başarısız
Otomasyon Testi Paketleme
Derleme Versiyonlama
Test
Sonuçları
Git Kod Deposu
Test Docker Build
Başarılı
Docker Push İmaj Deposu
CD Pipeline
Demo Ortamına GitOps Demo Ortamı
Otomatik Versiyon Versiyon Bilgisi
Git Kubernetes
Bilgisi Geçme Otomatik Aktarım
Manifest Deposu
Test
Fonksiyonalite Testleri Sonuçları Başarısız
Kubernetes
Demo Ortamı
Başarılı
Canlı Ortama GitOps Canlı Ortam
Otomatik Versiyon Versiyon Bilgisi
Kubernetes Bilgisi Geçme Git Kubernetes Manuel Aktarım
Canlı Ortam Manifest Deposu
Şekil 2. CI/CD Yaşam Döngüsü
CI/CD yaklaşımı bir döngüdür. Şekil 2’de gösterildiği gibi bu döngünün her yeni özellik veya hata
gidermede gerçekleşecek şekilde tekrar etmesi beklenir. CI ve CD ardışık süreci ile yazılım geliştirme
sürecinde tekrar tekrar yapılması gereken işlemler tam otomatik hale getirilir. Yazılımın yapılacak
iş için ayrılmış kodunda yapılan her değişiklik ile birlikte CI pipeline’ının başlangıcı olan otomasyon
testleri çalışır. Başarısız olursa kod gözden geçirilir ve düzeltme yapılır ve tekrar otomasyon testleri
otomatik çalışır. Isteğe göre manuel ya da otomatik işletilen bu adımda versiyonlama birinci
önceliktir. Çünkü verilen versiyon numarası ile etiketlenen uygulama imajının kurulumu yapılacaktır.
Daha sonra uygulama imajı oluşturulur ve imaj deposuna gönderilir. Ayrıca bu pipeline’da son
olarak CD sürecini de içeren GitOps adımı başlar. Oluşturulan imajın semantik sürüm numarası,
demo ortamının Git’te tutulan Kubernetes manifestolarında güncellenir. Bu Git deposunu dinleyen
ArgoCD otomatik olarak Kubernetes ortamında nesne tanımlarını günceller ve Kubernetes buna göre
imaj deposundan imajı çeker ve yeni uygulamayı çalıştırır. Demo ortamında fonksiyonalite testleri
yaptıktan sonra başarısız sonuç alınırsa tekrardan en baştaki adıma dönülerek kodda düzeltme
yapılır. Canlı ortama geçilmeden önce bir demo ortamında kontrollerin yapılması çok önemlidir.
En ufak hata ile tüm veri bozulabilir ya da geri dönüşü olmayan hatalı işlemler yapılabilir. Başarılı
sonuçlanan fonksiyonalite testleri sonrası demo ortamı için uygulanan CD nin son adımındaki gibi
Git’te tutulan Kubernetes Canlı ortam manifestosu da güncellenir. Uygulamanın güncel versiyonu