閃購網站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修改過]
相關文章
- 從 Nginx 遷移到 Envoy ProxyNginx
- 從 golang flag 遷移到 cmdrGolang
- 使用DynamoShake從dynamodb遷移到mongodbMongoDB
- 從mpvue遷移到uni-appVueAPP
- [譯]從 SQLite 逐步遷移到 RoomSQLiteOOM
- [譯] 從 SQLite 逐步遷移到 RoomSQLiteOOM
- EF Core從TPH遷移到TPT
- Gradle指南之從Groovy遷移到KotlinGradleKotlin
- 輕鬆實現織夢網站資料遷移到新站點網站
- Spring Boot 從1.5遷移到2.0.5 - DZone JavaSpring BootJava
- 從eclipse遷移到idea(1 安裝篇)EclipseIdea
- 案例:微服務從Java/SpringBoot遷移到Golang微服務JavaSpring BootGolang
- 如何從 AWS CodeCommit 遷移到極狐GitLab?MITGitlab
- 從Firebase+Redis遷移到PlanetScale+MySQLRedisMySql
- Android技術棧(一)從Activity遷移到FragmentAndroidFragment
- 從eclipse遷移到idea(2 使用習慣篇)EclipseIdea
- 從過時的 Windows 機器遷移到 LinuxWindowsLinux
- 從RabbitMQ平滑遷移到RocketMQ技術實戰MQ
- 記錄從vuecli打包庫遷移到rollup打包Vue
- 從 CRUD 遷移到事件溯源的祕訣 - eventstore事件
- 從 Newtonsoft.Json 遷移到 System.Text.JsonJSON
- 對於網站搭建開發的小白科普貼:如何專業的把 WordPress 網站遷移到新主機網站
- 網站遷移到香港伺服器上對SEO方面有何影響呢?網站伺服器
- svn 遷移到gitGit
- 將spfile從ASM裡遷移到檔案系統ASM
- Dcat Admin 教程 - 如何從 Laravel admin 遷移到 dcat admin?Laravel
- 如何從阿里雲ECS遷移到AWS EC2?阿里
- 如何平穩地從nacos遷移到r-nacos?
- 平安科技從 Oracle 遷移到 UbiSQL 的實踐OracleSQL
- 為何我們前端從Vue 2遷移到Svelte?前端Vue
- 從單體遷移到微服務的十二種方法微服務
- 如何從 vue-element-admin 遷移到 Fantastic-adminVueAST
- 【遷移】SqlServer 遷移到 MySQL 方法ServerMySql
- 十年老站長心聲:我為什麼選擇把 Hexo 網站遷移到 WebifyHexo網站Web
- WSL遷移到其他磁碟
- 從Rails到Clojure再到Java,最後回到RailsAIJava
- 從 webpack v1 遷移到 webpack v2 新特性Web
- 如何從複雜單體應用快速遷移到微服務?微服務
- 從Hive遷移到SparkSQL,有讚的大資料實踐HiveSparkSQL大資料