HeroKu 的架構設計

jopen 10年前發布 | 54K 次閱讀 HeroKu Ruby開發

HeroKu ,提供 Ruby 快速部署環境并提供托管能力,他們的架構圖做得十分漂亮,一幅圖勝過千言萬語,要是對 Web 架構感興趣,都別問架構師了,看看 HeroKu 的架構估計就明白個差不多了

 

概覽圖

好的架構圖是畫出來的,好的架構未必是設計出來的,最后架構好不好,還要看持續的改進能力。

 HeroKu 的架構設計

HTTP 反向代理

使用 Nginx , 這一層只進行 HTTP-level 的處理。Nginx 現在是不二選擇。

 HeroKu 的架構設計

HTTP Cache

對于靜態內容,使用 Varnish 進行緩存。如果你在 Squid 和 Varnish 之間作選擇,這里已經投了一票。

 HeroKu 的架構設計

路由網(Routing Mesh)

Erlang 實現的架構組件,路由尋址,用以提升可用性和擴展性。

 HeroKu 的架構設計

動態網格(Dyno Grid)

用戶部署的代碼運行在這里,可以簡單看成是應用服務器集群環境,只是粒度更小一點而已。

 HeroKu 的架構設計

對于 Dyno Grid 的進一步信息:

 HeroKu 的架構設計

服務器操作系統是 Debian ;Ruby VM 是 MRI ,開源,C 寫的;App Server 用的Thin,他們說 Thin 比Mongrel 更精煉;Rack,應用服務器接口;Rack 中間件,可選組件;框架,任何 Rack 兼容的都成;最后是客戶托管的代碼。

數據庫

PostgreSQL,也可以采用遠程數據庫。

 HeroKu 的架構設計

Memory Cache

Memcached ,居家旅行架構必備。

 HeroKu 的架構設計

這幾張圖看下來,多少算是對 Ruby 環境有了一些感性認識。可以進一步查看 HeroKu 提供的文檔,包含了一些代碼實現上的準則。

部署是基于 Git的。不知道大家有沒有注意到 Git 在最近一年來的爆發? 超過 SVN 或許不是不可能的。

國內熱炒”云計算”的,跟人家學學吧,與其整天幫著客戶開發定制軟件,還不如給客戶提供一些彈性應用托管環境,起碼看起來靠譜一些。

HeroKu ,不讀 Hero-Ku, 讀作 Her-oh-koo, 挺有趣

 
轉載: http://dbanotes.net/arch/heroku_architecture.html
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!