Jenkins Nedir, Jenkins Kavramları ve Jenkins Kullanımı

donekilic_
Pia-Team Tech
Published in
3 min readOct 4, 2022

Merhabalar,

İlk makaleme hoş geldiniz 🧐

Bu yazımda Jenkins’in ne olduğunu ve ne işe yaradığını, plugin ve pipeline gibi kavramları, arayüz incelemesi, jenkinsfile ve jenkins kurulumuna değineceğiz.

Jenkins Nedir ?

Jenkins sürekli entegrasyon ve sürekli dağıtım amacıyla Java ile yazılmış açık kaynak kodlu bir otomasyon aracıdır. Jenkins yazılım projelerini sürekli olarak oluşturmak ve test etmek için kullanılır. Bu da geliştiricilerin değişikliklerini projelere entegre etmesini ve kullanıcıların yeni bir sürüm elde etmesini kolaylaştırır. Ayrıca çok sayıda test ve dağıtım teknolojisi ile bütünleşerek yazılımımızı sürekli olarak test etmemize olanak sağlar.

Jenkins Kavramları:

Job: Bir jenkins projesidir. Otomatize etmek istediğimiz işleri bunun içinde belirleriz.

Node: Job’un üzerinde çalıştığı sunucuyu ifade eder. Testleri başka bir bilgisayarda koşmak istediğimizde bir node oluştururuz. Ve bağlantı gereksinimlerini karşılarız. Sonra da node üzerinde testlerimizi koşabiliriz.

Plugin(eklenti): Jenkins ilk yüklendiğinde saf haliyle yüklenir. Kurulurken en çok yüklenen şeyler de kurulum esnasında sorulur. İhtiyacımıza göre pluginler yükleyebiliriz.

Pipeline: Ardışık işler modülü ile çalışan bir jenkins modelidir. Jenkinsin ikinci versiyonundan itibaren varsayılan olarak jenkins kurulumu ile birlikte gelir. Jenkins tam olarak farklı otomasyon modellerini destekleyen bir otomasyon motorudur. Pipeline jenkinse basit continious entegrasyonlarından kapsamlı continious developmentlerına kadar uzanan kullanım senaryolarını destekleyen güçlü bir otomasyon araç seti ekler. Kullanıcılar bir dizi ilgili görevi modelleyerek pipeline’ın bir çok özelliğinden faydalanabilir.

Pipeline Tanımları:

Pipelinelar kodda uygulanır ve genellikle kaynak kod kontrolünde kontrol edilirler. Bu da ekiplere teslimat işlem haklarını düzenleme gözden geçirme ve yineleme yeteneği verir. Dayanıklılık, pipeline jenkins denetleyicisinin hem planlı hem de plansız yeniden başlatmalarına dayanabilir. Pipelinelar isteğe bağlı olarak durdurulabilirler. Çok Yönlülük, pipeleine çatallanma birleşme ve döngü oluşturma ve parelel olarak iş gerçekleştirme dahil olmak üzere karışık gerçek dünya continuous deployment gereksinimlerini destekler. Genişletilebilirlik, pipeline eklentisi diğer eklentilerle entegrasyon olabilmek için çeşitli seçenekler sunar.

Jenkinsfile: Jenkinsfile bir jenkins pipeline tanımını içeren bir metin dosyasıdır.

Jenkins Windows Kurulumu :

https://www.jenkins.io/download/ sitesinden Windows için download alanına tıklayarak exe dosyasının bilgisayarımıza inmesini sağlarız.

Jenkinse login olduktan sonra karşımıza bir jenkins arayüzü çıkmaktadır. Default olarak http://localhost:8080/ portunda çalışır ama config ayarlarından bu değiştirilebilir.

Gördüğümüz alan kontrol merkezidir ve çalıştığında var olan joblarımızı gözlemleyebilir, son durumlarının ne olduğunu görebiliriz.

Yeni Öge: Yeni bir job oluşturmak için kullandığımız kısımdır.

Kişiler: Sistem üzerinde şu an aktif olan kişileri gösteren kısımdır.

Yapılandırma Geçmişi: Şimdiye kadar bir pipeline tetiklendiyse veya job çalıştırıldıysa onların akışını göstermektedir.

Proje İlişkileri: Varsa projeye bağlı upstream proje akışını gösterir.

Dosya Parmakizini Kontrol Et: Elimizde bir java dosya varsa buraya atarak hangi projenin jarı olduğunu bulmamızı sağlıyor.

Jenkins’i Yönet: Asıl kısımdır. Adminlere gelir ve onların kontrol etmesi gereken alandır. Çok kapsamlı ve kullanışlı bir alandır.

Kişisel Görünümler: Kendimize özel görünümler oluşturabiliriz. Aynı zamanda bir alarm merkezi de vardır. Acil durum ile ilgili alarmlar çıkarabiliriz.

En altta jenkinsin API aracını nasıl kullanacağımızla ilgili bir alan vardır.

Yani Jenkins ile hem zaman kazanmış hem de verim elde etmiş olmakla birlikte herhangi bir durum olduğunda bizleri notification ile bilgilendiren, yapmasını istediğimiz işleri sırasıyla otomatize bir şekilde yapan kullanışlı bir ortama sahip oluyoruz.

Bir sonraki yazımda görüşmek üzere :)

--

--