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
   42   43   44   45   46   47   48   49   50   51   52