Witam. Szykuje pewna aplikacje która ma docelowo środowiska windows (windows 2003 SBS). Z tego co się orientuję implementacja (VM) ruby dla windows nie należy do najlepszych(jeżeli chodzi o prędkość). Dotychczas projekt był hostowany na serwerze glassfish (jvm) w kontenerze jruby. Jednak zamierzam przeportowanie projektu na implementacje natywna ruby. I tu moja prośba o sugestie i podpowiedzi. Za pomocą jakich narzędzi przygotować produkcyjną wersję aplikacji rails hostowanego na win32. Myślę wykorzystaniu apache 2.2 + jakiś mod_ruby (??) + automat do deploy-owania.
mod_ruby to stary projekt, którego dziś już chyba nikt nie rozwija. Phusion Passenger aka mod_passenger nie działa za to pod Windowsem, więc z wykorzystaniem Apache’a raczej krucho. Chociaż można spróbować z jakimiś, nie wiem, klastrami mongreli.
NIe robilem jeszcze testów. Ale zastanawiam się czy dla aplikacji mającej tylko 15 szkodników i dodatkowo 70 czasu procesora do operacje select z mysql + serializacja wyników do amf nie wystrarczy fastCGI + apache. Obecnie aplikacja jest napisana na jruby 1.4 a produkcyjnie uruchaminana planowana była za pomoca glassfish 3 + kontener jruby. A może to wystarczy,
Jeżeli tylko się da, to lepiej postawić w takim razie małą farmę mongreli/thinów (serwerów aplikacyjnych) i apache robić mógłby wtedy za proxy do nich.
Zrobie tego testy
Jeśli musi być windows, zostań przy JRuby w kontenerze javowym. Inne rozwiązania na windows nie osiągają takiej stabilności.
I takie rozwiązanie jest prostsze (bo działa). Tylko zastanawiałem się czy nie osiągnę większej wydajności przez zastosowanie implementacji ruby napisanego w C niż w java. Druga kwestia to ilość pamięci ram. Glassfish + jruby lubi ram.
Na Windows? Nie osiągniesz. Ruby jest pisany z myślą o systemach które są systemami uniksowymi (czytaj: Linux, BSD, MacOS X). Na Windows działa parszywie bo musi sobie emulować połowę Unixa przy pomocy MinGW. JRuby jest najwydajniejszą implementacją języka pod Windows i prędko się to nie zmieni.
Wydaje mi się że odpowiedź jest już gotowa. Najlepiej zrobić to za pomocą jruby.
Dziękuje wszystkim za pomoc i podpowiedzi