☎ Bizi Arayın
DevOps
Posted in

Jenkins & Sürekli Entegrasyon Nedir?

Posted in

Sürekli Entegrasyon (CI), DevOps’un çeşitli DevOps aşamalarını entegre etmek için kullanılan en önemli parçasıdır. Jenkins en ünlü Sürekli Entegrasyon aracıdır. Jenkins’in popülaritesinin arkasındaki nedeni merak ettiğinizi ve Jenkins’i öğrenmenin kolay olup olmadığını merak ettiğinizi biliyorum. Bu “Jenkins nedir?” blogunu okuduktan sonra, tüm sorularınızın yanıtlanacağından oldukça eminim.

Jenkins’in ne olduğunu basit kelimelerle anlayalım.

Jenkins nedir ve neden kullanıyoruz?
Jenkins, Sürekli Entegrasyon amacıyla oluşturulmuş eklentilerle, Java ile yazılmış açık kaynaklı bir otomasyon aracıdır. Jenkins, yazılım projelerinizi sürekli olarak oluşturmak ve test etmek için kullanılır, bu da geliştiricilerin değişiklikleri projeye entegre etmesini ve kullanıcıların yeni bir yapı elde etmesini kolaylaştırır. Ayrıca, çok sayıda test ve dağıtım teknolojisiyle bütünleşerek yazılımınızı sürekli olarak teslim etmenize olanak tanır.

Jenkins ile kuruluşlar, otomasyon yoluyla yazılım geliştirme sürecini hızlandırabilir. Jenkins, derleme, belgeleme, test etme, paketleme, aşama, devreye alma, statik analiz ve çok daha fazlası dahil olmak üzere her türlü geliştirme yaşam döngüsü sürecini entegre eder.

Jenkins, eklentilerin yardımıyla Sürekli Entegrasyona ulaşır. Eklentiler, Çeşitli DevOps aşamalarının entegrasyonuna izin verir. Belirli bir aracı entegre etmek istiyorsanız, o araç için eklentileri yüklemeniz gerekir. Örneğin Git, Maven 2 projesi, Amazon EC2, HTML yayıncısı vb.

Jenkins’in avantajları şunları içerir:

  • Büyük topluluk desteğine sahip açık kaynaklı bir araçtır.
  • Yüklemek kolaydır.
  • İşinizi kolaylaştırmak için 1000’den fazla eklentiye sahiptir.
  • Bir eklenti yoksa, onu kodlayabilir ve toplulukla paylaşabilirsiniz.
  • Ücretsizdir.
  • Java ile oluşturulmuştur ve bu nedenle tüm büyük platformlara taşınabilir.
  • Jenkins’i diğer Sürekli Entegrasyon aracından ayıran bazı şeyler var. Gelin o noktalara bir göz atalım.

Jenkins Özellikleri
Jenkins’i diğer Sürekli Entegrasyon araçlarından daha iyi yapan bazı gerçekler şunlardır:

Benimseme: Jenkins, dünya çapında 147.000’den fazla aktif kurulum ve 1 milyondan fazla kullanıcı ile oldukça yaygındır.
Eklentiler: Jenkins, geliştirme, test etme ve dağıtım araçlarının çoğuyla entegre olmasına izin veren 1.000’den fazla eklentiyle birbirine bağlıdır.
Yukarıdaki noktalardan Jenkins’in küresel olarak çok yüksek bir talebin olduğu açıktır. Jenkins’e dalmadan önce Sürekli Entegrasyonun ne olduğunu ve neden tanıtıldığını bilmek önemlidir.

Sürekli Entegrasyon Nedir?
Sürekli Entegrasyon, geliştiricilerin günde birkaç kez veya daha sık olarak paylaşılan bir havuzdaki kaynak kodunda değişiklik yapmalarını gerektiren bir geliştirme uygulamasıdır. Depoda yapılan her taahhüt daha sonra oluşturulur. Bu, ekiplerin sorunları erken tespit etmesini sağlar. Bunun dışında, Sürekli Entegrasyon aracına bağlı olarak, derleme uygulamasını test sunucusuna dağıtmak, ilgili ekiplere derleme ve test sonuçlarını sağlamak vb. gibi başka işlevler de vardır.

Bir kullanım örneği ile önemini anlayalım.

Sürekli Entegrasyon Örneği: Nokia
Hepinizin hayatınızın bir noktasında Nokia telefonları kullanmış olduğunuzdan oldukça eminim. Nokia’daki bir yazılım ürünü geliştirme projesinde Nightly builds adı verilen bir süreç vardı. Gecelik derlemeler, Sürekli Entegrasyonun öncülü olarak düşünülebilir. Bu, otomatik bir sistemin gün boyunca paylaşılan depoya eklenen kodu her gece çekmesi ve bu kodu oluşturması anlamına gelir. Fikir, Sürekli Entegrasyona oldukça benzer, ancak geceleri oluşturulan kod oldukça büyük olduğundan, hataların bulunması ve düzeltilmesi gerçek bir acıydı. Bu nedenle Nokia, Sürekli Entegrasyon’u (CI) benimsemiştir. Sonuç olarak, depodaki kaynak koduna yapılan her taahhüt oluşturuldu. Derleme sonucu kodda bir hata olduğunu gösteriyorsa, geliştiricilerin yalnızca bu belirli taahhüdü kontrol etmesi gerekir. Bu, yeni yazılımı yayınlamak için gereken süreyi önemli ölçüde azaltmıştır.

Şimdi Jenkins’in Sürekli Entegrasyona nasıl ulaştığını anlamanın doğru zamanı.

Jenkins ile Sürekli Entegrasyon
Uygulamanın tam kaynak kodunun oluşturulduğu ve ardından test için test sunucusuna yerleştirildiği bir senaryo hayal edelim. Yazılım geliştirmek için mükemmel bir yol gibi görünüyor, ancak bu işlemin birçok kusuru var. Bunları tek tek açıklamaya çalışacağım:

  • Geliştiriciler, test sonuçları için eksiksiz yazılım geliştirilinceye kadar beklemek zorundadır.
  • Test sonuçlarının birden fazla hata gösterme olasılığı yüksektir. Uygulamanın tüm kaynak kodunu kontrol etmeleri gerektiğinden geliştiricilerin bu hataları bulmaları zordu.
  • Yazılım teslim sürecini yavaşlatır.
  • Yazılım kalitesinin düşebileceği için kodlama veya mimari sorunlar, yapı hataları, test durumu ve dosya yayın yüklemeleri gibi şeylerle ilgili sürekli geri bildirim eksikti.
  • Tüm süreç, sık arıza riskini artıran manuel işlemlerden oluşuyordu.

Yalnızca yazılım teslim sürecinin yavaşladığı değil, aynı zamanda yazılım kalitesinin de düştüğü, yukarıda belirtilen sorunlardan açıkça görülmektedir. Bu da müşteri memnuniyetsizliğine yol açmaktadır. Bu nedenle, böyle bir kaosun üstesinden gelmek için, geliştiricilerin kaynak kodunda yapılan her değişiklik için sürekli olarak bir yapıyı tetikleyebilecekleri ve test edebilecekleri bir sistemin var olmasına büyük bir ihtiyaç vardı. CI’nin amacı budur. Jenkins, mevcut en olgun CI aracıdır, bu yüzden Jenkins ile Sürekli Entegrasyonun yukarıdaki eksiklikleri nasıl aştığını görelim.

İlk önce size Jenkins ile Sürekli Entegrasyonun genel bir akış şemasını açıklayacağım, böylece kendini açıklayıcı hale gelecek, Jenkins yukarıdaki eksikliklerin üstesinden nasıl geliyor. Bu, Jenkins’in nasıl çalıştığını anlamanıza yardımcı olacaktır.

  • İlk olarak, bir geliştirici kodu kaynak kod deposuna taahhüt eder. Bu arada Jenkins sunucusu, değişiklikler için düzenli aralıklarla depoyu kontrol eder.
  • Bir taahhüt gerçekleştikten kısa bir süre sonra, Jenkins sunucusu kaynak kod deposunda meydana gelen değişiklikleri algılar. Jenkins bu değişiklikleri alacak ve yeni bir yapı hazırlamaya başlayacak.
  • Oluşturma başarısız olursa, ilgili ekip bilgilendirilecektir.
  • Derleme başarılı olursa, Jenkins yerleşik test sunucusunu dağıtır.

Testten sonra Jenkins bir geri bildirim oluşturur ve ardından geliştiricileri derleme ve test sonuçları hakkında bilgilendirir. Kaynak kodda yapılan değişiklikler için kaynak kod deposunu kontrol etmeye devam edecek ve tüm süreç tekrar etmeye devam edecek. Artık Jenkins’in geleneksel SDLC eksikliklerinin üstesinden nasıl geldiğini biliyorsunuz. Aşağıdaki tablo “Jenkins Öncesi ve Sonrası” arasındaki karşılaştırmayı göstermektedir.

Jenkins’ten önce ve sonra

  Jenkins ÖncesiJenkins Sonrası
Tüm kaynak kodu oluşturuldu ve ardından test edildi. Derleme ve test hatası durumunda hataları bulmak ve düzeltmek zor ve zaman alıcıydı, bu da yazılım teslim sürecini yavaşlattı.Kaynak kodunda yapılan her taahhüt oluşturulur ve test edilir. Bu nedenle, geliştiricilerin tüm kaynak kodunu kontrol etmek yerine yalnızca belirli bir işleme odaklanması gerekir. Bu, sık sık yeni yazılım sürümlerine yol açar.
Geliştiricilerin test sonuçlarını beklemesi gerekiyor.Geliştiriciler, çalıştırma sırasında kaynak kodunda yapılan her işlemin test sonucunu bilir.
Tüm süreç manuel.Yalnızca kaynak kodunda değişiklik yapmanız gerekir ve Jenkins sürecin geri kalanını sizin için otomatik hale getirir.

Tatışmaya katılın

KUTBU KİŞİSEL VERİLERİN KORUNMASI KANUNU HAKKINDA

SİTE ZİYARETÇİSİ BİLGİLENDİRME/AYDINLATMA METNİ

KUTBU olarak kişisel verilerinizin güvenliğine azami hassasiyet göstermekteyiz. KUTBU olarak, kişisel verilere yönelik tüm işlemleri 6698 sayılı kanuna uyumlu olarak yapmaktayız.

Değerli site ziyaretçisi, sizleri 6698 sayılı Kişisel Verilerin Korunması Kanunu kapsamında kişisel verilerin korunması hakkında aydınlatmak/bilgilendirmek isteriz.

Veri Sorumlusu ve İlgili Kişi Bilgisi

 İşbu aydınlatma metni 6698 sayılı Kişisel Verilerin Korunması Kanunu’na göre hazırlanmış olup, KUTBU’nun sizinle ilgili kişisel verileri işlemesi, veri işleme amaçlarını belirlemesi, veri işleme sisteminin kurulması ve işletilmesi sebebiyle veri sorumlusudur. KUTBU tarafından, kişisel verisi işlenen gerçek kişiler, kanun tarafından ilgili kişi olarak kabul edilmektedir.

Kanunun Aydınlatma Yükümlülüğünü düzenleyen 10’ncu maddesine göre, veri sorumluları, kişisel verilerini işledikleri gerçek kişileri, veri işleme ile ilgili konularda bilgilendirmekle yükümlüdür.

Bu metin, ilgili kişi olarak sizi bilgilendirmeye yönelik hazırlanmış olup, ilgili kişinin (veri sahibinin) ve veri sorumlusunun hak ve yükümlülüklerini içermektedir.

Veri Sorumlusunun

Adı/Soyadı / Unvanı   : KUTBU

Vergi Numarası          : 9320305760

Vergi Dairesi               : Mecidiyeköy Vergi Dairesi

Posta Adresi               : Fulya Mahallesi Büyükdere Caddesi No:74/D İç Kapı No: 10, 34394 Şişli/İstanbul

Telefon                        : +90 212 951 02 72

E-posta                        : merhaba@kutbu.com

İnternet Adresi            : www.kutbu.com

Kişisel Veri İşleme Amaçları ve İşlenen Veriler

 Site ziyaretçisine yönelik, müşterilimiz de dahil olmak üzere Bilgi Güvenliği Süreçlerinin Yürütülmesi, Risk Yönetimi Süreçlerinin Yürütülmesi, Faaliyetlerin Mevzuata Uygun Yürütülmesi, İnternet Sitesinin Güvenliğinin Sağlanması, İleride Çıkabilecek Uyuşmazlıkların Giderilmesi, Sorunların Tespiti Ve Çözümlenmesi, ve ilgili diğer mevzuatlarının yerine getirilmesi amaçlarına yönelik olarak aşağıda belirtilen kişisel verileriniz işlenmektedir.

Site ziyaretçisine yönelik işlenen veriler ise aşağıda yer alan kişisel verilerdir.

  • İşlem Güvenliği Bilgisi

Belirtilen veri kategorilerinde hangi verilerin bulunduğu ise veri sorumlusu olarak düzenlediğimiz veri haritasında ayrıntılı olarak bulunmaktadır.

Kişisel Veri İşlemenin Hukuki Sebepleri

Site ziyaretçisine yönelik olarak kişisel veriler,

  • Kanunlarda açıkça öngörülmesi,
  • Veri sorumlusunun hukuki yükümlülüğünü yerine getirebilmesi için zorunlu olması,
  • İlgili kişinin temel hak ve özgürlüklerine zarar vermemek kaydıyla, veri sorumlusunun meşru menfaatleri için veri işlenmesinin zorunlu olması

Hukuki sebeplerine dayanılarak işlenmektedir.

Ayrıca ilgili kişi (veri sahibi) tarafından alenileştirilen kişisel veriler ilgili kişinin kendisi tarafından alenileştirilmiş olması hukuki sebebine dayanılarak işlenmektedir.

İşlenen Kişisel Veriler Edinim Yöntemi

 Değerli site ziyaretçisi; kişisel verileriniz, elektronik ortamda işbu aydınlatma metninde belirtilen amaçlar doğrultusunda otomatik olarak toplanmaktadır.

Kişisel Veri Aktarım ve Amaçları

 Kişisel verileriniz KVKK Md.28/1 çerçevesinde talep edilmesi halinde aydınlatma yükümlülüğü olmadan ve açık rızanız aranmadan ilgili makamlara aktarılabilir.

İşlenen kişisel verileriniz; hukuki uyuşmazlıkların giderilmesi veya ilgili mevzuat gereği talep halinde adli makamlar veya ilgili kolluk kuvvetlerine ya da idari makamlara, KUTBU’nun tedarikçilerine ve hizmet aldığı firmalara mevzuatlarda öngörülen amaç̧ ve sınırlamalar dahilinde ve 6698 sayılı yasanın 8. ve 9. maddelerinde yer alan yükümlülükler kapsamında paylaşılabilir.

 Veri Sorumlusu Hak ve Yükümlülükleri

 Veri sorumlusu olarak, 6698 KVKK ile diğer ilgili kanunlara uygun olarak kişisel verileri işleme, kişisel verilerin hukuka aykırı olarak işlenmesini ve erişilmesini önleme, kişisel verilerin güvenli bir şekilde işlenmesi ve muhafazası için teknik ve fili imkanlar doğrultusunda yeterli güvenlik tedbirlerini alma hak ve yükümlülükleri bulunmaktadır.

Kişisel Verileri gizli tutmayı, gizliliğin sağlanması ve güvenliği için gerekli teknik ve idari her türlü tedbiri almayı ve gerekli özeni göstermeyi taahhüt etmekteyiz. Kişisel Veriler ‘in korunması Şirketimiz için önemli bir konudur. Kişisel Verilere yetkisiz erişim veya bu bilgilerin kaybı, hatalı kullanımı, ifşa edilmesi, değiştirilmesi veya imha edilmesine karşı korumak için gerekli teknik ve idari her türlü önlemi alınmaktadır. Kişisel Veriler’i işlerken genel kabul görmüş güvenlik teknoloji standartları kullanmaktadır. Gerekli bilgi güvenliği önlemlerini almamıza karşın, şirketimize ait internet sitesine ve veri işleme sistemlerimize yönelik yapılan saldırılar sonucunda Kişisel Veriler ’in zarar görmesi veya üçüncü kişilerin eline geçmesi durumunda, bu durumu derhal sizlere ve Kişisel Verileri Koruma Kurulu’na bildirir ve gerekli önlemleri alırız.

Aşağıda belirtilen hususların asgari birinin olması durumunda, KVKK madde 5 ve 6 da belirtildiği üzere, açık rıza alınmasa dahi kişisel ve özel nitelikli kişisel veriler belirtilen amaçlar doğrultusunda işlenebilecektir.

  • İlgili kanunlarda açıkça öngörülmesi.
  • Bir hakkın tesisi, kullanılması veya korunması için veri işlemenin zorunlu olması.
  • Bir sözleşmenin kurulması veya ifasıyla doğrudan doğruya ilgili olması kaydıyla sözleşmenin taraflarına ait kişisel verilerin islenmesinin gerekli olması.
  • Veri sorumlusunun hukuki yükümlülüğünü yerine getirebilmesi için zorunlu olması.
  • İlgili kişinin (veri sahibi) kendisi tarafından alenileştirilmiş̧ olması.
  • Fiili imkânsızlık nedeniyle rızasını açıklayamayacak durumda bulunan veya rızasına hukuki geçerlilik tanınmayan kişinin kendisinin ya da bir başkasının hayatı veya beden bütünlüğünün korunması için zorunlu olması.
  • İlgili kişinin temel hak ve özgürlüklerine zarar vermemek kaydıyla, veri sorumlusunun meşru menfaatleri için veri işlenmesinin zorunlu olması.
  • Sağlık ve cinsel hayata ilişkin veriler dışındaki özel nitelikli kişisel veriler (kişilerin ırkı, etnik kökeni, siyasi düşüncesi, felsefi inancı, dini, mezhebi veya diğer inançları, kılık ve kıyafeti, dernek, vakıf ya da sendika üyeliği, ceza mahkûmiyeti ve güvenlik tedbirleriyle ilgili verileri ile biyometrik ve genetik verileri) açısından işlemenin kanunlarda öngörülmesi.
  • Sağlık ve cinsel hayata ilişkin veriler açısından kamu sağlığının korunması, koruyucu hekimlik, tıbbı teşhis, tedavi ve bakım hizmetlerinin yürütülmesi, sağlık hizmetleri ile finansmanının planlanması ve yönetimi amacıyla, sır saklama yükümlülüğü altında bulunan kişiler veya yetkili kurum ve kuruluşlar tarafından işlenmesi.

Veri Sahibi Hak ve Yükümlülükleri

 Veri sahibi 6698 sayılı kanunun 11. Maddesinde yazılı haklara sahiptir.

  1. a) Kişisel veri işlenip işlenmediğini öğrenme,
  2. b) Kişisel verileri işlenmişse buna ilişkin bilgi talep etme,
  3. c) Kişisel verilerin işlenme amacını ve bunların amacına uygun kullanılıp kullanılmadığını öğrenme,

ç) Yurt içinde veya yurt dışında kişisel verilerin aktarıldığı üçüncü kişileri bilme,

  1. d) Kişisel verilerin eksik veya yanlış işlenmiş olması hâlinde bunların düzeltilmesini isteme,
  2. e) 7 nci maddede öngörülen şartlar çerçevesinde kişisel verilerin silinmesini veya yok edilmesini isteme,
  3. f) (d) ve (e) bentleri uyarınca yapılan işlemlerin, kişisel verilerin aktarıldığı üçüncü kişilere bildirilmesini isteme,
  4. g) İşlenen verilerin münhasıran otomatik sistemler vasıtasıyla analiz edilmesi suretiyle kişinin kendisi aleyhine bir sonucun ortaya çıkmasına itiraz etme,

ğ) Kişisel verilerin kanuna aykırı olarak işlenmesi sebebiyle zarara uğraması hâlinde zararın giderilmesini talep etme,

Talep ve Başvuru

Yukarıda belirtilen tüm haklarınızı kullanmak için başvuru formunu ve kullanmak istediğiniz hakka ilişkin açıklamalarınızı içeren metni aşağıdaki yöntemlerden birini kullanarak veri sorumlusu olarak KUTBU’ya gönderebilirsiniz.

  • Fulya Mahallesi Büyükdere Caddesi No:74/D İç Kapı No: 10, 34394 Şişli/İstanbul adresine kimliğinizi tespit edici belgeler ile talebinizi içeren ıslak imzalı dilekçe ile yazılı olarak iletebilirsiniz.
  • merhaba@kutbu.com adresine şahsınıza ait mail adresi üzerinden kimliğinizi tespit edici belgeler ile talebinizi iletebilirsiniz.

Talebiniz bize ulaştıktan sonra 30 gün içerisinde sizlere burada belirtilen kanallardan geri dönüş yapılarak bilgilendirme yapılacaktır.

Kişisel Verileri Koruma Kurumu tarafından getirilecek yeni düzenlemeler kapsamında gelecekte vuku bulacak tüm gelişmelere göre aydınlatma metnin de değişiklik yapma hakkımız saklıdır.

İşbu metin www.kutbu.com adresinde yayınlanmakla 6698 sayılı Kişisel Verilerin Korunması Kanunu kapsamında tarafınıza aydınlatma yükümlülüğü yerine getirilmiştir.

YUKARI