Vendoring:Go 套件管理機制的大躍進

Go 的套件管理設計哲學 在介紹 Vendoring 機制前,先來聊聊Go 的套件管理機制,也因為 Go 與其他語言在這方面有非常大的不同,也因此有以下最為人所詬病的三點: 強制規定工作目錄 $GOPATH 建議採用絕對路徑來 import 而非相對路徑 極度依賴 Git 等 VCS 版本管理工具 規定工作目錄的好處就是一致性,這當然對於編譯完的 Go 二進制檔案要做分散式部署非常方便,但相對而來的壞處就是開發者要在自己習慣的目錄下開發就比較麻煩。 »

小技巧:透過命令列發送 Github Pull-Request

當參與開源的專案一多,發送 PR (Pull-Request) 累積花費的時間是很可觀的,此時如果能透過命令列工具批次處理可以省下許多時間,在管理多個 submodule 情況下,這種技巧尤其重要。 環境設定 首先,安裝 hub。hub 是 github 推出的 git wrapper,有了它我們就可以擴充原有的 git 命令。 Mac 環境下,安裝指令是: »

撰寫一份符合需求的 Dockerfile

Docker Hub 有許多官方與非官方製作的 Docker images,這些 images 足以提供常用的功能,例如資料庫 (MySQL、MongoDB、Redis)、網路應用 (WordPress、Joomla、Jenkins、MediaWiki)、源碼版本控管 (GitLab) 等。但總有那麼一個時候,缺少符合自己需求的 image,這時候就需要自己製作一個 image。 製作 »

Consistent Hashing Algorithm: 應用情境、原理與實作範例

前言 在設計一個分散式系統 (Distributed systems) 的架構時,基於提高系統資料 (Data) 承載量的需求,我們就會需要一個機制,將資料分送給不同的服務節點 (Service nodes) 處理。在我們公司的產品:OWL Monitoring System 中,我們也有這樣的設計。我們的系統是以 Open source 的監控系統 Open-Falcon 做為基底而開發的。在此系統的設計當中, »

Prometheus 做為監控系統的優勢與限制

監控系統百家爭鳴,有 Nagios, Ganglia, Sensu,等等。Prometheus 是其中的一顆新星。 (http://prometheus.io) Prometheus 的優點: 單一模組,容易部署。 Prometheus server 只有一個模組。相較於其他有多個模組的監控系統,開了好多個 port,API 又散佈在各模組的混亂情況,Prometheus 簡明的架構有易於部署與擴展的優勢。若使用 »