Jenkins Nedir? Continuous Integration(CI) ve Continuous Deployment(CD) Nedir?




Jenkins Nedir?

        Jenkins, cross-platform ve açık kaynak kodlu otomasyon aracıdır. Otomasyon derken neyi kastediyoruz peki?

        Bir projeyi yazarken sürekli build, test ve deploy işleriyle uğraşıyoruz. Bu işler bi süre sonra büyük bir zaman kaybına neden oluyor. Bi de proje birden fazla kişinin katıldığı bir ekip ile yazılıyorsa her hafta hatta her gün yeni commit’ler gelmesi olası. Jenkins bu build, test ve deploy işlemlerini bizim yerimize otomatik bir şekilde yapıyor.

        Jenkins’i daha iyi anlamak için birkaç kavramı bilmemiz gerekiyor. Peki bunlar nedir? Continuous Integration(CI) ve Continuous Deployment(CD)





Continuous Integration(CI)

        CI kelime anlamı olarak sürekli entegrasyon anlamına gelmektedir. Aslında buradan bile bir anlam çıkıyor. CI, kodun Git gibi versiyon kontrol sistemlerinden sürekli değişiklik olup olmadığını kontrol edip en küçük değişiklileri bile entegre etme anlamına gelmektedir.

        CI’ın hedefi, uygulamayı Git reposundan alıp, paketleyip, test edilecek ortama kurulumunu otomatize etme sürecidir.

        CI sürecinde kod bir takım testlerden geçer. Testler başarılı bir şekilde sonuçlanır ve tüm sistem çalışır haldeyse deploy işlemlerini başlatır. Eğer değişiklikler sistemde kırılmalara neden olmuşsa bu durumdan programcıları haberdar eder.

Continuous Deployment(CD)

       CD ise CI’dan başarılı bir şekilde geçen sistemin ilgili yerlere dağıtımı ile ilgilenir. Yani CI süresince kod derlendi, bazı testlerden geçti ve CD süreci ile dağıtımına başlandı.


       Şimdi Jenkins’in neler yaptığına bir daha bakalım. Jenkins, ilgili git reposunu belirli aralıklarla kontrol eder. Değişiklikleri kendi reposuna alır ve derler. Daha sonra sizin belirlediğiniz bir dizi testlerden geçer. Sonrasında istediğiniz yere bu yeni versiyonu deploy eder.

       Jenkins ile binlerce pluginde kullanılabilir. Jenkins pluginlerine şu adresten bakabilirsiniz.

Peki Jenkins’ten başka CI toolu var mı? Aşağıda diğer CI toolarını da görebilirsiniz fakat şuan en popüler olanı Jenkins.
  •          Jenkins
  •          Bamboo
  •          Travis CI
  •          Gitlab CI
  •          TeamCity

Jenkins hakkında daha detaylı bilgi ve kurulumu için aşağıdaki youtube serisini izleyebilirsiniz.



Yorumlar

Bu blogdaki popüler yayınlar

DLL Dosyalarını Exe'ye Gömme

PostgreSQL Nedir? Nasıl Kullanılır?

Iterator Tasarım Kalıbı