CI/CD Nedir ?

CI/CD

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

 

Neden CI/CD ihtiyacı 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çlerinde insan payını indirir ve zamandan tasarruf sağlar.
  • Paketin kuruluma hazır olup olmadığını denetler.

 

Continuous Integration Nedir?

       Yaptığımız yeni geliştirmelerin kendi belirlediğimiz koşul doğrultusunda (master'a merge geldiğinde, pull request açıldığında, manuel tetikleme, vs.) bir takım kontrollerden geçtiği ve paketin düzgün derlenip derlenmediğinin de kontrol edildiği süreçtir. Örneğin kod yazarken test'lerini de yazıyorsanız, bu süreç içerisinde mevcut ve yeni eklenen testler ile beraber projenin kontrol edilmesini sağlayabilirsiniz. Code coverage(yazılan testlerin, projenin yüzde kaçını kontrol ettiği) konusunda dikkat ettiğiniz bir projeyse, kapsamın belli bir yüzdenin altına düştüğü durumlarda onay vermeyebilir, ilgili kişilere mail ile bilgilendirme yapabilirsiniz.

 

Continuous Delivery & Continuous Deployment Nedir?

       CD süreci içerisinde tanımlanıp birbirine yakın kavramlar olan Delivery ve Deployment süreçlerindeki farkı kısaca açıklayacak olursam eğer:

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

       Continuous Deployment; hazır hale gelmiş yeni paketi sunuculara kurulmasını sağlayan aşamadır.

       Bazı firmalarda 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 production ortamına kurulumu yapılabilmektedir.

 

 

 

Yaygın olarak kullanılan CI/CD araçları

       CI/CD süreçlerini bir arada yönetebileceğiniz çeşitli araçlar yaygın olarak kullanılmaktadır.

       Bunlardan bazıları;

 

 

CI/CD araçlarından Jenkins'i kullandığımız "Evden Buluta - DevOps Serisi" içerisinde yer alan yazılara ulaşmak için tıklayın.

 

Add comment