adsense

7.05.2015

Apache Webserver, Tomcat, Weblogic... Hangisini seçelim?

Kişisel olarak uygulama geliştirdiğinizde yahut çalıştığınız kurumda bir pojeye başlamadan önce geliştirilecek uygulamanın çalışacağı platformu belirlemek aşağıdaki maddeler açısından önem taşımaktadır:


  • Uygulamanın High-available olması
  • Ortamsal bug lardan kaynaklanacak problemler için destek alınıp alınamayacağı
  • Operasyon maliyeti (operasyonel müdahale kolaylığı, sanallaştırma, çoklama, vb.)
  • Upgrade ihtiyacı durumunda upgrade kolaylığı
  • Kuruma/kişiye maddi açıdan maliyet
  • Prestij
Yukarıdaki maddeler daha da çoğaltılabilir ancak bizler uygulama sunucusu yöneticileri olarak daha çok bu konular ile ilgileniyoruz.

Gelin şimdi bir uygulama geliştirdiğimizde elimizde kabaca hangi seçenekler var onlara göz atalım:

Apache Web Server:
HTML, resim, sıkıştırılmış dosyalar gibi statik içerikleri sunacaksak sadece Apache Webserver ları kullanabiliriz. Tabi bu web sunucusunu sadece statik içerikleri barındıran bir ürün olarak tanımlamak haksızlık olur. Bunun dışında ;

  • Url_rewrite: örnek olarak /login şeklinde gelen isteği https e çevirip clear text gelen isteği secure hale çevirmek)
  • Url_redirect: Önceden http://xxx adresinde çalışan uygulamanızı artık http://yyy adresinde çalıştırıyorsanız ve bu değişikliği kullanıcıları etkilemeden, herhangi bir duyuru yapmadan devreye alıyorsanız, kullanıcıların browrser ında adresi değiştirebilirsiniz.
  • Arka taraftaki uygulama sunucularınızın güvenlik seviyesini arttırabilirsiniz.
  • Virtual_host lar yaratarak aynı ip üzerinden birden fazla port çalıştırarak aynı anda birden fazla servis hizmet verebilirsiniz.
Apache Tomcat Server:
Tomcat daha çok application server olarak bilinir ancak yaptığı iş bakımından application server'dan ziyade web container'dır. JSP/Servlet gibi içerikleri çalıştırır. Tomcat'in muadilleri diyebileceğimiz diğer application server lara göre bazı durumlar dezavantajları bulunmaktadır. En basitinden Tomcat'te tek başına clustering yapılamaz. Bunun için başka çözümler ile kombinasyon gerekmektedir. (yazının sonunda belirteceğiz).

Tomcat 3 kısımdan oluşur:
  • Coyote: Tomcat'in kendi webserver ıdır. Gelen webserver isteklerini karşılar.
  • Catalina: Dinamil içerikler (Servlet) burada çalıştırılır. Coyote'den gelen istekleri alır ve dinamik olarak Jasper'a (JSP Engine) iletir.
  • Jasper: JSP compiler.
Application Servers:
Uygulamamız yukarıda bahsettiğimizden farklı olarak basitçe EJB'lerden oluşuyorsa, JMS (Java Messaging Service) ihtiyacı varsa Application Server (özellikle de Weblogic :p ) kullanmamız gerekecektir. Application Server ların başlıca yetenekleri:
  • JMS kullanabilme
  • Clustering
  • JDBC yenetenekleri (connection test, timeout, prepared connections, statement timeout vb.9
  • JDBC Clustering (Multi Connection Pool)
  • Kesintisiz Deployment (hot deployment)
  • Gelişmiş Yönetim Ekranları
Bununla beraber Application Serverlardan bazıları açık kaynak kodlu olup ücretsizdir (Glassfish, JBoss), bazıları da ücretlidir (Weblogic, WebSphere) ve sorun durumunda destek ihtiyacı doğmaktadır.

Yukarıda yazılanların sonucu olarak ihtiyaçlarımızı önceden belirlememiz ve kullanacağımız ürünü buna göre seçmemiz gerekmektedir.
Örnek olarak Weblogic cluster yeteneği nedeni ile tercih edilirken sadece cluster ihtiyacı olan bir proje için Weblogic yerine Tomcat+Hazelcast ya da Tomcat+Terracota kullanılarak da ücretsiz bir ortam elde edilebilir. Buradaki tercih noktaları devreye alım sırası ve sonrasında support, maliyet ve operasyonel know-how olmaktadır.




1 yorum:

  1. 1. Sadece tomcat kullanılıyor ise muhtemelen tomcat+spring kullanılıyordur.

    2. tomcat+spring yerine tomee+cdi da kullanılabilir.

    3. Weblogic, Websphere, jboss içinden distributed caching çözümü çıkar. Uygulama sunucuları clustering için gerekli olan session replication işlemini bu distributed caching çözümüne yıkarlar. İki tür session bilgisi bulunur: i) http session ii) stateful session bean.

    4. JBoss AS ücretsiz ve açık kaynak kodlu, JBoss EAP ise ücretli ve açık kaynak kodludur.

    YanıtlaSil