個人伺服器基礎設施架構簡介

shanyue發表於2020-01-06

首先需要說一下伺服器配置,只要你的伺服器配置高於1核2G,均可使用該基礎設施來管理你的個人伺服器,你可以在服務中部署幾個應用,並且把該伺服器作為你的測試伺服器來使用。但是你的應用過多,或者QPS稍大,可以相應地加強伺服器配置。

現在來簡述下一個低配置的個人伺服器的基礎設施架構圖

docker compose architecture

Traefik

架構圖的最核心位置是 traefik,一個 Edge Router,它也是該基礎設施的重點。

伺服器內的所有應用服務,如 postgresredis 以及自己所寫的應用服務,都與 traefik 置於一個網路下,它們共同組成了一個叢集

以下是我使用它的理由

  • 熱更新配置,無需重啟
  • 自動服務發現與負載均衡
  • TLS/SSL 證書的自動生成
  • docker 的完美整合,基於 container label 的配置
  • 漂亮的 dashboard 介面

關於 traefik 可以參考文章 Traefik 簡易配置及入門

請求路由

從圖左側可以看出,請求路由分為兩大類。當然他們的路由規則都是通過 traefik 來控制

  • shanyue.tech 通過公有的域名提供公有的、可供網際網路訪問的服務。如部落格,微信公眾號開發,個人網站及後端服務等等
  • shanyue.local 通過私有的域名提供私有的、只供內部進群訪問的服務,保證安全性。如資料庫,redis等等

應用與服務

在圖右側,都是個人伺服器裡的應用,它們均是通過 docker-compose 部署。你可以在 shfshanyue/op-note:compose 中找到所有的配置檔案

只需要 docker-compose up -d 即可啟動

  • whoami: 一個用以測試的服務,測試負載均衡及路由匹配等
  • dns: 叢集內 DNS 服務,給自己的私有域名 shanyue.local 做解析
  • openvpn:與個人筆記本搭建區域網,方便訪問個人伺服器上服務以及除錯頁面
  • postgres
  • redis

本章將會講述如何部署它們以及它們的配置檔案。不過在此之前,你需要對 docker 以及 docker-compose 瞭解一些,參考以前文章

  1. docker 簡易入門
  2. docker compose 簡易入門

私有服務

shanyue.local 路由所提供的服務都是私有服務,通過 dnsmasqopenvpn 在個人筆記本上進行訪問。

監控

個人伺服器自然也需要監控,如負載,CPU,記憶體,網路,磁碟等。如果你伺服器配置較高,且中有重要應用在跑時可以使用 prometheusgrafana 搭建一套監控系統,但是作為一個輕量的個人伺服器,這樣就顯得小題大做,而且消耗極其資源。

關於該雲伺服器的 metric 可以直接在阿里雲的監控皮膚上進行檢視。但對於輕量的個人伺服器,可以使用 htopctop 兩個簡單的命令列工具來搞定

  • htop 監控程式指標
  • ctop 監控容器指標

htop
ctop

我是山月,可以加我微信 shanyue94 與我交流,備註交流。另外可以關注我的公眾號【全棧成長之路】

如果你對全棧面試,前端工程化,graphql,devops,個人伺服器運維以及微服務感興趣的話,可以關注我

相關文章