Hello! How can we help you? Send us an email if you have any questions, ideas, or business inquiries.
Search:
Follow Us
Geçmişte Hudson, Günümüzde Jenkins
Jenkinse dair tüm özellikler
Date: 11-Mar-2021
Category: DevOps Jenkins Continuous Integration Continuous Delivery
Date: 11-Mar-2021
Category: DevOps Jenkins Continuous Integration Continuous Delivery
Jenkins Nedir, Geçmişten Günümüze Özellikleri Nelerdir - kloia Blog
Bu yazımızda size Jenkins’in geçmişten günümüze nasıl evrildiğini ve 2016 Nisan ayında major release olan Jenkins 2.0’dan bahsedeceğim.
Hikayemiz 2005 yılında Sun MicroSystems’de çalışan Kohsuke Kawaguchi’nin Hudson isimli bir CI (Continous Integration) yazmasıyla başlıyor. Proje Sun MicroSystem’in bir alt projesi olarak hayata geçiyor. Ve proje geliştirildikçe popülerliği iyice artıyor. 2008 yılında JavaOne’da ayrıca bir ödüle layık görülüyor.
Oracle 2009 yılında Sun MicroSystems’i satın aldıktan sonra, projenin yönetimi de Oracle’a geçmiş oluyor. Projenin yönetimi Oracle’a geçtikten sonra, Oracle ile projeye sürekli katkıda bulunan developerlar arasında anlaşmazlıklar çıkıyor. Oracle “Hudson” projesini ticari bir marka haline getirmek istiyor ve bunu uygulama koyuyor. Bu sırada tartışmalar iyice alevleniyor, açık kaynak kodlu bir projenin ve buna gönüllü olarak destek veren yazılımcılar projenin bu şekile devam etmesini istemiyorlar.
11 Ocak 2011’de, Hudson’ın geliştiricileri, Hudson’ın bir kopyasını (fork) alarak, Jenkins adı altında projeyi geliştirmeye başlıyorlar. Oracle bu sırada, Jenkins’in Hudson’dan daha yavaş ilerleyeceğini açıklıyor. Ancak Jenkinsin geliştiricileri bu konuda tam tersi şekilde düşünüyorlar. Ve zaman içinde ortalama gün başına commit sayısı Jenkins’te çok daha fazla olmaya başlıyor. Aynı şekilde, popülerlik olarakta Jenkins Hudson’ı geçiyor.
Şu an 410 contributoru bulunan Jenkins, aktif olarak geliştirilmeye devam ediyor. Ve Hudson ile başlayan bu hikayemiz 10 yıl aradan sonra ilk major releaseini yaptı. Bir çok yenilik gördüğümüz 2.x versiyonundan bahsedelim kısaca.
Jenkins 2.0 Yenilikleri:
Pipeline Özelliği
Jenkins 2.0 ile projeniz ile ilgili test,build etme, deploy gibi işlemleri bir pipeline olarak tanımlayabilirsiniz. Böylece projenizin tüm süreçlerini baştan sonra Jenkins üzerinden takip edebilirsiniz.
İstediğimiz branchler için pipeline özelliğini aktif ediyoruz. Ve commit yaptıktan sonra projemizin hangi aşamalardan geçtiğini, bu aşamaların sonuçlarının başarılı/başarısız olduğunu gözlemleyebiliyoruz. Burada şöyle bir soru gelebilir aklımıza, bu pipeline’i nasıl yazacağız? Jenkins bunun için kendine özel bir DSL dili geliştirmiş, projenizin özelliklerine ve ihtiyaçlarınıza göre kendi Jenkins File’nizi yazıyorsunuz.
Daha Kullanışlı Bir Jenkins 2.0
Jenkins’in temelden beri en önemli özelliği plugin (eklenti) desteği sağlaması. Jenkins kullanıcıların plugin yazmalarını sağlayan bir api sunuyor. Böylece dışarıdaki yazılımcılar, ihtiyaçlarına göre veya genel ihtiyaca göre pluginler yazabiliyor. Örneğin, her buildden sonra log dosyalarınızı Amazon S3’e atmak istiyorsunuz, bunun ihtiyaç için illa birileri plugin yazmış oluyor ve sizde kendi Jenkins’inizde bunu kullanabiliyorsunuz.
Piyasada, iyi-kötü binlerce plugin bulunmakta. Ve probleminizi çözen bir çok plugin olabiliyor, ve hangi pluginin daha iyi olduğu konusunda kararsız kalabiliyorsunuz. İşte Jenkins 2.0 ile, Jenkins en çok kullanılan, sevilen ve kullanışlı pluginleri size öneriyor.
Multi-Configuration Projects
Bu özellik benimde Jenkins 1.6’da çokca yaşadığım bir problemdi ve 2.0’da çözülmesine çok sevindim diyebilirim. Problemi şöyle açıklayabiliriz, projemi birden fazla environmentta test etmek istiyorum, örneğin Java 6-7-8’de ve farklı Java dağıtımlarında ( IBM,Oracle, OpenJDK) da build etmek istiyorum. Aslında baktığınız zaman bu buildlerin hepsinin konfigurasyonu aynı sadece JDK versiyonu ve dağıtımı farklı. Böyle olduğu zaman Jenkins 1.6’da her bir kombinasyon için farklı bir build oluşturmanız gerekiyordu. Ancak 2.0 ile, tek bir build oluşturup, build içerisinde bir konfigurasyon matrisi oluşturabiliyorsunuz. Böylece, Jenkins ekranında yüzlerce build yerine, kategoriler halinde buildler gözüküyor.
Diğer Jenkins Özellikleri
Jenkins 1.x de olan her özelliği 2.0’da kullanabiliyorsunuz. Bundan dolayı 2.0’a geçmek çok sancılı olmayacak gibi duruyor. Peki Jenkins’te neler yapabilirim bunlardan bahsetmek gerekirse:
Projelerinizi istediğiniz Docker imajları içerisinde build edebilirsiniz ( Docker Plugin)
Jenkins’e kendi sunucularınızı slave olarak tanıtıp, buildlerinizi o makinelerde yapabilirsiniz. ( windows makine tanıtmak mümkün)
Buildleriniz fail ettiği zaman, kendinize mail gelmesini sağlayabilir, Slack’e bildirim gitmesini ayarlayabilirsiniz.
Aws pluginleri ile, AWS servislerini kolayca kullanabilirsiniz.
Pull Request builder ile, BitBucket yada Github kullanıyorsanız, pull request geldiği zaman otomatik build edebilirsiniz.
Projenizde her commit geldiği zaman otomatik buildi ayarlayabilirsiniz.
Ve daha aklıma gelmeyen yüzlerce plugin ve özellik…
Share:
Bilal Yaşar
Devops & Kubernetes Addict
Recent Posts
Using Amazon’s Kuber...
Using Kubernetes on Public Clo...
Way to Microservices...
Imagine a system having N serv...
Run Amazon ECS Anywh...
Amazon ECS (Elastic Container ...
Selenium 4.0 Release...
Selenium 4.0 is officially rel...
The Series of Fortun...
Something has clearly changed ...
Categories
DevOps (16)
Kubernetes (16)
AWS (11)
Test Automation (11)
Cucumber (8)
Software Testing (8)
Docker (7)
Karate (5)
Selenium (5)
Dotnet (4)
API Testing (3)
Cloud (3)
EKS (3)
Jenkins (3)
k8s (3)
microservices (3)
rancher (3)
APM (2)
Agile (2)
Amazon (2)
Appium (2)
BDD (2)
Behavior Driven Development (2)
CloudBees (2)
Development Environment (2)
Dotnet Core (2)
Experitest (2)
Gherkin (2)
HPA (2)
Quality Assurance (2)
Remote (2)
Ruby (2)
Trunk Based Development (2)
VSCode (2)
cloudflare (2)
cross browser testing (2)
debugging (2)
digitaltransition (2)
mobile testing (2)
.NET 5.0 (1)
.NET Core (1)
AWS App Runner (1)
Adaptive Branching (1)
Amazon ECS (1)
CNCF (1)
Capybara (1)
CloudTrail (1)
CloudWatch (1)
Cloudformation (1)
Continuous Delivery (1)
Continuous Integration (1)
Contract Testing (1)
DevOps as a Service (1)
DevOpsDAys (1)
EKS Distro (1)
Elastic Container Service (1)
Feature Branching (1)
Git (1)
Google (1)
Google Cloud Run (1)
HashiCorp (1)
Microservice (1)
WebDriver (1)
bot mitigation (1)
cloudflare workers (1)
cqrs (1)
dojo (1)
dotnet 5.0 (1)
eventsourcing (1)
gatling (1)
graphQL (1)
hazelcast (1)
instana (1)
java (1)
junit (1)
lambda (1)
log (1)
logging (1)
microsoft (1)
monitoring (1)
newfeature (1)
newversion (1)
openshift (1)
scrum (1)
scrumorg (1)
secret management (1)
security (1)
serverless (1)
sre (1)
trunk (1)
unittesting (1)
unseal methods (1)
v1.18 (1)
vault (1)
workanywhere (1)
See all
Subscribe to our newsletter
Kloia is a new-era consultancy company who is an accelerator for closing the technology gap through the adoption of modern practices in Cloud, DevOps, Test Automation and Microservices.