Wdrożenie JRuby on Rails

Z konieczności wykorzystania paru bibliotek w Javie wybrałem JRuby + Rails do nowego projektu.
Klient nie ma środowiska JavaEE, a projekt to pojedyncza webaplikacja (bez Enterprise’owych cudów).

Zakładając, że serwer = Linux i jest dostęp do roota, jak najwydajniej wdrożyć produkcyjnie taką aplikację?

Jest sobie np. taki Tomcat. Ale hasło “reference servlet implementation” nasuwa mi skojarzenie “jestem wolny jak cholera ale robię wszystko wg. standardów”. Słusznie?
Najbardziej podoba mi się Jetty, ale tutaj też nie wiem czy warto przed nim postawić jeszcze Apacha/nginxa?

Z góry dzięki za jakieś podpowiedzi!

Tomcat i jetty to 2 równorzędne serwery, oba stabilne i szybkie. Generalnie jetty jest mniej rozbudowany, ale w codziennym użytkowaniu nie widzę różnicy.

Co do serwowania statycznych plików nie ma potrzeby stawiać nic z przodu. Oba serwery są wystarczająco szybkie.
http://jetty.mortbay.org/jetty5/faq/faq_s_200-General_t_apache.html
http://wiki.apache.org/tomcat/FAQ/Performance_and_Monitoring

Co do porad:

  • mimo, że jest taka możliwość to nie radzę stawiać więcej niż jednej aplikacji na danym serwerze, lepiej zrobić osobną konfiguracje dla danej aplikacji, instalujesz server, javę i aplikację na jednym koncie, w ten sposób łatwiej jest zarządzać konfiguracją
  • ja używam jettiego i po każdym wgraniu wara restartuje serwer
  • przygotuj się na zwiększone użycie ramu
  • monitoruj zużycie pamięci, jak skończy się pamięć (np. w PermGen) to Garbage collector lubi zamulić aplikację (spędziłem nie jedną noc na debugowaniu takich błędów)

P.S. Nie używałem javy do jruby więc moje doświadczenia opierają się na korzystaniu z innych frameworków niż rails

Jakbys mial jakies pytania to pisz.

To może offtopic ale Jetty wymaga bardzo niewielkich zasobów. I można się nim fajnie pobawić.

Jakiś czas temu udało mi się odpalić Jetty (chyba iJetty, jakąś okrojoną wersję) na Androidzie i podpiąć do tego proste renderowanie stronek via JRuby. Totalnie bezużyteczne ale działa :slight_smile:

GAE/J korzysta z Jetty, to chyba też nieźle świadczy :slight_smile:

A próbował ktoś może http://glassfishgem.rubyforge.org?