2011-07-08 28 views
2

我們已經構建了一個使用普通Coldfusion 9(提供HTML內容)和Java(後端工作並連接到WebServices)的webapp。我們預計每天約有50 000名訪問者,每分鐘最多200個請求。生產服務器在Windows上運行。 問題是我們因爲痛苦的CF代碼而感到厭倦和憤怒。Coldfusion to Rails遷移,Java代碼不變

我們的想法是用Ruby on Rails替換CF層。 Java方面應該保持不變,因爲它寫得很好,可靠,快速並且覆蓋了自動化測試。

所以我的問題是:你會如何解決這個問題的細節?

  1. JRuby是唯一的選擇嗎?
  2. 將調用我們的jar打包Java代碼仍然足夠快?
  3. Linux需要與切換到Rails? (我不喜歡Windows上的Rails)
  4. 可擴展性如何?你是否建議Sinatra處理我們的流量?
  5. 是否可以將此配置放入雲中?

在此先感謝

+0

我覺得http模塊'乘客'的流行選擇之一不支持Windows環境。 – user482594

+1

你能解釋一下你的痛苦的CF代碼是什麼嗎?也許問題不在於ColdFusion,而在於如何在其中開發應用程序。 – 2011-07-08 20:46:56

+0

沒有使用框架,所以sqls與html代碼混合在一起。沒有MVC,沒有OOP。我們一直在考慮重新編寫CF層,但這也是改變技術的好時機。我們都知道並喜歡Rails,所以這是我們首先想到的。 –

回答

0

是JRuby的唯一的選擇?

不要說絕對! :) JRuby具有能夠像CF那樣調用Java庫的好處,但它仍然是一個新興的平臺,儘管它在JVM上具有很大的潛力。

將調用我們的jar打包Java 代碼仍然足夠快?

如果您仍然要使用JVM語言(如CF或JRuby)運行,那麼我會說是。

是否需要Linux以及將 切換到Rails? (我不喜歡 的Windows Rails)的

Linux是不需要的JRuby(見here) - 記住JRuby是隻是一個JVM語言和JVM的好處是平臺獨立性。如果你打算使用普通的Rails,我會推薦到Linux上去 - 我曾嘗試過在Windows上使用Rails,但它不太好。根據Rails教程等閱讀的所有內容將假定Linux有利。

可擴展性如何?您是否建議Sinatra處理我們的 流量?

Sinatra是一個非常瘦身的框架,基本上使用簡單的正則表達式路由規則。我會將它用於小型項目,但對於可能增長的生產應用程序,則不會。您最好獲得Rails的組織優勢。

是否可以將此 配置放入雲中?

believe引擎工廠JRuby託管。 Heroku做Rails PaaS託管。如果您使用JRuby或從JRuby調用Java,Heroku可能不太適合,但對於普通的Rails應用程序來說,它非常酷。

正如其他人指出的 - CF不是問題,問題在於你的應用程序是如何編寫和組織的。記住,你也可以編寫垃圾Rails代碼。

所有這一切都可以幫助你做出決定。

+0

感謝您的所有答案。它確實爲我們澄清了選擇。 我們嘗試使用JRuby上的Rails來訪問Cucumber,ActiveRecord和其他寶石的美妙世界,但如果我們在性能測試中失敗,我們將切換到CFwheels。 –

+0

JRuby應該能夠很好地處理負載。我建議在啓用多線程模式的配置中將最小和最大運行時間設置爲1,並且Rails會飛! –

4

如果你願意,你應該給車輪上的框架ColdFusion的一個嘗試。它非常受Rails的啓發,您可以輕鬆地將當前的應用程序放入框架,然後將其緩慢轉換爲MVC。

瞧瞧吧:http://cfwheels.org/

+2

+1 - 由於某人執行不力,你應該不會責怪一種語言。像大多數人一樣,我知道數十種語言,CF是迄今爲止最強大的語言之一 - 這也使得它在缺乏經驗的人手中變得危險。嘗試一個月,你會愛上它。 – Nate

+0

我們的團隊成員之一已經嘗試了CFWheels一段時間,但他的經驗並不那麼好。我們很想念Rails Cucumber和ActiveRecord技巧。 CFWheels對我們的應用程序看起來很有前途,但它當然不具備Rails的強大功能。 感謝您對我們糟糕實施的評論。我應該提到我接管了現有的CF項目。 –

+0

耶! [Cucumber](http://cukes.info/)可以在Rails之外使用! (http://jamieonsoftware.com/journal/2011/1/2/high-level-testing-php-applications-with-cucumber.html) –

1

我同意Ciaran Archer的大部分想法,並將指出一個項目,我將Spring應用程序逐步轉換爲Rails。你將不得不用你的想象力來弄清楚如何將亂七八糟的CF視圖轉換爲Rails,但你至少可以看看你如何在Rails環境中使用你的Java後端。

https://github.com/nicksieger/refactoring-to-rails