Showing posts with label jboss on. Show all posts
Showing posts with label jboss on. Show all posts

Tuesday, August 28, 2007

Bizim gözümüzden açık kaynak...

Yaklaşık bir hafta süren Mersin-Ankara tatilimden yeni döndüm, gayet güzel geçen bir aile ziyaretleri silsilesinden sonra insan açıkçası kendini pek bir toplamış olarak buluyor... Annenin yemekleri, kayınvalidenin börekleri ve sonu gelmez tek yönlü kalori alışverişi... En nihayetinde ayağımın tozuyla toplulukta ne var ne yok diye RSS'lerimi karıştırırken daha önceleri de canımı sıkan ve yeniden aklıma gelen bir konu oldu ve birkaç kelimeyi bu konu ile ilgili olarak yazma ihtiyacı hissettim.. Açık kaynak uygulamalara nasıl bakıyoruz?...

Açık Kaynak mı? Muhakkak bedavadır alalım...

Başlamadan önce Açık Kaynağın ne olduğunu/olmadığını anlamamız gerekiyor. Birincisi açık kaynak bedava olmaktan öte özgürlük ile daha çok bağdaşır.Yani kod geliştirirken, dağıtırken veya kullanırken özgür olabilmek açık kaynağın getirdiği fırsatlardır. Bunun getirdiği bir sürü avantaj vardır ki, bunlar için ayrı ayrı bir sürü yazı yazılmıştır. Yani bu yazıyı okumaya devam etmeden önce kafanızdaki açık kaynak=bedava eşitliğini bir süreliğine bırakmanız veya kafanızda biraz gerilere itelemeniz gerekiyor.

Hayır!! Açık Kaynak bu şirketin kapısından içeri adım atmayacak!! Bu kadar...

Zaman zaman etrafımızda, çalıştığımız yerde görürüz, Açık kaynak öcüymüş gibi bir tavır sergilenir.Bu tavır genellikle büyük ölçekli, kurumsal şirketlerde gösterilir. Ve en temelde iki sebebi (ya da öyle olduğu söylenir) vardır. İlki, güvenlik açıklarından dem vurulur.. İkincisi, destek ve dokümantasyon olmadığından yakınılır.

Öncelikle güvenlikten bahsedelim. Güvenlik açığı heryerde olabilir. Sisteminin mükemmel işlediğini düşünen bankalarda dahi güvenlik açıkları vardır. Her programda olduğu gibi açık kaynak uygulamalarda da güvenlik açıkları vardır. Ama uygulamada geliştirme/kullanma olarak katılımcı sayısı (ki bu açık kaynak topluluğu oluyor) fazla ise güvenlik açıkları zaman içerisinde bulunmuş ve düzeltilmiş/düzeltiliyordur. Eğer bundan yana çok şüphe duyuluyorsa kodlar nasıl olsa elimizde bakabiliriz değil mi? Bu noktada sanki kapalı kaynak kodlar biraz daha güvensiz gibi duruyor (içeride ne olup bittiğini bilmememiz açısından).

Destek ve dokümantasyona gelirsek, açık kaynak uygulamalar ölçeklerine bağlı olarak ücret karşılığında destek ve dokümantasyon sağlarlar. Tabi açık kaynağı bedava olarak niteleyip, ardından "nereden çıktı bu masraf" dersek afallarız tabi... Yukarıda da belirttiğim gibi açık kaynak her zaman bedava anlamına gelmez. JBoss lisans ücreti ödemezsiniz, ama JBoss ON için CPU başına bir lisans ücreti ödemek zorundasınızdır...

Nasıl yani açık kaynak hiç mi para kazanmıyor?

Açık kaynak uygulamalar Microsoft'un aksine lisans ücreti talep etmezler, bunun yerine dokümantasyon ve destek, zaman zaman da yardımcı entegre modüller asıl para getiren kısımlardır. Bununla ilgili Matt Asay'in Open Road'daki "Why Microsoft fears open source more than other proprietary vendors do" yazısı lisanslama ve dokümantasyon/destek arasındaki farkı ve bununla ilgili Microsoft ve Açık Kaynak arasındaki görüş farklılıklarını çok güzel anlatmış. Bir göz atmakta fayda var.

Eee iyiymiş bu açık kaynak

Açık kaynak trendi özellikle Sun CEO'su Jonathan Schwartz'ın katkıları ve vizyonu ile önce OpenOffice, sonra OpenSolaris ve ardından OpenJDK ile ivme kazandı. Sun'ın bu çabasına yakın zamanda IBM de OpenOffice.org topluluğuna katıldığını açıklayarak bir anlamda destek oldu. Sonra sırası ile birçok geniş ölçekli program trend değiştirip kodlarını açma kararı aldılar. Bunun en son örneği ise VMWare oldu. RedHat Fransız Eğitim Bakanlığı ve İsveç'te büyük ölçekte bir ilaç portali olan Fass.se'nin tüm server'larını (IBM ve Solaris'ten) RedHat Linux'e geçirdi.

Biz ne yapıyoruz peki?

Bu kadar yazıdan sonra etrafımda neler olduğunu bir toparlarsam, sırasıyla aşağıdaki sonuçları çıkarabilirim.

1.Hala açık kaynak bir uygulama gördüğümüzde kalitesiz ve ucube muamelesi yapıyoruz (Ve hatta lisanslı ürünlerin web sayfalarını inceleyip, aynı ürünün açık kaynak bir şekilde yapılamayacağına kendimizi inandırıyoruz)
2.Açık kaynağın bedava olmaktan öte paylaşımcı, sürekli geliştiren ve öğretici bir topluluk olduğunu anlamakta zorlanıyoruz.
3.Biz geliştirdiğimiz uygulamaları sanki dünyada kimse yazamazmış gibi, kodları kapalı ve lisanslı satmaya çalışıyoruz. (Tamam bu biraz fazla oldu, ama öyle)

Yukarıda yazdığım sonuçlar ile kimseyi suçlamıyorum..Sadece dünyanın yöneldiği trendi hala görmemekte ısrar ediyoruz. Benim vurgulamak istediğim nokta bu.

Hmm tabi bunları söyledikten sonra şunları da ekleyeyim, OpenOffice kullanıyorum, Sun Server'lar üzerine Solaris 9 yerine OpenSolaris veya RedHat kuralım diye her fırsatta ısrar ediyorum. Firefox favorim. Eclipse'ten daha iyi bir IDE tanımıyorum. Konfigürasyon Yöneticiliğini yaptığım projenin Kaynak Kodları Subversion'da (Starteam'den geçtik) tutuluyor. Sürüm sistemi Hudson/CruiseControl ve Ant kullanılarak yapılıyor. Vesaire, vesaire, vesaire...

Monday, July 23, 2007

Performans Gözlemin Önemi

Çalışan uygulamaların ve uygulama sunucularının sürekli gözlemlenmesi gerekir. Sorunun ne zaman ve nereden geleceğini bilemeyiz, eğer biliyorsak sorun bizdedir, bu durumda "tembel ne duruyorsun? madem sorunu biliyorsun, çözsene!!!" derler, demezler mi?!?

J2EE uygulamalarının üzerinde çalıştıkları Uygulama Sunucuları, birçok özellikleri ile bu tür dikizlenmeye (monitor edilebilmenin argosu) müsaittirler. Birçok uygulama sunucusu kendi üzerinde MBean'lere sahiptir ve bu MBean'lerin remote çağrılması ile kendilerine ait bazı bilgileri çağırana iletir. Etrafımızda Uygulama Sunucusu izleme için birçok araç vardır. JConsole, JBoss ON, Tivoli ITCam, Hyperic, Applications Manager, JProfiler gibi. Bunların hepsini bilmenize veya kullanmanıza imkan yok. Ama hepsi ile ilgili kısa birer açıklama faydalı olacaktır.

JBoss ON - Uzunca hali JBoss Operation Network, adından belli JBoss için yapılmış olan bu uygulama JBoss'un CPU bazında lisans ücreti talep ettiği bir uygulama. Sadece performans monitoring değil, aynı zamanda uygulama sunucusu yönetimi de sağlıyor. Hepsi bir arada, fiyatı 30 CPU ve fazlası için yanlış hatırlamıyorsam 80,000 € civarındaydı.

JProfiler - İşte JVM'in process'ine yapışıp, hayatını sömüren uygulamalardan birisi. Sistemde acaip bir yük yaratıyor. Çok kullanışlı bulmadım. En son 5.0 versiyonunda birçok düzeltme olduğunu duydum.

Hyperic - Durum biraz daha kaliteli hale geliyor. Linux'te kendi kullanıcısını yaratıyor, Database'de şema istiyor. Ama hala yeterli değil.

Applications Manager - Kurulumu ve kullanımı çok kolay, 5 sistemi ücretsiz monitor edebiliyorsunuz, ama fazlası için para ödemeniz gerekiyor. Local'inize kuruyorsunuz, servisi başlatıyorsunuz, istediğiniz sistemi monitor edebiliyorsunuz (JBoss, Tomcat, Oracle ve hatta Linux)

JConsole - Yaklaşık 1 senedir kullanıyorum, neredeyse tüm sorunlarımı çözebiliyorum, memory leak'leri, bu leak'lere yol açan thread'leri bulabiliyorsunuz, JDK ile birlikte geliyor, sisteme yük getirmiyor. JConsole ile ilgili detaylı bir guideline ve gerçek hayat uygulamasını avantajlarını ve dezavantajlarını daha sonraki yazılarımda yazacağım.

Tivoli ITCam - Bu da IBM'in WAS'ları dikizlemek, ve üzerlerinde tam hakimiyet kurup sorunları tespit etmek için kullandığı bir ürün. 2004'te IBM ailesine katılmış. Tivoli başlı başına bir gözlem canavarı, ama bizi sadece ITCam ilgilendiriyor. Bunun kurulumunu yaptık, bununla ilgili de gözlemlerimi ilerleyen yazılarımda paylaşacağım.

Farkındaysanız, çalışan uygulamaların ve uygulama sunucularını gözlemlemek ne kadar önemli, ne kadar hassas yapılması gereken ve ne kadar sorun çözen bir işlem. Tabi memory, CPU gözlemlemek, hani derler ya "Ağaç yaşken eğilir", o hesapta taa Development'tan başlatılabiliyor. Bunun için de çeşitli IDE plugin'leri mevcut. Yukarıda listesini verdiğim gözlem araçlarının dışında tonla gözlem aracı mevcut, ben sadece deneyim yaşadıklarımı veya en azından duyduklarımı yazıyorum.