/ java

Rails uygulamalarını JVM ortamına taşımak

Ruby on Rails ile yazdığınız bir uygulamayı daha performanslı kullanmak istiyorsunuz ve JVM üzerinde çalıştırmak istediniz. O halde tam size göre bir yazı.

Ruby ile JVM ne alaka diyorsanız sizi JRuby ile tanıştırayım. JRuby sayesinde Ruby syntax’ı ile JVM üzerinde çalışabilen uygulamalar yazabilirsiniz. Bir kaç değişiklik ile hiç bir kodunuzu (native uygulamaları kullandığınız kodlar hariç) değiştirmeden geçiş yapmanız mümkün. Buradan JRuby ve Ruby’nin benchmark testini görebilirsiniz.

JRuby yalnızca C diliyle yazılmış native  (örn: RMagick ve Unicorn gibi) uygulamaları desteklemez. Ancak JVM üzerinde çalışan uygulama alternatiflerini kullanabiliriniz. Bu sayfada JRuby ile kullanabileceğiniz uygulamaların alternatifleri yer alıyor.

Şimdi yükleme adımlarına geçelim. Daha önce bir yazımızda da bahsettiğimiz RVM‘yi burada da kullanacağız. JRuby’nin son sürümünü kuruyoruz. (Şubat 2016’da 9.0.4.0 sürümüydü)

rvm install jruby

Yüklenen versiyon hangisiyse ruby versiyonumuzu ayarlıyoruz.

rvm use jruby-9.0.4.0

Şimdi Ruby versiyonumuzu kontrol ediyoruz.

ruby -v

Her şey yolundaysa Rails projemizin Gemfile dosyasını açalım. İçinde native uygulamaları varsa siliyoruz çünkü çalıştırmaya çalışırsak hata verecektir. Yalnızca Ruby diliyle yazılmış ya da Java uygulamaları çalıştırabiliriz.

Mesela ‘mysql2’ adında bir native uygulama var. sayfadaki listeden alternatifini buluyoruz. Bize bunun yerine ‘activerecord-jdbcmysql-adapter’ kullanmamız gerektiğini söylüyor.

gem 'activerecord-jdbcmysql-adapter

Şimdi JRuby’e bundler’ı kuruyoruz ve çalıştırıyoruz. Ardından server’ı başlatıyoruz.

jruby -S gem install bundler
jruby -S bundle install
jruby -S rails -s

Development aşamasında bize gerekenler bunlar. Eğer production için kullanmak istersek bu sayfada kullanabileceğimiz server seçenekleri hakkında detaylı bilgi verilmiş.

Yazı eksik/hatalı olabilir yorum yapmaktan çekinmeyin mutluluk duyarım.