閃購網站Gilt從Rails遷移到Scala
閃購網站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修改過]
相關文章
- 閃購網站Gilt欲2.5億美元出售:估值最高達11億美元網站
- 為什麼我們要從 NodeJS 遷移到 Ruby on RailsNodeJSAI
- 如何讓網站不下線而從 Redis 2 遷移到 Redis 3網站Redis
- 從Perforce遷移到GitGit
- PCH收購美國閃購網站Fab.com網站
- 從 golang flag 遷移到 cmdrGolang
- 從 Nginx 遷移到 Envoy ProxyNginx
- [譯]從 SQLite 逐步遷移到 RoomSQLiteOOM
- 從mpvue遷移到uni-appVueAPP
- EF Core從TPH遷移到TPT
- [譯] 從 SQLite 逐步遷移到 RoomSQLiteOOM
- Linode從Xen遷移到KVM
- 將表 從mysql 遷移到oracleMySqlOracle
- Azure VM從ASM遷移到ARM(二)ASM
- Azure VM從ASM遷移到ARM(一)ASM
- PayPal從Java遷移到Node.jsJavaNode.js
- 從SpringMVC遷移到SpringbootSpringMVCSpring Boot
- 輕鬆實現織夢網站資料遷移到新站點網站
- 使用DynamoShake從dynamodb遷移到mongodbMongoDB
- 從檔案系統遷移到ASM上ASM
- oralce 從檔案系統遷移到ASMASM
- 如果需要從Oracle遷移到MS SQLServer (2)OracleSQLServer
- 如果需要從Oracle遷移到MS SQLServer (1)OracleSQLServer
- 閃購網站Fab獲伊藤忠商事500萬美元投資網站
- 遷移到ASMASM
- 從 CRUD 遷移到事件溯源的祕訣 - eventstore事件
- Gradle指南之從Groovy遷移到KotlinGradleKotlin
- 從RabbitMQ平滑遷移到RocketMQ技術實戰MQ
- 記錄從vuecli打包庫遷移到rollup打包Vue
- 從Firebase+Redis遷移到PlanetScale+MySQLRedisMySql
- 我為什麼從Redux遷移到了MobxRedux
- [譯] 將現有的 API 從 REST 遷移到 GraphQLAPIREST
- 將應用程式從Sql Server遷移到OracleSQLServerOracle
- 從 PDF 表單遷移到 IBM Lotus FormsIBMORM
- 從關聯式資料庫遷移到CouchDB資料庫
- 為什麼我會從MongoDB遷移到PostgreSQLMongoDBSQL
- 對於網站搭建開發的小白科普貼:如何專業的把 WordPress 網站遷移到新主機網站
- VPC最佳實踐(六):業務如何從經典網路平滑遷移到VPC