Home avatar

Lou Stack Base

Lou's knowledge base for software engineering, DevOps, and topics I'm exploring.

為什麼最後不用 Reusable Workflows: GitHub Actions 可讀性、維護性與操作面取捨

我原本以為把 shared logic 抽成 reusable workflows 會比較乾淨。

結果實際做完之後, 我最後把它們又收回到入口 workflows, 只保留 composite actions。不是因為 reusable workflows 不能用, 而是因為它在這個 case 裡, 沒有帶來我真正想要的「乾淨」。

GitHub Actions + GCP WIF: 用 Branch、Workflow 與 Service Account 切出最小權限

如果要把 GitHub Actions 接到 GCP, 我現在最不想再做的就是:

  • one shared deploy service account
  • one broad trust rule
  • one workflow that can hit every environment

這樣一開始很省事, 但後面只要開始切 dev / prod, 風險和 debug 成本都會一起上升。

這篇整理我最後收斂出來的做法: 用 branch、workflow、service account 三層一起切最小權限。

在單一 GCP Project 裡切 Dev / Prod: State、Secrets、IAM 與 Workflow 邊界

這篇記錄我把一套 Cloud Run + Cloud SQL 應用留在同一個 GCP project 裡, 但仍然把 devprod 切乾淨的做法。

重點不是 branch 命名, 也不是多建兩個 GitHub workflow 而已。真正要切的是 state、資源命名、secrets、執行身分、部署身分, 還有 workflow 控管。這幾層如果只漏一層, 最後就還是會互撞。

DDD 踩坑 — Aggregate Boundary、Double-Entry Ledger 和 Event System

上一篇 講了 DDD 的概念跟 .NET MVC 的對比。這篇記錄實際在專案裡踩到的坑: aggregate boundary 怎麼畫、double-entry ledger 怎麼設計、event system 怎麼讓模組之間溝通

Aggregate Boundary 畫錯的代價

Aggregate 的規則聽起來很簡單 — 一組一定要一起存取的東西, 有一個 root entity 當入口。但實際畫 boundary 的時候, 很容易畫錯