Friday, February 29, 2008

Ayın Olayları - Şubat 2008

Ayın Olayları

Aslına bakarsanız, geçen aylarda yaptığım gibi ay boyunca gözüme çarpan ve not aldığım olayları, biraz daha detaylı araştırıp yazmayacağım... Ya da durun durun yazayım... Microsoft Yahoo'ya 44,5 milyar dolar teklif etti, Yahoo reddetti, Microsoft Açık Kaynak dünyasına daha uslu olacağına kimse ile uğraşmayacağına dair söz verdi, ne gariptir bir hafta sonra Avrupa Komisyonu tarafından 1,35 milyar dolar cezaya çarptırıldı.

Evet bu ay kayda değer herhangi bir olay olmadı gibi değil mi? Microsoft, Oracle'dan örnek ala ala açgözlülüğü örnek alınca, Yahoo'ya inanılmaz bir teklif yaptı, ama kabul edilmemesi, olayın kaydadeğerliğini bir hayli azalttı. Sonrası tiyatro gibiydi.

Microsoft'un nasıl bir toplulukla uğraştığını farketmesi biraz uzun sürdü. Özür babında bir söz verdi, ama hemen ardından daha önce yaptığı hovardalık (hovardalık değil de kurnazlık diyeyim) için cüzzi!!! bir miktar ceza aldı. Yani bu ayı (sanırım kısa olduğu için bu ayı seçti) doldurmaya çalıştı...


Korkunun ecele faydası var mı ki?

Ama farkedilen bir gerçek var ki, artık Microsoft'un büyük bir korkusu var, bu korku tamamiyle dinamik bir topluluktan, bu topluluk Windows'a alternatif arıyor, Linux kuruyor, Open Solaris'i kurcalıyor.. MS Office yerine Open Office veya Lotus Symphony kullanıyor... Thunderbird ve Firefox'u, Outlook ve Internet Explorer'dan daha çok seviyor.. Evet bazılarının terimiyle "Akademik düşünüyor", ama üretmeyi düşünüyor, kendinin de bazı şeyleri üretebileceğini biliyor.. Kullandığı açık kaynaklardan dolayı, para verdiği ürünleri sorgulayabiliyor.. Orada neler olup bittiğini biliyor... Kısacası, bu topluluk kollarını sıvayıp işe koyulmayı biliyor... Ve inanın bütün bunları sadece kendisi için yapıyor.. Evet Açık Kaynak Gönüllülerinden bahsediyorum, o topluluktan, windows olmayınca hiçbirşey yapamayanlar değil, ya da MS Office olmayınca excel dosyalarını okuyamayanlar değil... Gerekirse Visio dosyalarını okumak için açık kaynak alternatifleri olanlardan...

SonSöz

Unutulmaması gereken bir nokta var ki, her tür organizasyonun her tarafında açık kaynak gönüllüsü insanlar vardır, ve bu insanlar sorgulamayı sürdürdükçe başarı daima daha yakın olacaktır..

Tuesday, February 19, 2008

Java Day'08 İstanbul

Java Day'08'deydim... Bir ay önceden planlarını yaptığım ve nihayetinde katılabildiğim eğlenceli bir etkinlik oldu... Schwartz'ın önderliğinde açık kaynak projeleri ile gönlümde yer eden Sun, güzel bir etkinliğe imza attı diyebilirim.. Her ne kadar öğle yemeğine yetişip, öğleden sonraki programı takip edebilsem de konular gayet güzeldi... Java SE 6'nın özellikleri ve SE 7 ile ilgili ipuçları, Ruby, Ruby on Rails ve JRuby, JavaFX, Java EE 5.0, GlassFish, Grizzly ve Sun SPOT ve daha birçok konu konuşuldu... Tabi güzel bir öğle yemeği ve kahve molasını (benim için sütlü çay) unutmamak lazım...

Simon Ritter, Java SE 6'nın özelliklerini ve SE 7'yi anlatırken içimdeki programcı taraf bir hayli ağır bastı ve yeniden kod yazsam diye içimden geçirdim... SE 7'de özellikle super package konusu bir hayli ilgimi çekti, özellikle compiling ve classpath sorunları ile bu kadar uğraşırken, tüm paketleri tek bir paket ile yönetmek, siz de kabul edersiniz ki büyük bir avantaj... Daha sonraki session'da Java FX ve yapabildikleri ile ilgili sunumu bir hayli etkileyici idi.. Kimbilir, belki de Java FX ile kodlamaya yeniden başlayabilirim..

Daha sonra Doris Chen, Ruby, Rails ve JRuby ile ilgili sunumunu yaptı, her ne kadar Ruby'den çok NetBeans ile ilgili olsa da, Sun'ın bu tür dil alternatiflerine (tamam kendileri scripting dili diyorlar, ama Rails (MVC) ile yapilabildiklerine bakılırsa pek scripting denmeyebilir) yer vermesi beni bir hayli şaşırttı... Daha sonraki sunumu GlassFish ile ilgili idi, ya da en azından tamamiyle GlassFish üzerine olur diye bekliyordum, tamam GlassFish'i anlattı, ama neredeyse ondan çok Java EE 5.0'in özelliklerinden ve GlassFish'in ne kadar Java EE 5.0 uyumlu olduğundan bahsetti... Uygulama sunucuları ile bu kadar haşır neşir olan ben, sanki biraz daha teknik detay duymayı bekler gibiydim...

Bu kadar laf ettikten sonra nasıl güzel bir aktivite dediğimi sorarsanız, anlatılanların hepsi açık kaynak idi, anlatılmasını beklediklerimin hepsinin açık kaynak olduğu gibi... James Gosling ile Times dergisinin Şubat sayısı kapağına çıkmam (tamamiyle düzmece, konferansa katılanlar anladılar) ve Duke'u masama koyabilmem de bu etkinliği yeterince anlamlı hale getirdi :) ...



Fakat bir kaç nokta var ki, değinmeden edemeyeceğim...

Birincisi bu tür konferanslar (özellikle açık kaynak ve teknoloji ağırlıklı olanlar) çanta, şemsiye almak için değildir. Eger onları almak isterseniz, Eminönü'nde gayet ucuz fiyata satan yerler var.

İkincisi, Java'yla ilgili herkesin, kullandıkları dili yazanların daha başka nelerle ugrastığını, kullandıkları dilin geleceği ile ilgili nasıl çalışmalar yapıldığını bilmeleri açısından bu tür konferanslara katılması muhakkak gereklidir..

Umarım 2008'de daha fazla konferans ve teknoloji etkinliklerine katılma fırsatı buluruz..

Monday, February 18, 2008

Sürekli Entegrasyon Pratikleri - I

Sürekli Entegrasyon Pratikleri - Bölüm 1

Sürekli entegrasyon kurallarını uygulayarak bir sürüm sistemi kurdu iseniz, unutmayın bu sistem dikkatle hazırlanması, yönetilmesi ve takip edilmesi gereken bir sistemdir. Daha önce bu konu ile ilgili olarak Hudson ve Ant konuları ile ilgili yazılar yazdım.. Bunların hepsi deneyimler üzerine dayanan yazılardı.



Son zamanlarda bu tür yazılar yazmaya, yeni araçları incelemeye çok fırsat bulamadım. Ama Continuous Integration: Improving Software Quality and Reducing Risk kitabını satın aldım, ve müsait olduğum zamanlarda bu kitabı okumaya ve mümkün mertebe uygulamaya çalıştım... Uygulamaya çalışma işlemini ise, uygulamak istediğim maddeleri post-it'lere yazıp, uygulayabildiklerimi bu listeden çıkarmak şeklinde yapabildim...

Belli bir sayıda post-it'i uyguladığımda ise bunları yorumlarımla birlikte burada paylaşmaya karar verdim. Bu ilk yazımda dört tane pratikten bahsedeceğim.


Pratik I - Veritabanı işlemlerini ANT JOB'ı haline getirmek

Sürekli entegrasyon sistemi içerisinde aynı zamanda Veritabanı yapılarının da taşınması söz konusudur. Yani yeni bir sürüm ile birlikte yeni kodlar, yeni veritabanı yapıları ve veriler de taşınır. Bu konuyu daha önce, hassasiyet gerektiren bir konu olmasından dolayı manuel yapıyordum. Tabi manuelden kastım, bir SQL Editor ile çalıştırmak değil tabi, komut satırından çalıştırma yöntemi ile, bir tür otomasyon vardı ama yine de manuel sayılırdı... Daha sonra farkettim ki, bu işlem hem yönetmesi zor, hem geriye dönük herhangi bir log tutulmayan bir işlem haline dönüşüyor... Tekrar edilmesinde yaşanan zorluklar ve modüler olmaması da cabası.. Hem bu işlemi manuel yapma sebebim lokasyon farklılığından dolayı idi ve bu engelin de ortadan kalktığını düşünürsek zaten bu tür bir çevirimin zamanı gelmişti...

Tabi, bu durumda sürüm esnasında manuel işlemleri de minimize etmiş oldum. Yani kısacası bu işlemi ant job'ı ile yapmak ve bunu bir de Hudson'a eklemek ileride bize çok büyük avantaj getirecek...

Pratik II - Developer'ları Sürekli Entegrasyon Konusunda Eğitmek (veya Bilgilendirmek)

Yaşadığımız en büyük sıkıntı, daha doğrusu en can sıkıcı konu, developer'ın "sürekli entegrasyon" konusuna olan uzaklığı idi.. Eğer developer, sistemi ne kadar az bilirse, o kadar sorun ile karşılaşır ve/veya soruna yol açar... Dolayısıyla, developer'ı eğitmek sorunları en aza indirebilmenin en kolay yollarından birisidir. Peki nasıl yapılır?

  • Birim içi konferans ve eğitimlerle
  • Dokümantasyon ile

Konferans veya eğitim, hem uzman olmadığım hem de zaman darlığımızın olması nedeniyle tercih edemediğimiz bir seçenek oldu. Bunun yerine Confluence üzerinde (daha önce Twiki ile hazırladığım dokümantasyonu buraya taşıyarak) bir know-how oluşturmaya çalıştım. Özellikle, ana sayfama Sürekli Entegrasyon Sistemi ile İyi Geçinmenin 7 Altın Kuralı diye de bir yazı ekledim. Continuous Integration kitabından bir bölümün çeviri ve yorumlarının olduğu bir yazı oldu.. Developer'lara en azından bu şekilde bir bilgi aktarımı yapmanın gerekli olduğuna inanıyorum...

Pratik III - Deploy edilen Artifact'ları depolamak

İlk etapta kulağa saçma gelecek, "yaa nasıl olsa sürüm scriptlerim var, subversion üzerinde gerekli ayarlamaları yapip sürümü yeniden çıkarırım" diyebilirsiniz, yapabilirsiniz de... Ama bir kere yaptıktan sonra bir daha konuşalım olur mu?.. İnanın acı verici boyutlara gelebileceği için söylüyorum... En azından benim yönettiğim sistemde bu tür bir işi yapmak bir hayli acı verici.. Projenin tek bir jar, veya war'dan oluşmadığını belirtmekte fayda var... Tabi her proje bu şekilde olacak diye bir kaide yok.. Ama işin içinde 10'dan fazla JAR, bpm dosyalari, ön yüz dosyalari (EBML), EAR, veritabanı vs. varsa, bu tür bir işlem o kadar da kolay olmuyor...

Neyse, uzun lafın kısası, bütün bu deploy edilen artifactları, deployment işleminden hemen önce ayrı klasörlerde tutarak, olası bir geri dönme işleminde nasıl davranacağımızı, ya da o sürümde neleri deploy ettiğimizi daha rahat görebiliyoruz.. Hele bu depolama işlemini yaptığımız klasörleri sürüm numarası ile isimlendirirsek, o zaman sistemin keyfine bakmaya başlayabiliriz...

Pratik IV - JAR, EAR ve Konfigürasyon dosyalarının SVN üzerinde tutulması

En sık karşılaştığım sorulardan bir tanesi "PROD ortamında JAR'ımın hangi versiyonu var?" sorusudur heralde.. Her ne kadar Developer'ın bunu öğrenmek için 343 ayrı yöntemi olsa da, sanırım bu işi sorumlu birisine sormak daha eğlenceli oluyor. Ya da "PROD ortamındaki EAR'ı alabilir miyiz?" sorusu karşısında birkaç saniye durup da "Allright, I'm on it" demektense, bu istenilen JAR, EAR ve konfigürasyon dosyalarını her ortam için ayrı ayrı SVN'e koymak, hem sistemin yedeğinin alınması, hem de bu tür durumlarda Developer'ın "self-servis" yapabilmesi açısından çok faydalı olabilir..

SonSöz

Bayılıyorum son söz yazmaya ama bu sefer herhangi bir son söz yok, çünkü bu yazı devam edecek...

Monday, February 04, 2008

Ayın Olayları - Ocak 2008

Üfff, amma hararetli bir ay geçirdik, birbirini satın alan, satın alana.. Sun MySQL'i aldı, hemen ardından Oracle BEA'yı, ardından daha küçük çapta alımlar oldu.. Tabii ben de biraz geciktim bu yazıyı yazmakta.. Aslında Cuma günü yazacaktım ama güzel bir Uludağ tatili ve herhangi bir internet bağlantısı olmadan bir haftasonu geçirdim, dolayısıyla bu yazı da Pazartesi'yi beklemek zorunda kaldı...

(16.01.2008) - Sun MySQL'i 1 milyar dolara bünyesine kattı.

Herhalde yıla bu şekilde bir başlangıç yapmayı kimse beklemiyordu. 16 Ocak'ta bu resmi yazı ile Sun Microsystems, MySQL'i bünyesine kattı. Hayatına 1995'te başlayan MySQL 2006 senesinde de Oracle tarafından bir teklif almıştı, bu konuyu Oracle tried to buy open-source MySQL yazısında bulabilirsiniz. Bu satın alma Jonathan Schwartz'ı o kadar sevindirmiş olacak ki, Helping Dolphins Fly yazısında havalara uçuyor ve ardından In a Vortex yazısında satın alımdan önce MySQL CEO'su Marten Mickos ile yediği akşam yemeklerinde, satın almayı nasıl şekillendirdiklerini anlatıyor. Sun çalışanlarından birinin, MySQL Reaction Summary - Very Positive yazısı ve MySQL'den bir blog olayların iki taraf açısından ne kadar pembe göründüğünü çok güzel anlatıyor. Aynı şekilde yapılan basın toplantısı da bir hayli neşeli ve balayı modunda geçiyor, ayrıntıları Excerpts from the Sun/MySQL press conference yazısında bulabilirsiniz.

Bu satın alma sanırım en çok açık kaynak dünyasını etkiliyor. Matt Asay, What Sun's acquisition of MySQL means for the software industry yazısında, Sun'ın bu hamlesinin açık kaynak dünyasının merkezinde bir taht sahibi olmaya çalışması olarak yorumlanabileceğini söylüyor. Bu savı destekleyen diğer yazılar ise Sun’s planned deal to acquire MySQL will strengthen its open source story ve Sun To Acquire MySQL. MySQL'in Web dünyasında kullanım yüzdesi gözönüne alındığında Sun'ın yaptığı bu hamlenin bir hayli akıllıca olduğu da söylenebilir, nitekim Sun buys MySQL for $1 billion to take centerstage in the web economy yazısında bu konu detaylandırılıyor.

Bu satışın ardından en fazla konuşulan konu ise MySQL'in değeri ve Sun'ın yaptığı kar ya da zarar idi. Aşağıdaki linklerin her biri bu konuda yapılmış güzel yorumları içeriyor.

Jboss'u satan Maison Fleury'nin güzel bir yorumu, SUN acquires MySQL for $1Gazillion
Bu satıştan ne kar edildiğini anlamadığını anlattığı bir yazı, SUN acquires MySQL, Day2
Satış değerlerini irdeleyen güzel bir makale, More thoughts on Sun & MySQL

Bunun dışında bulabileceğiniz diğer faydalı linkler...

Sun Shines on LAMP
Sun to fork out $1 billion for open-source firm MySQL
Sun Microsystems has agreed to buy MySQL AB for $1B
Sun Plunks Down $1BN For MySQL
What Red Hat missed and Sun gained in MySQL
Sun to acquire MySQL


(16.01.2008) – Oracle BEA'yı 8,5 milyar dolara satın aldı.

Aynı gün ikinci bombayı Oracle patlattı ve 8,5 milyar dolara BEA'yı satın aldığını açıkladı, açık kaynak dünyasını daha çok Sun-MySQL olayı ilgilendirse de ilerisi için Oracle'ın bu hamlesi de oldukça stratejik oldu, bu stratejiyi ve yorumları Oracle-BEA: A fight against IBM, Sun, and open source, and a nasty hairball of technology yazısı çok güzel ifade ediyor.

Matt Asay (adamım), çok ilginç bir noktaya değiniyor, Oracle'ın bu satın almasının JBoss'un download sayısını nasıl artırdığını Oracle's acquisition of BEA is a big win for JBoss/Red Hat - the downloads don't lie yazısında detaylı bir şekilde açıklıyor.

Bu konu ile ilgili diğer linkler ise;

Oracle acquires BEA for $8.5 billion
An Open Letter to BEA WebLogic Customers - From GigaSpaces
Oracle set to buy BEA for $8.5B
Oracle-BEA: It aint over till it's over
The two-horse application server race: IBM and Red Hat/JBoss


(24.01.2008) - HP FOSSology ve FOSSBazaar ile açık kaynak dünyasına girdi.

Sun'ın açık kaynak hamleleri karşısında bir hamle de HP'den geldi, FOSSology ve FOSSBazaar isimli iki ürünle açık kaynak dünyasına girdi. SourceForge'un daha önce SourceForge Marketplace ürünü ile bu konuda yatırım yapmasından sonra HP'de FOSSBazaar ile aynı türden iş yaparak rekabeti artırmayı hedefliyor. HP'nin stratejisini Proprietary take-over of open source a fairy tale yazısı gayet net bir şekilde açıklıyor, işin arkaplanını ise The story behind HP's FOSSology open-source tools yazısı anlatıyor. Tabi tereciye tere satmaya çalışmak tepkileri beraberinde getiriyor. Açık kaynak dünyasının bu tür yardımcı ellere ihtiyacı olup olmadığını sorgulayan ve HP'nin stratejisini eleştiren yorumlarda yok değil, bunlardan birisi HP tells enterprises fear the source.

Bu konuda birkaç değişik link aşağıda;

HP May Accidentally Kill Black Duck & Palamida
The Open Source Census, OSS Discovery, FOSSology and FOSSBazaar!


(29.01.2008) - SpringSource, Covalent'i aldı

Ayın son alım satım işi ise ilginç bir şekilde, iki açık kaynak şirket arasında oldu, SpringSource Apache ürünleri ile ilgili bağlantısını güçlendirmek adına Covalent'i satın aldı. Tüm hikayeyi Springsource buys Covalent in enterprise Java push yazısında bulabilirsiniz. Maison Fleury ise bu olayı iki kamyonun çarpışmasına benzettiği yazısında bu konuyu detayları ile eleştiriyor, Spring Source merges with Covalent.

Diğer yazılar...

SpringSource acquires Covalent, gains Apache support network
Some Decisions are Easy – Like SpringSource Acquiring Covalent
SpringSource Acquires Covalent
When open source eats itself: SpringSource acquires Covalent
Open-source toolmaker acquires Covalent


SonSöz

Bu ay iştahı kabarık büyük şirketlerin olumlu, ya da olumsuz, karlı ya da zararlı, açık kaynak şirketlere yönelmesi ve bir hamlede yutması ile geçti. Tek dilediğimiz bu açık kaynak şirketlerin yerlerini yenilerinin alması.. Ve gidişattan umutlu olan ben, bu döngünün gerçekleşeceğini de tahmin ediyorum..

Monday, December 31, 2007

Ayın Olayları - Aralık 2007

(06.12.2007) - SourceForge.net sitesi, açık kaynak uygulamalara servis ve destek verilebilmesi için SourceForge Marketplace adı altında yeni bir bölüm açtı

SourceForge.net Marketplace adresinden erişebileceğiz bu yeni bölüm, açık kaynağı kapsamlı kullanan projelere ücret karşılığı servis ve destek sağlayamak isteyenlere fırsat tanıyor. Yaklaşık bir senedir üzerinde çalışılan proje, açık kaynak dünyasında nasıl para kazanılabileceğini bize bir kez daha gösteriyor.. Daha önce de Collabnet'in de denediği bu servis olayında neden SourceForge.net'in daha başarılı olabileceğini O'Reilly'nin Reputation: where the personal and the participatory meet up isimli makalesinden okuyabilirsiniz. Matt Asay ise bu olayı açık kaynak dünyasına yapılan bir jest olarak gördüğünü SourceForge.net puts its commercial hat on isimli yazısında anlatıyor. Bu konu ile ilgili diğer makaleleri aşağıda bulabilirsiniz...

Sourceforge Launches Open Source Marketplace
Can Sourceforge marketplace open the cash drawer?
SourceForge Adopts eBay-like Sales Model for Open-Source Software
eBay Marketing Director Joins Open Source Company VA Software
SourceForge Opens Marketplace for Open Source Services

(10.12.2007) - RedHat, açık kaynak IDE'si olan JBoss Developer Studio'yu piyasaya sürdü

Aslında çok önemli bir olay olmasa da, RedHat'ın JBoss'u almasından sonra attıkları adımları dikkatlice takip ettiğim için yazmak istedim. Bu senenin Mart ayında Exadel ile (ki bilenler Exadel'in hünerlerini bu olayı daha farklı görecektir) yaptıkları anlaşma ile bu alanda yaptıkları çalışmanın hangi boyutlarda olduğunu hissettirmişlerdi. Sacha Labourey ile yapılan bu röportaj bu adımları daha net anlatacaktır. Neyse, nihayet JBoss Developer Studio piyasada, tabi çıkarılan ürün ile ilgili bazı tartışmalar da yok değil. Bakalım bundan sonra ne olacak? Bununla ilgili diğer haberleri aşağıda bulabilirsiniz..

Exadel and JBoss partnership

Red Hat's Open Source IDE
JBoss Tools 2 and JBoss Developer Studio released



(31.12.2007) - Son Söz

Eveet, bir seneyi de bu şekilde bitirdik, bu blogu okuyan ve okumayan herkese; "Umarım umduğunuzdan daha iyi bir yıl sizleri bekliyordur, ideallerinizi kaybetmeyin yeter"

Monday, December 17, 2007

Nihayet Websphere

Evet, uygulama sunucularımızı değiştirmeye karar vermemizden bu yana 8 ay geçti ve 5 aylık araştırma/analiz ve karar verme ve yaklaşık 3 aylık bir çalışma sonunda tüm ortamlarımızı JBoss uygulama sunucusundan, Websphere uygulama sunucusuna geçirmiş bulunuyoruz.. Geçişi planlı ve düzenli yapmaya özen gösterdik.. Ortamları Development'tan Production'a olacak şekilde geçirdik, üzerinde testler yaptık sorunları giderdik, elimizden geldiğince doküman hazırladık... Tabi, bu sürenin geçiş için biraz uzun olduğunu düşünebilirsiniz, ama uygulamamız basit bir J2EE uygulamasından öte Aurora Altyapısını kullanan çok kapsamlı bir proje, dolayısıyla geçişin kontrollü ve zamanlamasının Sürüm Sistemine uygun olmasına özen gösterildi.. Tabi bazı önemli modüllerin geçişlerinde rastlanılan, çözülmesi zaman alan problemlerden dolayı geçişi ötelemek zorunda kaldık, ama dediğim gibi nihayetinde dört ayrı ortamımızı (bir anlamda proje yaşam döngüsünün dört safhasını) Websphere uygulama sunucusuna geçirdik.

Bu geçiş esnasında JIRA'yı bir sürekli dokümantasyon sistemi olarak kullandık, sorunlar ve çözümleri mümkün mertebe buraya kaydettik. Daha sonra aynı hatalarla yeniden karşılaştığımızda burada yazan çözümler bize bir hayli yardımcı oldu.

Özellikle Jakarta Slide projesi bizi bir hayli zorladı, inanılmaz taklalar attık, ve hala bazı sorunlar yaşıyoruz.. Bunun dışında IBatis ve Hibernate kullanan uygulamalarımızda konfigürasyonel değişiklikler yapmak zorunda kaldık. Yine Quartz ve Log4j araçlarının uygulamaya entegrasyonunun yapıldığı konfigürasyon dosyalarında database'e bağlanma şekillerinde bazı değişiklikler yaptık. Aurora altyapısında çok fazla zorlukla karşılaşmadık..

Yapılan bu çalışma aslında bir bahar temizliği niteliğinde oldu, 3 senedir kullandığımız sistemi yeniden öğrenme ve mümkün yerlerde yeniden şekillendirme şansımız oldu.. Bazı kullanılmayan ve gereksiz olan modülleri temizleyip, bazı şeylerin daha da netleşmesini sağladık. Bu bize sistem üzerindeki esneklik ve hakimiyetimizi geliştirme fırsatı verdi.

Tabi çalışmamız burada bitmiyor, geçiş tamamlansa dahi, performans iyileştirme çalışmaları bitmez gibi görünüyor. Bunun dışında yapılan çalışmanın kapsamlı bir "how-to" dokümanına çevirilmesi hem bizim, hem de bu işi daha sonra yapacakların hayatlarını çok fazla kolaylıştıracaktır. Her neyse, bir açık kaynak savunucusu olarak, JBoss'tan vazgeçmek biraz zor olsa da, yazılım yaşam döngüsü içerisinde açık kaynak kullanacak çok fazla yer var, en azından uygulama sunucusu katmanını IBM'e bırakabiliriz :) ...

Monday, December 10, 2007

Hudson ve pluginleri

Sürekli Entegrasyon, gerçekten hafife alınmaması gereken bir kavram, tabi bu tür işleri yaparken hangi araç ya da araçları kullandığınız da önemli...
Geçen gün okuduğum Continuous Integration anti-patterns isimli bir makalede yazılan yapılmaması gerekenler, ya da bizi yanlışlara sürükleyen ortak hatalar listesi, kullandığım CI Server aracını yeniden takdir etmemi sağladı... Tabi ki Hudson'dan bahsediyorum. Bir CI Server'ın yapması gereken herşeyi yapmaya çalışıyor, en azından bunun için uğraşı veriliyor. Ve özellikle kendini, pluginleri ile ön plana çıkarıyor... Üzerinde düşünüldükten sonra bazı pluginler Hudson'ın içerisine konuluyor, diğerleri ise plugin olarak entegrasyonu size bırakılıyor... Peki Hudson'ı bu kadar ön plana çıkaran pluginler nelerdir?


Source Code Management Plugin'leri

CVS ve SVN Hudson'ın içerisinde geliyor. Bunun dışında pluginler ile getirdikleri Accurev [Tutorial sayfası], ClearCase [Tutorial sayfası], Mercurial [Tutorial sayfası], Perforce [Tutorial sayfası], StarTeam [Tutorial sayfası]

Repository Browser Pluginleri

FishEye ve Sventon Hudson'ın içerisinde geliyor. Bunun dışında Polarion [Tutorial Sayfası] plugini mevcut.

Job Tipleri

Halihazırda Ant, Maven, Maven 2, free-style jobları ile gelen Hudson, bunların yanında Batch Task [Tutorial Sayfası], Gant [Tutorial Sayfası], MSBuild [Tutorial Sayfası] ve NAnt [Tutorial Sayfası] pluginleri ile yapabileceği iş türlerini artırıyor.

Code Coverage Pluginleri

Clover [Tutorial Sayfası], Cobertura [Tutorial Sayfası] ve Emma [Tutorial Sayfası] pluginleri ile code coverage konusunda çeşitlilik sağlıyor.

Code Convention Pluginleri

FindBugs [Tutorial Sayfası], Task Scanner [Tutorial Sayfası] ve Violations [Tutorial Sayfası] pluginleri code convention ile ilgili tool'ları kullanıp, raporlamaları yayınlamanızda oldukça yardımcı oluyor, özellikle Violations plugini PMD ve CheckStyle gibi araçların raporlarını harmanlayıp güzel bir arayüz sağlıyor..

Notification Pluginleri

İçerisinde gelen mail notification olayını ve RSS desteğini saymazsak Google Calendar [Tutorial Sayfası], IRC Plugin [Tutorial Sayfası] ve Jabber [Tutorial Sayfası] pluginleri bilgilendirme için kullanılabiliyor

Issue Management Pluginleri

JIRA [Tutorial Sayfası] ve Trac [Tutorial Sayfası] pluginleri bu konuda yardımcı olabilir.

Testing Pluginleri

JUnit entegrasyonu içerisinde bulunan Hudson'ın diğer test pluginleri, JavaTest Report [Tutorial Sayfası] ve NUnit [Tutorial Sayfası]

Diğer Pluginler

Bu pluginlerin dışında sürüm işlemlerini geliştirmek, güçlendirmek ve daha rahat yönetmek adına bazı pluginler yapılmıştır ki bunlar bazen gerçekten çok kullanışlı olabiliyor. Bu pluginler ise Build-timeout [Tutorial Sayfası], Japex - [Tutorial Sayfası], java.net uploader [Tutorial Sayfası], Locks and Latches plugin [Tutorial Sayfası], Naginator [Tutorial Sayfası], Plot Plugin [Tutorial Sayfası], Port Allocator [Tutorial Sayfası], SCP [Tutorial Sayfası], Text-finder [Tutorial Sayfası], URL Change Trigger [Tutorial Sayfası], VMware [Tutorial Sayfası] ve Xvnc [Tutorial Sayfası]. Tabi bunların ne iş yaptığını anlamak için sayfaları dolaşmanız gerekiyor.

Üffff amma çok plugin varmış...

Peki bu kadar plugin ile nasıl başa çıkacağım mı diyorsunuz? Bunu da düşünmüş adamlar, Hudson'ı benim daha önce yazdığım bu yazıda veya daha güncel olan Hudson dokümanında belirtildiği şekilde kurduysanız, Manage Hudson > Manage Plugins dediğinizde önünüze açılacak ekranda pluginlerinizin bir listesini bulacaksınız. Bu listede Plugininizin adını, versiyonunu bulabilir, silebilir, veya yeni plugin ekleyebilirsiniz. Yeni plugin eklemek için ise Plugin Download sayfasından yüklemek istediğiniz plugini bulup indirdikten sonra (unutmayın uzantısının hpi olması gerekiyor), manage plugins sayfasında bulunan Upload Plugin kısmını kullanarak ekleyebilirsiniz. Pluginleri kullanmak için yukarıda yazdığım listede pluginin hemen yanında bulunan "Tutorial Sayfası" linkini kullanabilirsiniz.

Tutorial sayfası size yetmedi veya eksik, ya da bir sorun olduğunu düşünüyorsunuz, o zaman Hudson'ın forumlarına girip, bu konuda yapılan tartışmalara bakabilirsiniz. Umarım faydalı bir yazı olur..


Not : Pluginleri gruplandırırken kategori isimlerini ingilizce bırakmamın sebebi ise bir çevirmen olmamamdan dolayı anlamlarını kaybetmelerini istemememdir :))