CI/CD (Continuous Integration/Continuous Delivery) – Ürün oluşturmanın güvenilirliğini ve hızını sağlayan bir yazılım geliştirme metodolojisi. Tipik DevOps uygulamalarından birini ifade eder.
Temel farkı, kodun test edilmesi ve birleştirilmesinin otomatik modda gerçekleştirilmesidir. Bu yaklaşım, erken aşamalarda hataları önler ve riskleri en aza indirir.
Çalışma prensipleri
CI (Continuous Integration) – Sürekli entegrasyon. Kod yazarken, geliştiriciler depoya yüklenen değişiklikleri sürekli olarak yaparlar. Otomatik test ve doğrulama için komut dosyaları oluşturan Github gibi özel hizmetler kullanılır. Her adımda, herhangi bir değişikliği kaydeden bir günlük tutulur.
CD (Continuous Delivery) – Sürekli teslimat. Yapının herhangi bir ortama otomatik olarak dağıtılmasından sorumludur: üretim, test veya geliştirme ortamı. Örneğin, kodu düzenledikten sonra otomatik olarak test alanına yerleştirilir.
Metodoloji, geliştirme sırasında kodu sık sık değiştiren ancak yine de istikrarlı sürümler yayınlayan şirketlerde kullanılır. Geliştiriciler, uygulamayı sürekli olarak geliştirmeye odaklanmanıza olanak tanıyan otomatik bir test ve dağıtım süreci alır.
Metodolojinin aşamaları
CI / CD döngüsü şartlı olarak 7 aşamaya ayrılır:
- Yapım. Programcılar kodun belirli bir bölümünü yazar ve ardından manuel modda test ederler. Test başarıyla tamamlanırsa, parçalar tek bir kodda birleştirilir ve geliştirme çalışma koluna aktarılır.
- Pot. İkinci aşamada, ürünün sürümünü kontrol etmek için özel bir yazılım kullanırlar, örneğin Git. Program, yapılan değişikliklerle otomatik bir montaj başlatır ve ardından alınan kodu test ederler. Başarılı geçiş kriterleri manuel modda yapılandırılır.
- Manuel test. Yazılımda otomatik testi geçtikten sonra ürün, test ekibine kontrol edilmek üzere gönderilir. Yazılı kodu manuel olarak kontrol ederler ve hataları ararlar.
- Sürüm. Üçüncü aşamanın başarılı bir şekilde sona ermesinden sonra, kod serbest bırakılmaya gider. Mevcut yazılım ürününü güncel sürüme güncellemek için çalışan bir derleme oluşturulur.
- Dağıtım. Alınan güncelleme, yazılımı en son sürüme güncellemek için geliştiricilerin resmi sunucularında yayınlanmaktadır.
- Destek ve izleme. Programcılar tüketici geri bildirimlerini izler ve gelecekteki değişikliklerin bir listesini hazırlar.
- Planlama. Son adımda, sonraki sürümler için onaylanmış bir değişiklik günlüğü oluşturulur. Bu adımın sonunda geliştirme döngüsü sona erer ve baştan başlar.
Bu çalışma prensibi ile kullanıcılar tamamen çalışan bir sürüm alırlar. Bir hata veya hata bulurlarsa, teknik desteğe bildirirler.
CI/CD metodolojisi, yazılım ürününün geliştirme süresini kısaltır, kod oluşturmanın ilk aşamalarında hataları ve eksiklikleri tespit eder ve bir olay oluşması durumunda kurtarma süresini kısaltır.
Değişiklikler kaydedilir, bu da hataları izleme ve yazılım ürününe yeni özellikler ekleme sürecini hızlandırır.