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
Yorum Gönder