Jenkins Sürekli Dağıtım [Pratik Örnekle]
Yayınlanan: 2020-12-28Jenkins dağıtımı , karmaşık otomatik yazılım geliştirmenin hızlandırılmış bir sürecidir. Bu makale, Jenkins'in tüm geliştirme yaşam döngüsü süreçlerini veya derleme, belgeleme, test etme, paketleme, hazırlama, dağıtım, statik analiz ve çeşitli kuruluşlarda uygulanan çok daha fazlası gibi DevOps aşamalarını nasıl entegre ettiğine ışık tutuyor.
Bugün birçok kuruluş tekliflerinde DevOps'u benimsiyor. Yazılım geliştirme yaşam döngüsünde, yazılımı sürekli olarak projenin bir parçası olarak yayınlamalısınız.
Jenkins gibi araçlar, platformdan bağımsız olarak uygulamaların sürekli entegrasyonuna ve teslimine izin verme potansiyelleri nedeniyle oldukça popülerdir. Jenkins, makalede tartışılacak olan Jenkins dağıtımında her türlü yapıyı işleyebilen ücretsiz ve tek kaynaklı bir araçtır .
Jenkins, birçok test ve dağıtım teknolojisiyle entegre edilebilir. Bu makale, yazılım projelerinizi sürekli olarak oluşturmak ve test etmek için Jenkins'in nasıl kullanıldığını açıklar.
Dünyanın en iyi Üniversitelerinden Yazılım mühendisliği çevrimiçi kursunu öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Bu nedenle, Jenkins'in nasıl çalıştığına dalmadan önce, Jenkins'i öğrenmenin temeli olan aşağıdaki konuları anlamamız gerekir:

- Sürekli dağıtım
- Sürekli dağıtım ve sürekli dağıtım
- Jenkins dağıtımının pratik bir örneği
- Jenkins dağıtımının faydaları
Gelin hepsine tek tek göz atalım!
İçindekiler
Sürekli Dağıtım
Sürekli dağıtımda yazılım, üretim sunucularında otomasyonla sürekli olarak yayınlanır. Kod, kaynak kodu derleme, doğrulama, gözden geçirme, uygulamayı paketleme ve birim testi ve entegrasyon testi gerçekleştirme gibi aşamalardan geçer.
Daha sonra kod, kullanıcı kabul testi gerçekleştirildiğinde test sunucularına dağıtılır. Yazılım, yazılım sürümü için üretim sunucularına dağıtılacaktır. Jenkins ile sürekli entegrasyon hakkında bilgi edinin.
Sürekli Teslimat ve Sürekli Dağıtım
Sürekli teslimat ve sürekli dağıtım, sürekli teslimatın herhangi bir değişiklik için üretime dağıtılmadığı bir SDLC'nin iki önemli aşamasıdır. Geliştiricinin, kodun her zaman dağıtılabilir olduğundan emin olması ve gerektiğinde dağıtması gerekir.
Resim Kredisi
Sürekli dağıtım, herhangi bir insan tahkimi olmaksızın her değişikliğin otomatik olarak dağıtılmasını gerektirir.
Yukarıdaki şemada, sürekli entegrasyon aşamaları tamamlandıktan sonra, oluşturulan uygulama, sürekli dağıtımdan başka bir şey olmayan üretim sunucularına otomatik olarak dağıtılır.
Veya her şeyi otomatikleştirmek için daha yeni sürümü dağıtmak için insan onayına ihtiyacımız varsa, sürekli bir teslimat gerçekleştiriyoruz.
Bu temel farklılık nedeniyle, her bir süreci farklı koşullara uygun hale getiren çeşitli çıkarımlar olmuştur.
Jenkins
Jenkins, yazılım projelerini sürekli olarak oluşturmak ve test etmek için kullanılan bir otomasyon sunucusu aracılığıyla yazılım sürecini hızlandıran ve geliştiriciler için bir CI/CD ortamı sağlayan açık kaynaklı bir araçtır. Java ile yazılmıştır, bu nedenle gerçekten taşınabilir.
Jenkins'in binlerce eklentisi ve entegrasyonu var. Bu nedenle, çok fazla özelleştirme gerektiren büyük projeler için uygundur. Git, Maven, Mercurial ve Subversion gibi sürüm kontrol araçlarını destekler.
Jenkins dağıtımının pratik bir örneği
Jenkins'in ne tür bir araç olduğunu ve sürekli dağıtım için bir yazılım geliştirme süreci için uygulanabileceğini öğrendiğimize göre, şimdi bir üretim ortamında nasıl çalıştığını görelim.
İlk olarak, Jenkins bir sunucuda kurulur ve inşa ve test için bir müşterinin projesi eklenir. İstemci daha sonra testten geçen uygulamayı indirebilir. Proje varlıklarını sunucuda yeni bir konuma dağıtmak zor olabilir.

Bunun için ön olarak, Jenkins üzerinde sürüm kontrol sisteminize bağlı bir istemci projesinin kurulduğunu varsayalım.
Adım 1: Bir Jenkins Öğesi Oluşturma
Ana menüden 'Yeni öğe'yi seçin ve adlandırın. Dosyaları istemci projenizden bir sunucu klasörüne aktaracaktır.
2. Adım: Oluşturma sonrası eylem oluşturma
İstemci projesine gidin ve yapılandır'ı seçin. Şimdi, bir oluşturma sonrası eylemi başlatın ve açılır menüden 'yapıları arşivle'yi seçin. Arşivlenecek ve dışa aktarılacak dosya türlerini ekleyin.
Bundan sonra, başka bir inşa sonrası eylemi ekleyin, 'Başka proje oluştur' ve daha önce oluşturulan yapı öğesini girin.
Arşiv
Adım 3: 'Yapıyı Kopyala' eklentisini yükleme
Üçüncü adımda, Jenkins'in 'Copy Artifact eklentisini' kuracaksınız.
Bir yapı adımı yapılandırmak ve eklemek için 'Proje adı'na gidin. Kopyalama Yapısı eklentisi yüklendiğinde, 'başka bir projeden yapıtları kopyala' seçeneğini göreceksiniz. Yapıtların kopyalanacağı klasörü belirleyin ve konum yolunu ayarlayın.
Konumu “var/www/clients/..” olarak ayarlayın. Bu, sunucuda yeni bir klasör oluşturacaktır. Yolu bir HTTP adresiyle (!) belirtin.
Projeyi Kaydetmek
Adım 4: Testi Gerçekleştirme
Birincil aşamalardan sonra, şimdi uygulamayı test etme zamanı.
Bunun için müşteri projesinden bir yapı oluşturun. Bu yeni bir yapı isteyecektir. Sunucudaki dağıtım klasörünü kontrol edin. Burada dağıtılan dosyaları göreceksiniz.
Ancak, tüm eylemlerden sonra bile derleme başarısız oldu ve 'FileException' hatası aldınız.
Niye ya?
Olası nedenler şunlar olabilir:
- Jenkins, klasöre yazma izinlerine sahip değildi ve dosyaları dağıtamıyor.
- SSH'yi sunucuya bağlayın.
- Çıktı klasörü izinlerini kontrol edin.
- Bileceksiniz, bir sorunla karşılaştık.
Bunu çözmek için aşağıdaki adımları uygulayın:
- Jenkins'i bir gruba ekleyin, burada 'www-data' grubu.
- Çıktı klasörünün sahipliğini sudo chown komutuyla 'www-data' grubuna değiştirme – R : 'www – data' istemcileri.
- sudo chmod komutuyla klasöre yazma erişimine izin verin .
- Sunucuyu yeniden başlatın ve dağıtılan uygulamayı görün
Jenkins'in Avantajları Nelerdir?
- Jenkins açık kaynaklı bir araçtır ve mükemmel topluluk desteği sağlar.
- Jenkins'in kurulumu nispeten kolaydır.
- Jenkins'in 1000'den fazla eklentisi var. Bir eklenti mevcut değilse, kolayca kodlayabilirsiniz.
- Jenkins ücretsizdir.
- Jenkins, Java ile oluşturulmuştur; bu nedenle, tüm büyük platformlara taşınabilir.
Ayrıca Okuyun: Jenkins Proje Fikirleri ve Konuları

Son sözler
Jenkins, Sürekli Entegrasyon için yaygın olarak kullanılan sağlam bir Java yazılı otomasyon aracıdır. Jenkins ile yazılım projelerini sürekli olarak yazılanlarla inşa etmek ve test etmek daha kolaydır. Çok sayıda test ve dağıtım teknolojisiyle bütünleşerek yazılımınızı her zaman sunmak için nihai araçtır.
Öğrenme yazılımı geliştirme – upGrad ile DevOps
upGrad, Yazılım Geliştirmede Yönetici PG Programı - DevOps'ta Uzmanlık sunmaktadır; bu programda, kuruluş içinde çok yüksek bir hızda uygulamalar ve hizmetler sunmayı öğreneceksiniz. upGrad'daki fakülte size DevOps'un tüm ayrıntılarını ve onu öğrenmenin neden sizin için karlı bir kariyer sağlayacağını öğretecek.
upGrad'ın DevOps Programında Yazılım Geliştirme Uzmanlığı alanında PG Diploması Önemli Noktalar:
Bu uzatılmış 12 aylık çevrimiçi kurs aşağıdaki özellikleri sunar:
- Canlı Derslerle Bilgili Çevrimiçi Oturumlar
- Data Science & Machine Learning'deki değerli içeriğe ücretsiz erişim
- 7+ canlı Proje ve Ödev üzerinde çalışmak
- On Programlama Dili ve Aracı Öğrenmek
- Garantili Yerleştirme Güvencesi
- İş yardımı ile 360 ° Kariyer Desteği