監控服務 Gatus 系統架構

gatus proposal

今年第一場公開的演講 2022 台灣雲端大會,台灣五月開始疫情變嚴重,故延遲了一次到七月才舉辦,這次帶給大家的是『自動化監控網站運行服務 – Gatus』,內容可以拆為兩個部分,第一部分是介紹為什麼要使用 Gatus,用來解決開發團隊哪些問題,我也整理了三大點為什麼我選擇 Gatus,另一部分就是本篇的主軸,Gatus 系統架構跟流程。

  1. 監控條件 (客製化回應)
  2. 開源專案 (Go 語言)
  3. 簡易頁面 (Status Page)

對於使用 Gatus 有興趣的朋友可以參考我之前寫的文章:『自動化監控網站運行服務 - Gatus』,本篇就不介紹怎麼使用 Gatus 了。

[Read More]

推薦自動化監控網站運行服務 - Gatus

gatus dashboard

部署服務後,怎麼明確讓團隊清楚知道服務的運行狀況,就像 GitHub 就是提供整體運行的網頁,監控常用的操作指令,像是 Git Operations, Webhooks 或 GitHub Actions 等服務狀況。讓開發者遇到問題的時候,可以即時查看現在狀態做出相對應動作。而類似這樣的線上服務很多,像是 Atlassian 的 StatuspagePingPong 等,更多免費服務可以直接參考 awesome-status-pages。而本篇要介紹一套開源軟體 Gatus,它是用 Go 語言撰寫出來的,非常輕量。

[Read More]

兩台電腦透過 croc 工具來傳送檔案 (簡單, 加密, 快速)

croc

兩台電腦之間該如何傳送檔案,其實方法有超多種的,像是 FTP 或透過 SSH 方式來傳送檔案,但是這些方法步驟都有點複雜,FTP 需要架設 FTP 服務,SSH 要學習 SCP 指令,那有沒有更好的方式從單一電腦點對點傳送檔案到另一台呢?傳送過程需要快速又要安全,本篇介紹一套用 Go 語言寫的工具叫 croc,詳細的介紹可以參考看看作者的 Blog 介紹,此工具有底下功能及優勢。

[Read More]

搶救 Terraform State 檔案

recovery the terraform state file

近期其中一個專案使用 Terraform 來管理 AWS 雲平台,初期預計只有我一個人在使用 Terraform,所以就沒有將 Backend State 放在 AWS S3 進行備份管理,這個粗心大意讓我花了大半時間來搶救 State (.tfstate) 檔案,而搶救過程也是蠻順利的,只是需要花時間用 terraform import 指令將所有的 State 狀態全部轉回來一次,當然不是每個 Resource 都可以正常運作,還是需要搭配一些修正才能全部轉換。

結論: 請使用 terraform import 指令,這是最終解法。

[Read More]

Drone 支援單機版安裝 (內附影片)

Screen Shot 2018-11-26 at 11.40.28 AM

在上週寫了『Drone 推出 1.0.0 RC1 版本』介紹,裡面提到一個很重要的改變,就是 Drone 現在支援『單機版』安裝了,你會問什麼是單機版安裝?以前不就是可以支援在單台機器把 Drone 給架設起來,那在 1.0.0 RC1 版本指的是什麼意思?在之前的版本,要完整的安裝完成 Drone,需要架設 drone server 及 drone agent,但是在 1.0 版本之後,只需要一個 drone 服務,裡面就內建了 server 及 agent,這很適合用在團隊非常小的狀況底下來快速安裝 drone,假設團隊專案很多,或者是成長很快,建議還是將 server 及 agent 分開架設,未來只需要擴充 agent 即可,底下來看看該如何架設單機版 drone。

[Read More]

[影片教學] 使用 Filter 將專案跑在特定 Drone Agent 服務

cover

Drone 是一套用 Go 語言撰寫的 CI/CD 開源專案,是由一個 Server 跟多個 Agent 所組成,Agent 上面必須安裝好 Dokcer 才可以順利測試及部署,但是團隊內會出現一個狀況,每個專案的測試及部署方式不同,有的測試需要 Agent 很多 CPU 或記憶體資源,有的小專案則不需要那麼多,但是當大專案把 agent 系統資源吃光,其他專案都跑不動了,這邊的解決方式就是再建立一台新的 Agent 服務,將需要大量資源的專案跑在該台新的 Agent,Drone 這邊有支援 filter 功能,讓開發者可以指定專案要跑在哪一台 Agent 上。底下來教大家如何設定 drone filter。

[Read More]

Drone CI/CD 系統簡介

Screen Shot 2018-01-18 at 10.21.43 AM

很高興到 GCPUG.TW 分享『Drone CI/CD 系統簡介』,會議介紹了 Drone 系統架構,這套是由 Go 語言所開發,前兩年我參加了 Drone 開源專案的開發,也貢獻了數個 Drone Plugin,去年我正式開始宣傳 Drone 的好處及優勢,以及為什麼要從 JenkinsGitLab CI 轉換到 Drone,會議大綱如下,很感謝 QNAP 提供現場直播及錄影。

[Read More]

用 Go 語言減少 node_modules 容量來加速部署

之前寫過一篇『減少 node_modules 大小來加速部署 Node.js 專案』文章,透過 Yarn 指令可以移除不必要的模組,剩下的模組佔據整個專案大部分容量,那該如何針對留下的模組來瘦身呢?這週看到 Node.js 大神 TJ 又發了一個 Go 語言專案叫做 node-prune,此專案用來移除在 node_modules 內不必要的檔案,那哪些才是不必要的檔案呢?

[Read More]

為什麼我用 Drone 取代 Jenkins 及 GitLab CI

Logo-DevOpsDays

終於有機會正式跟大家介紹為什麼我會捨棄 JenkinsGitLab CI,取而代之的是用 Go 語言寫的 Drone。今年很高興錄取台灣第一屆 DevOps Day 講師,在今年主題是『用 Drone 打造輕量級容器持續交付平台』,主要推廣這套 Drone CI/CD 工具,會議內容圍繞在 Jenkins, GitLab CI 跟 Drone 的比較。也提到為什麼我不用 Jenkins 及 GitLab CI 的幾個原因。底下整理議程大綱。


  • 為什麼選擇 Drone
  • Drone 基礎簡介
  • Drone 架構擴展
  • Drone 安裝方式
  • Drone 管理介面
  • Drone 測試部署
  • Drone 自訂套件
[Read More]

用 Go 語言打造微服務架構

今年在 ModernWeb 講『用 Go 語言打造微服務架構』,蠻開心看到底下很多 Go 開發者,希望未來能有更多公司導入 Go 語言,底下是會議大綱:


  • Microservices vs. Monolithic 差異
  • 微服務核心架構 (Go 工具專案)
  • Go 語言核心高並發
  • 為什麼選用 Go 語言
  • 微服務代價跟準備
[Read More]