2025 年回顧與展望
本篇是個人於 2025 年的紀錄以及對於未來的展望。
從 GCP 到 AWS:如何為掃地機器人雲端服務設計一個零停機跨雲遷移策略
🔹 前言
真實環境往往不是「最佳實踐」,而是在崎嶇的路途中找到通往目的地的路。
這篇文章記錄的是:
- ❌ 不是「很熟 GCP,所以很順利」
- ❌ 不是「有完整的測試環境」
- ❌ 不是「順利的搬遷可以立刻看到結果」
而是:
- ✅ 沒用過 GCP
- ✅ 用戶是全球數百萬台掃地機器人(你無法控制它們的 DNS cache)
- ✅ 搬的是雲端更新系統(出錯就完蛋)
- ✅ 零停機
如果你期待看到「完美的教科書案例」,這篇不適合你。
但如果你想知道 在有限的條件下,怎麼完成零停機遷移任務,Let’s go。
2025 部落格 CI/CD 部署實戰與心得
這篇紀錄我把這個用 Hexo 建置的部落格從「自寫 Webhook」轉換到 GitLab CI/CD,以及中間 Nginx / Certbot 踩雷的調整心得。
2022 年回顧以及 2023 年展望
本篇是個人於 2022 年的紀錄以及對於未來的展望。
Terraform Provider 開發紀錄
2022 年終於要結束了,今年仍舊是在精神時光屋中度過…
在新的工作內容中恰好碰到了客製化 Terraform Provider 的需求,所以寫一篇文章來記錄一下開發和 Release 的流程,本篇文章假設已經對於 Terraform 這套 IaC 工具使用有基礎的了解,如果沒有聽過或使用過的人可以先拜讀 Che-Chia (David) Chang 大大的 2021 鐵人賽文章 - Terraform Workshop - Infrastructure as Code for Public Cloud 疫情警戒陪你度過 30 天,有助新手們由淺入深了解這套深度整合各大公有雲的 IaC 工具。
GitHub API Flow 介紹以及實作
身為前軟體工程師,雖然當了運維工程師,但還是會需要碰到 GitHub 以及開發工作,最近遇到一個情況是要使用 GitHub API 去實作出一套 CMS 系統,讓內部開發者可以透過介面自動提交對應的檔案,申請 AWS 資源。
本篇會介紹實作自動化 GitHub Flow 時候,看到 API 規格時仍舊一頭霧水,原本以為自己已經很熟 Git 了,真正要實作時才發現對其運作的原理還有很大的進步空間,所以查了很多資料整理出來這篇筆記。文章會介紹直接對 GitHub repo 操作的流程,就不用再把整包程式碼 clone 到本地端了。
AWS to GCP site-to-site VPN 建置紀錄
AWS to GCP site-to-site VPN 建置紀錄,主要是透過這樣的建置可以很快掌握到兩座公有雲的網路架構規劃以及熟悉基本的操作,本篇主要對照的是GCP 官方網站文章 - Build HA VPN connections between Google Cloud and AWS。
其實網站上的文章寫得非常詳盡,只是裡面有部分文字容易讓我看不懂,所以就做個紀錄,以防以後我老花忘記。
通常公有雲提供 Site-to-Site VPN 的目的主要是要提供雲端對地端的 Hybrid Cloud 連接場景,對照的業務應用情境就是:
- 你有兩座 Kubernetes 要做備援,要部署 CI/CD 流水線
- 某個你想用的產品只有公有雲 A 有,但是你主要控制 CI/CD 的節點都在公有雲 B 上,你想寫腳本從公有雲 B 控制公有雲 A
我這邊沒有使用地端的環境,就把兩座公有雲環境網路打通,主要要注意的有兩點:
- 不同公有雲環境的 zone 最好要在同個地區,比方說東京就對到東京
- 網段規劃不可與其他 subnet 重疊,比方說在規劃 GCP Subnet 時,你規劃了 10.143.0.0/20,AWS 那邊就不能有重複的 subnet 也用這組網段
在 AWS EC2 上建置 Verdaccio 排雷記
環境以及使用版本
- AWS EC2, Kubernetes Version: 1.21
- Verdaccio, Version: v5.8.0
為什麼選擇 Verdaccio
Verdaccio 是義大利文的棕綠、橄欖綠的意思,唸法: ver搭起偶,念起來潮度百分百,而且同事聽不懂你在說什麼。
這個工具是一套開源的 NPM 的套件包管理工具 (Registry),假設企業內部有些自有的 JavaScript 套件只能放在內部做管理,就可以自建這個 NPM Registry。假設企業內部有用 GitHub 或 GitHub Enterprise,也可以使用 GitHub NPM Registry,比較詳細的介紹以及使用方式可以參考這篇 - GitHub - Working with the NPM Registry,要注意的是如果你的專案設定是 private 就無法使用這個功能。本次安裝 Verdaccio 純粹是因為帳號可以獨立出來,不需要跟 GitHub 綁定。
OPA Gatekeeper 筆記整理 - I
研究 Open Policy Agent Gatekeeper(a.k.a OPA Gatekeeper)的起因還是在準備考 CKS(Certified Kubernetes Security Specialist) 這張證照的過程中有看到這個工具。
一般來說,在管理 Kubernetes 時如果有想要做部署規範管理,會想到 Kubernetes 原生的 Pod Security Policies(PSP) 。
但是有在關注 Kubernetes 的公告的人,就會發現 PSP 在 Kubernetes 1.21 版本標示為 deprecated,並且在 Kubernetes 1.25 版本將完全被移除 (fully removed),取而代之的是使用 Pod Security Standards (PSS) 。這意味這如果你是使用原生的方式去撰寫這些管理的 Policies 的話,未來會需要花費一番功伕去升級、改寫這些 Policies,所以就開始研究第三方 (3rd-Party) 的規範管理工具。