Page 42 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 42
42 | CI/CD Süreç Yönetimi
1. Temel Kavramlar
1.1. Sürekli Entegrasyon (Continuous Integration, CI)
CI, geliştiricilerin kodun uygulanabilirliği hakkında hızlı bir şekilde geri bildirim almak için, yazdığı
kodu sürekli olarak paylaşılan bir kod deposuna entegre ettiği uygulamadır. CI, otomatikleştirilmiş
derlemeleri ve testleri destekler, böylece ekipler tek bir proje üzerinde hızla işbirliği yapabilir.
Ayrıca CI, yazılım şirketlerinin daha sık ve daha kısa bir sürüm döngüsüne sahip olmalarını sağlar.
Bu strateji, geliştirilen uygulamanın, canlı ortamda hızlı ve güvenilir bir şekilde yayınlanmasını
kolaylaştırır. CI, geliştirme ekiplerini kısa yinelemelerde yazılım oluşturmaya ve işlevsel kodlarını
mümkün olan en kısa sürede kök kodla birleştirmeye teşvik eder.
1.2. Sürekli Teslim (Continuous Delivery, CD)
CD, ekiplerin kısa döngüler halinde yazılım tasarladığı, oluşturduğu, test ettiği ve yayınladığı bir
yazılım mühendisliği uygulamasıdır. Döngünün hem hızlı hem de güvenilir olmasını sağlamak için
her aşamada otomasyona güvenir.
Temel olarak CD, bir uygulama geliştiricisi tarafından yapılan değişikliklerin kod deposuna veya
kapsayıcı kayıt defterine teslim edildiği CI sürecininin devamı olan bir süreçtir. Böylece, tüm
değişiklikler operasyon ekibi tarafından canlı bir üretim ortamında devreye alınabilir. CD, bunu
yaparak DevOps ve yazılım ekipleri arasındaki sınırlı olan iletişim sorununu çözer. Sonuç olarak,
yinelenen bir şekilde yeni kodun mümkün olduğunca az operasyonel bağımlılıkla, otomatik olarak
test ve canlı ortamlara kurulmasını ve yayınlanmasını garanti eder.
1.3. Sürüm Kontrolü ve Versiyonlama
Kaynak denetimi olarak da bilinen sürüm denetimi, bir yazılımın kodundaki değişiklikleri izleme
ve yönetme yöntemidir. Sürüm kontrol sistemleri, geliştiricilerin zaman içinde kaynak kodundaki
değişiklikleri yönettiği yazılım araçlarıdır. CI/CD yaklaşımlarıyla en çok kullanılan ve popüler olan
sürüm kontrol sistemi Git’tir. Bir veri kümesinin düzenli bir şekilde, genellikle bilgisayar deposunda
tutulduğu ve muhafaza edildiği merkezi bir yerdir.
Semantik sürüm oluşturma, yaygın olarak benimsenen bir sürüm şemasıdır; üç parçalı bir sürüm
numarası (Major. Minor. Patch), isteğe bağlı bir yayın öncesi etiketi ve isteğe bağlı bir derleme meta
etiketi kullanır. Yazılım geliştirmede versiyonlama çok önemlidir. Kök kodu “Master” veya “Main”
isimlendirmesi ile isimlendirilebilir. Sprint sonlarında çıkılan her yeni release için Minor numarası
arttırılır ve Patch numarası sıfırlanır. Ara sürümlerde ise Patch numarası arttırılır.