弦而時習之

Deis 架構分析(二)

延續上一篇的內容,這篇文章要先來討論比較好懂的 Router 部分。

首先,在 Deis 的設計裡面,基本上所有的服務都是包成一個 Image 作為 Continaer 在 CoreOS 運行的。就這點來看,其實是非常符合 Mircoservice 架構的設計。同時我們也可以很輕鬆地將這些服務獨立出來使用,這篇文章討論的 Router 除了原本的用途外,也很適合用來學習透過 etcd 部署自動化更新設定檔的環境。

Deis 的原始碼都放在一起,其中 Router 部分是裡面的一個子目錄,那麼就讓我們開始了解運行的架構吧!

Deis 架構分析(一)

最近隨著 Container 技術的成熟,以及 CoreOS 等工具的出現。開始有一些 PaaS 的工具出現,而 Deis 就是其中一個。

Deis 本身是受到 Heroku 所啟發的開源 PaaS 專案,透過 Deis 可以輕鬆的建構 Heroku-like 的 PaaS 環境,若是有能夠管理伺服器的人員,其實可以考慮以這種方式部屬網站。相對 Heroku 來說,基本的 CoreOS Cluster 只要三台機器,以 Linode 2GB 的方案來看,甚至還比 Heroku 單個 2x dyno 還便宜呢!

關於 Deis 的架構,在官方的文件已經有做出說明,所以這系列的文章著重在閱讀原始碼以及探討關於 Deis 是如何實踐 Heroku-like 的 PaaS 環境。

我本身是 Heroku 的重度使用者,因為透過 git 管理以及豐富的 Addon 在開發時其實是非常方便的。 不過有時候還是會受到一些限制,這時候 Deis 就提供了很大的幫助。不過這類 PaaS 工具其實還不能說非常成熟,使用上還是會有不少問題,透過了解底層的機制來建構一個自己的版本,在某些情境反而更加容易控制跟維護。