CI/CD NEDİR ?

Yazılım projelerinde son aşamaya gelindiğinde yazdığımız projeyi test, production (son kullanıcı/müşteri tarafından aktif olarak kullanılan) veya canlıya diye tabir ettiğimiz ortama göndermek istediğimizde, yaptığımız yeni geliştirme ve değişikliklerin mevcut yapıyı bozmadığından emin olmak zorundayız. Ayrıca, yapılan geliştirmelerin kurulumu sırasında kimi zaman kullanıcı kaynaklı hatalar (eksik/hatalı dosya, fazla dosya silme, yüksek uygulama boyutu vs.) da yaşanabilmektedir.


CI/CD'ye Neden ihtiyaç duyarız?

  • Tekrar eden işleri otomatize hale getirir.

  • Tüm testlerin kontolünü sağlar. Kod kalitesini arttırır.

  • Büyük projelerde, uzun süren kurulum süreçleri meydana geldiğinden dolayı kullanıcı payını indirir ve zamandan tasarruf sağlar.

  • Canlıya çıkacak olan paketin kuruluma hazır olup olmadığını denetler.

Continuous Integration ( CI ) Nedir?

Sürekli entegrasyon, kod üzerinde yapılan değişiklik sonrasında sistemin çalışır durumda olduğunu, yapılan değişikliğin sorunlara yol açmadığını tespit etmek için kullanılan yöntemdir. Sorunları ve kırılmaları tespit edebilmek için birim testleri kullanılır. Yapılan değişiklikler yeni bir yapının parçası olduğundan dolayı testlerde oluşan hatalar, yapılan değişikliğin sistemi kastırdığı anlamına gelmektedir. Bu durumda tüm programcılar bilgilendirilerek hatanın bir an önce giderilmesi sağlanır. Sürekli entegrasyon ile programcılar tarafından kod üzerinde yapılan çalışmalar neticesinde her zaman çalışır bir sürümün oluşması sağlanmış olur.

Sürekli entegrasyon ( CI ), geliştiricilerin kod değişikliklerini daha sık geliştirmesine yardımcı olur. Geliştiricilerin bir projede ki değişiklikleri birleştirildiğinde, değişikliklerin uygulamayı bozmadığından emin olmak için uygulamayı otomatik olarak oluşturmakla beraber, farklı düzeylerde testler ile doğrulanmasıdır.

Continuous Delivery ( CD ) Nedir?

Sürekli teslimat, sürekli entegrasyonun doğal bir uzantısıdır.

Sürekli teslimat, başarılı olan bir yapıyı ( build ) bir ortama atma durumunun otomatik olan yoludur. Teslimat ile dağıtım arasında küçük bir fark vardır; Teslimat manuel yolla, dağıtım ise otomatik yapılır. Sürekli teslimat düzgün bir şekilde uygulanırsa, son kullanıcılar standartlaştırılmış bir test sürecinden geçmiş yapıya sahip olacaklardır.

Continuous Delivery; yeni geliştirmeler yapılan, yeni kod paketinin CI sürecinden geçtikten sonra build yapısına alınıp deploy'a hazır hale gelmesini sağlayan aşamadır.

Continuous Deployment; hazır hale gelmiş yeni paketi sunuculara kurulup, konfigüre/entegre edilmesini sağlayan aşamadır.

Bazı firmaların hiyerarşisinde bu süreç manuel olarak yapılabildiği gibi bazı firmalarda ise bu süreç de otonom bir hale gelmiştir ve CI sürecinden geçen kod doğrudan canlı ortamına kurulumu yapılabilmektedir.

CI/CD’nin Faydaları Nelerdir?

Verimliliği arttırır

· Otomatik dağıtım ve testler gerçekleştirerek verimliliği artırır.

· Mühendislik ve operasyon yolu olan aerodinamik ağ üzerinden çalışma imkanı sağlar.

· Yeni hizmetleri ve artan trafiği yönetme aşmasında daha verimli bir hizmet sunar.

Azalan riskler

· En son yazılım sürümünü destekleyerek risklere karşı önlem alır.

· Yapılandırma hata riskini kaldırır.

· Büyük yükseltme projelerin yerine kademeli güncellemeler sağlar.

Servis çevikliği

· Daha kısa teslim süreleri (TTM) sağlar.

· Aktivasyona hazır yetenekler oluşturur.

· Yeni hizmetlerin çeşitliliğini ele almaya hazır haldedir.



Okuduğunuz ve zaman ayırdığınız için teşekkür ederim.

19 görüntüleme0 yorum

İlgili Yazılar

Hepsini Gör