HeroKu 的架構設計
HeroKu ,提供 Ruby 快速部署環境并提供托管能力,他們的架構圖做得十分漂亮,一幅圖勝過千言萬語,要是對 Web 架構感興趣,都別問架構師了,看看 HeroKu 的架構估計就明白個差不多了
概覽圖
好的架構圖是畫出來的,好的架構未必是設計出來的,最后架構好不好,還要看持續的改進能力。
HTTP 反向代理
使用 Nginx , 這一層只進行 HTTP-level 的處理。Nginx 現在是不二選擇。
HTTP Cache
對于靜態內容,使用 Varnish 進行緩存。如果你在 Squid 和 Varnish 之間作選擇,這里已經投了一票。
路由網(Routing Mesh)
用 Erlang 實現的架構組件,路由尋址,用以提升可用性和擴展性。
動態網格(Dyno Grid)
用戶部署的代碼運行在這里,可以簡單看成是應用服務器集群環境,只是粒度更小一點而已。
對于 Dyno Grid 的進一步信息:
服務器操作系統是 Debian ;Ruby VM 是 MRI ,開源,C 寫的;App Server 用的Thin,他們說 Thin 比Mongrel 更精煉;Rack,應用服務器接口;Rack 中間件,可選組件;框架,任何 Rack 兼容的都成;最后是客戶托管的代碼。
數據庫
PostgreSQL,也可以采用遠程數據庫。
Memory Cache
Memcached ,居家旅行架構必備。
這幾張圖看下來,多少算是對 Ruby 環境有了一些感性認識。可以進一步查看 HeroKu 提供的文檔,包含了一些代碼實現上的準則。
部署是基于 Git的。不知道大家有沒有注意到 Git 在最近一年來的爆發? 超過 SVN 或許不是不可能的。
國內熱炒”云計算”的,跟人家學學吧,與其整天幫著客戶開發定制軟件,還不如給客戶提供一些彈性應用托管環境,起碼看起來靠譜一些。
HeroKu ,不讀 Hero-Ku, 讀作 Her-oh-koo, 挺有趣