進階排程:讓 Pod 去對的 node
· tech · 約 8 分鐘 · 📚 Kubernetes 學習筆記 #7
第二篇講過 Scheduler 幫 Pending 的 Pod 挑 node 分兩步:先過濾(裝得下、規則允許)、再評分(挑最佳)。 那時我說「過濾與評分背後的旋鈕之後專門一篇講」——就是這篇。預設 …
· tech · 約 8 分鐘 · 📚 Kubernetes 學習筆記 #7
第二篇講過 Scheduler 幫 Pending 的 Pod 挑 node 分兩步:先過濾(裝得下、規則允許)、再評分(挑最佳)。 那時我說「過濾與評分背後的旋鈕之後專門一篇講」——就是這篇。預設 …
· tech · 約 5 分鐘 · 📚 Kubernetes 學習筆記 #6
Pod 是短命、可拋的——自我修復隨時把它換一個。但有些東西死了不能跟著消失:資料。而容器的檔案系統天生是暫時的(ephemeral):pod 一被重排、容器一重啟,寫在裡面的檔案就沒了。所以 K8s…
· tech · 約 3 分鐘 · 📚 Redis 學習筆記 #6
把 Redis 當快取,最經典的模式是 cache-aside(旁路快取):讀取先查 cache,命中就回傳、沒命中(miss)才查資料庫,再把結果回填進 cache。平常運作得很好——直到某些情況下…
· tech · 約 5 分鐘 · 📚 從 Infra 角度看資料工具 #5
收尾「有狀態的重量級」這一批,第三個是 RabbitMQ。它跟 Kafka 都是訊息中介,但 infra 形狀差很多,而差別可以濃縮成一個字:Kafka 是 log,RabbitMQ 是 queue。…
· tech · 約 5 分鐘 · 📚 Kubernetes 學習筆記 #5
前面幾篇,你已經能把一個 app 部署、對外服務了。但真實的 app 還缺一塊:設定——資料庫位址、feature flag,還有密碼、API key、憑證。這些東西有一條鐵律:不該寫死在映像檔或程式…
· tech · 約 4 分鐘 · 📚 從 Infra 角度看資料工具 #4
第二個有狀態的重量級是 Redis,而它跟 上一篇的 Kafka 剛好是一組完美對照:Kafka 磁碟為王,Redis 記憶體為界。兩者都有狀態,但體檢表第②題「狀態放哪」的答案不同——一個在磁碟、一…
· tech · 約 4 分鐘 · 📚 從 Infra 角度看資料工具 #3
進入有狀態的重量級,第一個是 Kafka。用體檢表看它,一切都從第②題「狀態」展開——Kafka 的資料(那條可重播的 log)不是抽象概念,它實實在在躺在 broker 的磁碟上。這一個事實,決定了…
· tech · 約 6 分鐘 · 📚 從 Infra 角度看資料工具 #2
這系列第一個要體檢的,是 Kubernetes——但它很特殊:別的工具都跑在它上面。它是底座,所以它自己的可靠度,就是後面 Kafka、Spark、Redis 全部的地基。用上一篇的體檢表看它,會發現…
· tech · 約 3 分鐘 · 📚 從 Infra 角度看資料工具 #1
學一個工具、和把它放進 Production,是兩種完全不同的問題。學的時候你問「這個 API 怎麼用、這個概念是什麼」;上 Production 時你問的是另一組問題——它會怎麼掛?怎麼長大?半夜壞…
· tech · 約 4 分鐘 · 📚 Redis 學習筆記 #5
把 Redis 當快取,遲早會碰到兩個問題:設了 TTL 的 key 到期後怎麼被清掉? 以及 記憶體滿了會怎樣? 這兩件事常被混為一談,其實是兩回事——前者是過期(expiration):「這個 k…
· tech · 約 5 分鐘 · 📚 Redis 學習筆記 #4
「Redis 是記憶體資料庫,一斷電資料就全沒了」——這句話半對半錯。對的是它主要活在記憶體;錯的是它其實有持久化,能把資料寫到磁碟、重啟後還原。只是它的持久化語意比傳統資料庫弱,你得懂才用得對。Re…
#redis#persistence
· tech · 約 4 分鐘 · 📚 Google SRE 讀書筆記 #15
cron 大概是最單純的一種基礎設施:時間到,跑一個任務。單機上寫過 crontab 的人都覺得它理所當然。但只要加上兩個字——「可靠」(那台機器掛了,任務還是得照跑),它就從最簡單的東西,一夕變成一…
· tech · 約 4 分鐘 · 📚 Redis 學習筆記 #3
第一篇說 Redis 快的原因之一是「單執行緒 + 免鎖」。這聽起來很反直覺——單執行緒不是慢嗎? 這篇就把這件事講透:為什麼單執行緒反而快、它換來什麼,以及它一體兩面的代價——一個慢命令會卡住所有人…
· tech · 約 4 分鐘 · 📚 Redis 學習筆記 #2
上一篇說 Redis 的靈魂是「資料結構」——那這篇就把工具箱打開。Redis 用得好不好,九成看你會不會選對結構:選對了,一個排行榜三行命令搞定;選錯了,你會用一堆 GET/SET 在應用端硬幹本來…
· tech · 約 5 分鐘 · 📚 Redis 學習筆記 #1
大多數人第一次認識 Redis,都是把它當「快取」——把資料庫查詢的結果丟進去、下次直接拿。這沒錯,但也把它看小了。Redis 的本質是一台記憶體資料結構伺服器(in-memory data stru…
· tech · 約 6 分鐘
上一篇共識帶到 Zab 是 ZooKeeper 的引擎,但 ZooKeeper 本身值得單獨講一篇。它是分散式系統的協調核心(coordination service):你很少直接用它,卻天天間接依賴…
· tech · 約 7 分鐘 · 📚 Google SRE 讀書筆記 #14.5
換工作最刺激的一種,是加入一間幾乎什麼都自建的公司:沒有現成的雲服務、連 Stack Overflow 都幫不上忙——因為這裡的基礎設施、部署工具,全世界只有這一家在用。你過去累積的「某某工具怎麼設定…
#sre#career
· tech · 約 7 分鐘 · 📚 Google SRE 讀書筆記 #14
一群機器要對「同一件事」達成一致——誰是 leader?這把鎖在誰手上?最新的值是多少?——聽起來很簡單,卻是分散式系統最難的問題之一。難在哪?因為機器會掛、網路會斷、時鐘不可信,而你要在這些前提下,…
· tech · 約 4 分鐘 · 📚 Google SRE 讀書筆記 #13
一個請求從使用者送出到被處理,其實要通過兩層負載平衡,回答兩個不同層次的問題:去哪個資料中心? 進了之後分給哪台機器? 這兩層顧的事情完全不同,把它們分開看,負載平衡就清楚多了。 前端這層要處理的是「…
· tech · 約 5 分鐘 · 📚 Google SRE 讀書筆記 #12
自動化、發布工程、簡單性,乍看是三個不相干的主題。但把它們擺在一起,會發現它們在回答同一個問題:怎麼讓「變更」既快又不出事?SRE 的三招答案分別是——用機器一致地做、把上線做成可重現的流程、以及讓要…