閃購網站Gilt從Rails遷移到Scala

banq發表於2014-05-18


閃購網站Gilt.com是一個新生的電子商務模式,其特點是在幾秒鐘內流量爆棚100倍,每天大概持續15分鐘,這家網站的首席架構師Eric Bowman談了如何從Ruby On Rails遷移到Scala的感受,大意如下:

flash-sales這種快閃記憶體銷售模式決定了必須建立一個能夠支援這種突然爆發的系統。我們的解決方案是基於分散式架構開發數百個Scala微服務。

我們不會認為開始使用Rails是範了一個錯誤,畢竟Rails是非常棒的,使我們能夠靈活地快速發展,但是後來我們又不得不使用Play框架再做一遍,因為Play框架更易於擴充套件伸縮。

從 2009到2011 Gilt增長得非常快速,因此我們不得不擴充套件我們的系統,開始使用Java,但是它逐步增長成鐵板一塊的整體式(monolithic)系統,我們的程式碼越來越難於維護和擴充套件,從效能和可擴充套件性兩個方面看我們還是必須工作在JVM上,2011年採取了Scala,我們不斷從其靈活簡單中受益,也得益於Typesafe的Reactive平臺如Play Framework, Akka 和 sbt.

微服務在很多方面對Gilt產生了好處,起初的Rails應用也是一種鐵板一塊整體式monolithic系統,這種系統架構引入了複雜的依賴,意味著很長的測試迴圈和不可預期的效能影響,而使用微服務,我們能在不相干的服務之間實現隔離,保持我們的儘可能簡單快速.它也開創了團隊內部端對端的品質開發質量,這不僅能夠更加明確責任(一個微服務一個人開發),而且讓開發者更加輕鬆開心,他們看得到他們的工作成果,會很有成就感(整體式系統則是自己開發的一個功能需要和別人協調確認,不能立即會有成就感)。

最後,Eric Bowman談到了從RoR等開源專案上受益匪淺。

[該貼被banq於2014-05-18 10:09修改過]

相關文章