#GitOps Platform
從零建一條軟體交付鏈,讓工程師送出程式碼就自動上線;目前承載 38 個服務、累計 779 次部署。
從零自建整條軟體交付鏈,並把公司既有的前後端與其他服務全面遷移上來:自架 Gitea(程式碼託管)、Gitea Actions CI/CD 與自建 DinD runner,於自研架設的 Kubernetes cluster 上以 Argo CD 做 GitOps 部署(連 Gitea 本身也跑在這個 cluster 上)。
// 為什麼會做
##背景
導入前,後端透過 TFS(Team Foundation Server)部署,前端與其餘服務則沒有可運行的平台、CI/CD 也各自為政。我自主研究 Kubernetes、親手架設 cluster,把程式碼託管、CI/CD 到部署整條鏈從零搭起來——連 Gitea 自己也跑在這個 cluster 上。
// 遇到什麼問題
##問題
後端綁在 TFS 上部署;前端與其餘服務沒有平台可運行、CI/CD 也分散。需要一條從程式碼託管、CI/CD 到部署都統一、可追蹤且可重複的軟體交付鏈。
// 如何解決
##解法
自架 Kubernetes cluster → 於其上自架 Gitea 與 Gitea Actions CI/CD,CI 執行環境用自建的 DinD(Docker-in-Docker)runner 在 K8s 上跑容器化建置 → 擴建為 Argo CD 的 GitOps 部署平台(Git 為單一事實來源、Argo CD 自動同步 cluster)。再把前端、後端與其他自架服務的原始碼與 CI/CD 全數遷移過來,連 Gitea 本身也跑在同一個 cluster 上。
// 我負責什麼
##我的角色
從零建立整條軟體交付鏈並遷移既有工作負載:架設 Kubernetes cluster、自架 Gitea 與 Gitea Actions CI/CD、自建 DinD runner、擴建 Argo CD GitOps 工作流,把前後端與其他服務從 TFS/無平台狀態全面遷移過來。
// result
##成果
從無到有的團隊軟體交付鏈,目前承載 38 個 Argo CD Application、累計 779 次部署(2025-04-08 起、近四週週均約 41 次)、2 座獨立 k3s(測試機+正式機);開發者只需 git push 一步即全自動部署(部署步驟本身僅 3–52 秒)。