筆者為了從零開始學習這三個技術所以揉合出這個主題。
主要是把實作驗證後的知識記錄下來,除了實作步驟,也會講為什麼這麼做、背後的優缺點是什麼,讓理論跟實作並行。
學習的過程會用很多不同 AI 工具,也是筆者一個嘗試將 AI 融入消化知識的流程裡,透過摸索跟驗證找到更適合特定場景跟目的的學習工具包。
這一系列主要會專注在 Golang 學習,大約會有 50%,那 Elasticsearch 約 25%, Kubernetes 為 25%。
這個系列是面向讀的是對於這三種技術都沒有相關知識跟經驗的工程師。如果有 Python, Node.js 等後端經驗有助於上手,但沒有也不妨礙閱讀與實作。
在這一系列文章結束後,你可以獲得一個 GitHub repo 跟初學者指南。
如果有任何想法,都歡迎留言交流。
草擬大綱如下:
Day | 主題 | 目標 |
---|---|---|
1 | 前言 | 系列動機、專案說明、開發環境準備 |
2 | 專案骨架 | go mod init 、REST /healthz 起跑 |
3 | 測試骨架 | table-driven 單測 2 則 |
4 | 中介層 | 結構化日誌、Recovery、設定 |
5 | API 成形 | /search 先回假資料 |
6 | context/timeout | 所有外呼加 timeout |
7 | 錯誤策略 | %w 包裝、分類重試(退避+抖動) |
8 | 微基準 | go test -bench 建立基線 |
9 | 併發基礎 | worker pool(有限併發) |
10 | pprof | 找到 1 個熱點並改善 |
11 | 指標輸出 | 暴露 QPS/Latency |
12 | ES 介面層 | 定義 SearchService (尚未連 ES) |
13 | 整合測試 | 以假 ES 寫 E2E |
14 | 打通真路徑 | 連上本機 ES 的 smoke test |
15 | 穩定化 | 清理目錄、補測試、寫 README |
16 | Recap | 複習 Golang 內容 |
Day | 主題 | 目標 |
---|---|---|
17 | 安裝 | Docker 單節點、固定 mapping |
18 | 查詢打底 | match/bool/terms |
19 | 分頁方案 | 換成 search_after |
20 | Bulk | 匯入 5–10 萬筆 |
21 | 參數調優 | 微調刷新/副本並壓測 |
22 | 備份還原 | 1 次 Snapshot/Restore |
23 | Recap | 複習 Elasticsearch 內容 |
Day | 主題 | 目標 |
---|---|---|
24 | 容器化 | 多階段 Dockerfile、probe |
25 | 基礎部署 | Deployment + Service + Config/Secret |
26 | 資源治理 | Requests/Limits 就位 |
27 | HPA | 設 CPU HPA、叢內 hey 壓測 |
28 | 邊界與權限 | 最小 NetworkPolicy、RBAC |
29 | 觀測 & 小故障演練 | Prom/Grafana 最小看板、刪 Pod、記 MTTR |
30 | Phase 3 Recap & Final | 複習 Kubernetes 內容,全系列回顧、反思與展望 |
Let’s learn in public!🚀
嗨!版主您好,非常期待您的系列文章!
看到您從零開始學習 Golang、Elasticsearch 和 Kubernetes 的決心與詳細規劃,真的非常佩服。尤其是將實作與理論(優缺點、背後原因)結合,並融入 AI 工具協助消化知識,這個學習方法本身就很有啟發性。
大綱規劃得非常詳盡且有系統,從 Go 的基礎到 ES 的優化,再到 K8s 的部署與觀測,對於沒有相關經驗的工程師來說絕對是一份寶貴的指南。特別喜歡您強調「為什麼這麼做」和背後的優缺點,這對建立深層理解至關重要。期待這個系列的完整呈現!
也歡迎版主有空參考我的系列文「南桃AI重生記」:
https://ithelp.ithome.com.tw/users/20046160/ironman/8311