本文將說明如何透過 GitLab CI + JMeter 實現小規模的 Load testing。

操作步驟

先準備一個能夠操控 Container 的 GitLab Runner,gitlab.com 的使用者可直接用官方提供的 Shared runners。

站在巨人的肩膀上,我們要借用 justb4/docker-jmeter 這個優秀的 GitHub 專案,用它作為基底。

【補充說明】justb4/docker-jmeter 的作者已經寫好一個立即可用的 Test Plan 並搭配變數和幾個 script,也有易讀易懂的文件。因此如果你只是想要立即使用 JMeter 執行小規模的 Load testing,它只需要稍微微調就可以直接在 local 環境中拿來運用。

先將此專案 import 至 Gi …


在先前的文章,艦長曾說到 GitLab CI 的一項缺點,即是我們無法輕易的在 Local 環境運行 GitLab CI,往往需要反覆修改 .gitlab-ci.yml、送出 Commit 並等待 CI Pipeline 顯示出執行結果。這冗長又反覆的過程實在是為規劃 CI Pipeline 及撰寫 CI Job 帶來困擾,也大幅拖慢針對 CI Pipeline 本身的測試與驗證速度。

然而,這項長久困擾 GitLab 使用者的困擾,似乎浮現了一線曙光!為我們帶來希望的即是名為 glci 的工具。

TL;DR

glci 目前還在 v0.4.3,尚未進入 v1.0,是個 2021/2/17 才開始沒多久時間的年輕工具。因此尚無法在 Local 完整的還原 GitLab CI 的所有功能與行為。

但我必須說,能在 L …


使用者在初次踏進 GitLab CI 的世界時,通常按著官方文件一步步照做,多半不會遇到什麼問題。唯獨有一項東西有可能讓新手產生較大的疑惑,那就是該如何選擇 Executor。

目前在官方文件上已經有提供了一份 Compatibility chart 幫助使用者選擇 Executor。本文就讓艦長也針對 Executor 表達一些看法吧!

GitLab Runner 與 Executor 的關係

首先,讓我們先來解釋 GitLab、GitLab Runner 與 Executor 的關係。

讓我們拆開來說明,先從 GitLab 與 GitLab Runner 的關係開始。

如上圖,我們都知道 GitLab Runner 是用來幫助我們執行 CI Job 的工人,而 GitLab 就是這些工人的老闆。老闆(GitLab)會去查看需求單(.gitlab-ci.y …


這則一樣是從工作筆記中撈出來的舊筆記,重新整理後釋出在部落格分享。

對於「密碼管理器」觀望了很久,一直在考慮要不要使用它,最後看了這篇《為什麼今天就該開始使用密碼管理器》之後,覺得作者說的很有道理,我們應該用一套正規、有加密、有一定安全防護的「密碼管理器」來管理密碼;同時由於團隊協作的需要,難免會遇到必須共用帳號密碼的情況,故確實需要一個合適的服務來管理密碼。於是當時稍微花了一些時間比較了幾套常見的「密碼管理器」,最後在參考該文章的介紹後,選擇試用了 LessPass 與 Bitwarden 這兩套工具。

LessPass

LessPass 在當時號稱是一個全開源(Fully open source)的軟體,你可以自行架設服務,也可以註冊使用官方維護的雲端服務

實際試用之後,第一時間覺得 LessPass 的運作邏 …


在私人的試用帳號即將到期前,測試了用 Azure AKS 建立 K8s Cluster 並將之整合至 GitLab。本文僅紀錄本次的操作步驟。

操作步驟

事前動作,請先註冊並啟用 Azure。目前 Azure 有提供 30 天內 6,100 元的免費點數,想要試玩 Azure 的人,可以考慮申請並集中火力在 30 天內善用那 6,100 元點數。

Azure 帳號開通後,接著開始進入正題。第一步先安裝 Azure CLI。macOS 使用者可以透過 Homebrew 安裝。

brew install azure-cli

上一篇文章我們介紹了 CI Lint,本文再接再厲,繼續介紹另外兩個在規劃 CI Pipeline 會用到的功能— Pipeline EditorPipeline simulation

Pipeline Editor

Pipeline Editor 是 GitLab 13.8 新增的功能。(就說 13.x 一直功能大噴發~)

過去在撰寫 .gitlab-ci.yml 時,我們只能看著檔案內容,自己在腦中想像屆時 CI Pipeline 會長成何種模樣。在 Pipeline 結構單純時,用想像的還足以應付。但如果 Pipeline 較為複雜,特別是當你有使用多個 Template 或需要依據 Tags、Variables 的差異來執行不同的 CI Job 時,只靠想像可能就有點辛苦了。

因此 GitLab 為了幫助使用者可以更 …


相信所有的 GitLab 使用者一定都曾遇過一個狀況。即是好不容易撰寫了一份自覺完美的 .gitlab-ci.yml,但在 git push 送出 Commit 之後,卻只得到 GitLab 介面上顯示著紅色的錯誤 yaml invalid


在 HipChat 依然主流、Slack 尚未席捲市場的那個年代,那時建立 ChatBot 的工具還不像現在這麼豐富、中文教學資源也比較匱乏,但在當時就已有不少公司藉由 HipChat + ChatBot 的方式實現自動化及 ChatOps。由於透過此種方式,團隊成員只要在即時通訊工具中呼叫 ChatBot 即可自動完成許多重複性工作,可說是 Dev 與 Ops 兩方都十分喜愛的工具。

本文就讓我們試著運用 GitLab CI 搭配 Mattermost slash command 實現 ChatOps,試著在沒有 ChatBot 的狀況下,快速建立 ChatOps。

過程紀錄

要透過 GitLab 實現 ChatOps 非常的簡單,基本概念就是將 GitLab CI Pipeline 視為是一個幫你執行自動 …


上週比較忙,所以只整理了一篇較短的舊工作筆記。

由於專案環境的緣故,在某個專案遇到無法按往常慣例為服務設置多重的監控措施。經過討論後,最終在此專案使用了一種不太平常的做法來實現「只設置一項監控 Rule,即同時確認 NGINX、PHP-FPM、MySQL 三者是否正常運作」。該做法是透過 Cron job 定期執行自動化腳本,該腳本會啟用 Selenium 來實際登入網站,並進入特定網頁,最後根據是否能回傳正確的網頁結果,來判斷該服務是否仍正常上線。

前言

如果要確認一個網站是否仍正常運作,我們可以使用多種不同的工具來監控它,例如 Zabbix 的 Web Scenarios、pingdom.com 的 Website Monitoring 或其他各式各樣的 Monitoring tools。

除了直 …


日前收到私訊提問,GitLab 社群朋友在讓 GitLab 串接 Mattermost slash command 時遇到了一些狀況,但根據艦長的印象,slash command 的背後是直接透過 GitLab API 以 POST 的方式進行串接的,理論上不太會遇到問題。於是好奇心發作的艦長,就頭洗下去的做了一番測試,同時將串接步驟也留做紀錄於本篇文章中。

過程紀錄

Mattermost 與 GitLab 相同,都可以選擇自架或使用官方提供的 SaaS,因此如果會出現問題,會不會是 Self-hosted 與 Cloud 的問題呢?故此我們會有以下四種串接情境。

  • gitlab.com + Mattermost Cloud
  • gitlab.com + Self-hosted Mattermost
  • Self-hoste …

Chengwei Chen

江湖藝名—艦長,熱衷研究維運及自動化相關技術,目標是未來能像畢凱艦長一樣用嘴巴叫所有主機做事!目前為 GitLab Hero、DevOps Taiwan 社群志工並自稱為 DevOps 傳教士。更多個人經歷 chengweichen.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store