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

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

Go 語言搭配 Docker Healthy Check 檢查

Screen Shot 2018-03-17 at 11.40.12 PMDocker 1.12 版本後,提供了 HEALTHCHECK 指令,通過指定的一行命令來判斷容器內的服務是否正常運作。在此之前大部分都是透過判斷程式是否 Crash 來決定容器是否存活,但是這地方有點風險的是,假設服務並非 crash,而是沒辦法退出容器,造成無法接受新的請求,這就確保容器存活。現在呢我們可以透過在 Dockerfile 內指定 HEALTHCHECK 指令來確保服務是否正常。而用 Go 語言開發的 Web 服務該如何來實現呢? Continue reading “Go 語言搭配 Docker Healthy Check 檢查”

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 提供現場直播及錄影。 Continue reading “Drone CI/CD 系統簡介”

DigitalOcean 2018 年調整價格

DO_Logo_Vertical_Blue-6321464d 很高興看到 DigitalOcean 在 2018 年推出新的 VPS 價錢方案,可以從下面這張圖看出來,記憶體幾乎都調整為兩倍方案,這已經完全追上 Linode 現在的價格了,另外 DigitalOcean 還額外推出每個月 $15 美金方案,還可以動態選擇要高 CPU (1~3) 還是高記憶體 (1G ~ 3G) 由玩家自由搭配,這方案真的是太棒了。 Continue reading “DigitalOcean 2018 年調整價格”

Caddy 搭配 Harbor 自架私有 Docker Registry

docker Harbor 是由 VMWare 公司用 Go 語言所開發的開源軟體,它可以讓團隊存放各種不同的私有 Docker 映像檔,假如團隊內沒考慮 AWS 的 ECR 或者是 Google 提供的 GCR 方案,建議您可以參考看看 Harbor,而 Harbor 提供了簡易的 UI 介面,包含權限控管,及跨區域的自動同步功能,比起自己從官網把 Docker Registry 架起來,功能多上不少。本篇不會教大家如何架設 Harbor,有興趣的可以直接參考官方文件,此篇會紀錄如何透過 Caddy 將憑證用在 Harbor 內部。 Continue reading “Caddy 搭配 Harbor 自架私有 Docker Registry”

在本機端導入 Drone CLI 做專案測試

drone-logo_512 Drone 是一套用 Go 語言所撰寫的 CI/CD 開源專案,透過 .drone.yml 檔案方式讓開發者可以自行撰寫測試及部署流程。大家一定會認為要先架設好 Drone 伺服器,才能透過 Git Push 方式來達到自動化測試及部署專案。現在跟大家介紹,如果你的團隊尚未架設 Drone 服務,但是又想要使用 Drone 透過 Yaml 方式所帶來的好處,很簡單,你只需要透過 Drone CLI 工具就可以完成,不需要架設任何一台 Drone 服務,只要學會 Yaml 方式如何撰寫,就可以透過 drone exec 指令來完成。好處是寫完 .drone.yml 檔案,未來圖隊如果正式架設了 Drone 服務,就可以無痛升級,沒有的話,也可以透過 CLI 工具在公司專案內單獨使用,這比寫 docker-compose.yml 方式還要快很多。本篇會介紹使用 drone exec 的小技巧。 Continue reading “在本機端導入 Drone CLI 做專案測試”

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

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

Drone Secret 安全性管理

drone-logo_512 Drone 是一套以 Docker 容器技術為主的 CI/CD 開源專案,來聊聊 Drone 如何管理專案內的 Secret 資料,首先先來定義什麼是 Secret,舉個簡單例子,Drone 可以輕易完成基本打包+上傳到遠端伺服器,過程中一定會需要用到兩個 Plugin,就是 drone-scpdrone-ssh,而使用這兩個 plugin 需要有一組 Password 或是一把金鑰 (Public Key Authentication),在 Drone 可以透過後台 UI 介面將密碼或者是金鑰內容儲存在 Secret 設定頁面。預覽圖如下: Screen Shot 2017-11-20 at 9.10.10 AM Continue reading “Drone Secret 安全性管理”