首頁 Tags
"Backend" 2026-10-14
4.0 服務端監控的分層:容器與程序的自檢、服務網路內的探測、元件指標、應用層訊號、告警規則與分送、告警鏈的監看與使用者路徑的合成監控
以每一層監控檢查的對象、看不到的範圍與接手的那一層,把服務端監控串成一條監控鏈,以及拿它盤點一個服務時怎麼判讀缺口的性質(檢查範圍、位置、讀取與訊號失真),涵蓋自架主機、Kubernetes 與雲端託管的情形;使用者路徑那一層另寫合成監控與真實使用者監測的差別,以及盤點時各種缺口的補法 2026-10-15
4.0.1 監控鏈事前偵測不到的異常:業務結果、資料正確性、到期事件、排程與背景工作、備份、安全、第三方依賴與成本的監看
監控鏈各層都正常時仍會發生的幾類異常:業務停了而程式回應正常、資料寫錯、TLS 憑證與網域到期、排程工作與佇列消費端沒跑、備份還原不回來、以帳號正常操作進行的攻擊、第三方業者停掉與帳單失控,各自要先定義的預期、檢查它的規則與承接的專章 2026-10-15
4.0.2 以監控鏈盤點單機短網址服務:各層現有的監控、缺口的性質與補法,以及監控鏈事前偵測不到的異常
把一台主機上以 Docker Compose 跑的短網址服務現有的每一種監控放進監控鏈的各層,逐層判讀還開著的缺口屬於檢查範圍盲區、位置盲區、讀取缺口還是訊號失真,各自的補法,以及補上失效域以外的觀察者之前,主機整台停掉時沒有任何一層會通知的情形;另逐類查業務結果、資料正確性、安全、成本、到期事件與備份 2026-10-15
9.0 請求路徑上的負載分析:一次一筆的處理、在它之前能回應的請求、多出來的請求怎麼處置、保護把負載轉到哪裡、重送與去重,以及保護元件與依賴故障時的處置
沿著一個會改變狀態的請求從用戶端到資料庫的路徑分析負載時共用的幾個概念:必須一次只處理一筆的那件事與它的互斥範圍、需要經過它的請求裡結果事先已確定的比例、多出來的請求要排隊、拒絕還是請使用者重新確認、每一段保護把負載轉給了哪個元件(保護元件自己的狀態、連線數、輪詢、下游接收端、外部配額)、佇列與重按帶來的重送怎麼去重、保護元件故障或輸出錯的值時下游讀到什麼,以及依賴變慢、部分失效與恢復時的第二波湧入 2026-10-15
4.0.3 以監控鏈盤點 Kubernetes 上的電商 checkout:叢集內的監控、託管資料庫與第三方金流各自的失效域,以及佇列消費端與外部依賴的缺口
把一個跑在託管 Kubernetes 上、有訊息佇列消費端、託管資料庫與第三方金流的電商 checkout 現有的監控放進監控鏈的各層,逐層判讀缺口與補法;另寫付款服務的 readiness 納入金流業者時對付款回呼的影響、失效域從主機換成叢集與雲端帳號之後觀察者要放在哪裡,以及業務結果、對帳、到期事件、消費端、備份、安全、第三方依賴與成本的逐類盤點 2026-10-15
9.0.1 售票搶購的負載路徑:熱點列與連線池、CDN 合併回源、排隊放行的速率、資料庫認領與加入 Redis 閘門的條件、付款期限的條件更新
以售票搶購為例,沿著一張票從座位圖到付款記帳的路徑,寫出全部請求更新同一個庫存計數時熱點列與連線池的耗盡順序,邊緣快取、排隊放行、資料庫逐張認領與加入 Redis 扣庫存各自把負載轉給了哪一段、自己出錯時由哪一段補救,以及成功請求的總數有上限、延遲不改變請求的價值、先到先得這幾個前提讓哪些做法可以簡化、哪些需求無法簡化 2026-10-15
4.0.4 以監控鏈盤點交易撮合系統:觀察者讀數字的位置、沒有新委託時分辨市場安靜與路徑停住、分段量測延遲,以及委託序號、帳戶部位的對帳與其他監控鏈事前偵測不到的異常
把一個交易撮合系統的監控放進監控鏈的各層判讀缺口:撮合引擎單一執行緒時觀察者為什麼要從輸出日誌讀數字、沒有新委託時怎麼分辨市場安靜還是處理路徑停住、委託延遲怎麼依段量測與時鐘同步的前提、依序日誌多數節點與同一可用區的失效域,以及輸出序號的斷號、帳戶部位與行情資料的一致性這類監控鏈事前偵測不到的異常 2026-10-15
9.0.2 交易撮合的負載路徑:閘道的帳戶限流與明確拒絕、依序日誌的複寫延遲、單一寫入者的撮合引擎、行情的合併送出與重放驗證容量
以交易撮合為例,沿著一筆委託從入口閘道到成交回報的路徑,寫出撮合之前結果無法確定、處理順序決定成交、延遲改變請求的價值這些性質讓哪些負載保護不能用,閘道、依序日誌、單一寫入者的撮合引擎與行情發布各自先耗盡的資源與出錯時的補救,過載時明確拒絕超量委託與以重放驗證容量的做法,並與售票搶購對照 2026-10-28
JMeter 在本機跑負載測試的實測紀錄:Docker image、test plan 的元件、CSV Data Set、CLI mode 與 JTL、dashboard 與 statistics.json、JMeter 之外的門檻判定、remote testing 的 client 與 server
要在本機用 Docker 照一次實測跑 JMeter:建 image、寫 test plan、從 CSV 餵測試資料、用 CLI mode 跑出 JTL 與 dashboard、讀 statistics.json 判定門檻、開 client 與多台 server 做 remote testing 時讀;也用在 sample 失敗了 exit code 還是 0、CSV 裡某些值從來沒被請求到、-J 傳的屬性在 server 上沒有作用、-o 回報資料夾不是空的時候 2026-10-28
JMeter 在容量探測的用法:thread group 固定的負載變數、逐級加壓、knee 的判讀、施壓端與分散施壓的檢查、多 protocol 的涵蓋範圍與排查順序
用 JMeter 找飽和點時的判斷:thread group 與 timer 量的是哪一種負載模型、Open Model Thread Group 的逐級加壓、從 dashboard 判讀 knee、施壓端與 TLS 連線的失真、分散施壓,以及容量結論要附的條件 2026-10-28
JMeter 在效能 regression gate 的用法:JMeter 之外的門檻判定、逐筆 assertion 與統計門檻的分工、thread group 的負載模型、施壓端設定與基準的可比性、PR 與 nightly 的分工、證據保存與 gate 失敗的排查順序
用 JMeter 實作效能 regression gate 時的判斷:門檻判定放在 JMeter 之外的哪一段、逐筆 assertion 與分佈門檻的分工、負載模型與施壓端設定怎麼影響前後兩版的比較、要保存的執行條件,以及 gate 失敗時怎麼把誤判和真正的退化分開 2026-10-28
Locust 在本機跑負載測試的實測紀錄:受測服務、locustfile、headless 執行與 CSV、內建的 exit code、quitting 事件裡的門檻判定、--reset-stats 與 on_start、master 與 worker 的分散執行
要在本機用 Docker 照一次實測跑 Locust:寫 locustfile、headless 執行、讀終端機的統計表與 CSV、在 quitting 事件裡判定延遲門檻、開 master 與多個 worker 分散執行時讀;也用在受測服務變慢而 exit code 還是 0、加了 --reset-stats 之後登入請求還在統計裡、master 回報 worker failed to send heartbeat 的時候 2026-10-28
Locust 在容量探測的用法:closed model 下的逐級加壓、吞吐量與延遲的換算、pacing 的上限、worker 的檢查與排查順序
Locust 只有 closed model 時找飽和點的判斷:逐級增加使用者、從每秒 task 數與延遲換算受測服務的狀態、到達率型服務的延遲低估與 pacing 的上限、worker 與 client 的排除條件,以及容量結論的寫法 2026-10-28
Locust 在效能 regression gate 的用法:exit code 與門檻判定、預熱與 on_start 的請求、closed model 下的比較、custom client 回報的請求範圍、PR 與 nightly 的分工、證據保存與 gate 失敗的排查順序
用 Locust 實作效能 regression gate 時的判斷:內建 exit code 之外的門檻怎麼在 quitting 事件裡判定、登入與預熱的請求怎麼混進統計、closed model 讓退化落在延遲還是吞吐量,以及 gate 失敗時怎麼把誤判和真正的退化分開 2026-10-27
Gatling 在容量探測的用法:open model 的逐級加壓、knee point 的判讀、施壓端的檢查、feeder 資料的分佈與排查順序
用 Gatling 找受測服務飽和點時的判斷:逐級加壓的兩種注入寫法與各自適用的階段、report 的四張圖怎麼換算成受測服務的狀態、施壓端要先排除的資源與 OSS、Enterprise 的分散施壓、feeder 資料怎麼讓容量估高、讀寫高峰錯開時的 scenario 寫法,以及容量結論要附的執行條件 2026-10-27
Gatling 在效能 regression gate 的用法:assertion 的門檻、ramp-up 與量測區間、注入模型、PR 與 nightly 的分工、證據保存與 gate 失敗的排查順序
用 Gatling 實作效能 regression gate 時的判斷:assertion 對應哪一種判讀方法、OSS 怎麼做出相對門檻與跨次比較、預熱的請求怎麼處理、注入模型怎麼影響前後兩版的比較、Gatling 在 CI 的哪幾條路徑跑、要保存哪些執行條件,以及 gate 失敗時怎麼把誤判和真正的退化分開 2026-10-27
邊緣安全事件的判讀與監控:處理層與事件欄位、背景流量的分類、處置留下的紀錄、監控分級、從事件回寫規則
網站放在 CDN 或 WAF 後面、手上有一個事件頁或一份匯出的事件紀錄,要分出背景掃描、爬蟲與針對這個網站的請求,或決定哪些事件要即時告警時,先從這裡確認這組文章涵蓋哪些判斷、各篇目前的發佈狀態 2026-10-02
12.1 HTTP 回應的保存位置:私有快取與共用快取
HTTP 回應離開 origin 之後可能被保存的位置:私有快取與共用快取的規範定義、瀏覽器、CDN、反向代理與轉送代理各由誰經營、規範列出的保存條件、只對共用快取或只對私有快取有效的指令,以及把指令指定給 CDN 的 CDN-Cache-Control 2026-09-24
Backend 教材的閱讀路線:教材的分層、依讀者目的排的模組順序與貫穿各模組的 checkout 範例流程
Backend 教材各模組之間的閱讀順序:分類語言、服務路徑與具體工具的分層,依讀者目的(把服務上線、設計 API、學 production 操作、看懂資安控制、比較工具、讓服務撐住成長)排的路線,以及各模組在一條 checkout 流程裡處理的問題 2026-07-04
持久連線推送:WebSocket、SSE、long-polling 的承諾差異
server 推 client 的持久連線機制對消費者承諾什麼:重連誰負責、訊息會不會漏、單向還是雙向;選型看消費者形狀 2026-07-03
11.1 API 作為服務邊界的責任
介面變更該由誰付成本、哪些介面性質算對外承諾、承諾違約有哪些模式 — 動手設計 endpoint 前的責任框架 2026-07-03
11.C1 Fielding 論文第 5 章:REST 是約束推導的架構風格
REST 由六個約束從 null style 推導而來、uniform interface 以效率換一般性;所有 REST 論爭的定義基準 2026-07-03
GraphQL Schema 演進:versionless 的紀律代價
只加不改、deprecation 標注、nullable 預設怎麼共同取代版本號 — 以及每個紀律各自的隱藏帳單 2026-07-03
gRPC proto 演進紀律:編碼層相容與 CI gate
要改 proto 又得保證 wire 相容、並想把相容檢查落成 merge 前 CI gate、選檢查等級時的判斷標準 2026-07-03
Hypermedia 與 HATEOAS 的適用邊界
hypermedia 落在哪個消費者形狀:uniform client 前提、格式標準化為何失敗、反方的收益假設拆解、適用與不適用的場景線 2026-07-03
tRPC 型別共享:型別即契約的前提與代價
tRPC 靠 TypeScript 型別推導同步契約、零 codegen;適用同倉 TS-only、公開第三方 API 不適用 2026-07-03
採現成格式標準還是自建規範
採現成 response 格式標準買到什麼、綁定什麼、以及怎麼在採用前預測一個標準會不會活下去 2026-06-23
Chaos Mesh:Workflow、Scope Control 與 Steady State Probe
用 Chaos Workflow 編排多步驟實驗、用 selector 與 mode 控制 blast radius、用 StatusCheck 做 steady state probe。 2026-06-23
k6:Threshold CI Gate 與 Scenario 設計
用 threshold 把 load test 結果變成 CI pass/fail,用 scenario 讓 workload model 貼近 production traffic shape。 2026-06-23
Sloth:SLO YAML 與 Multi-burn-rate Alert 生成
用宣告式 YAML 定義 SLO,自動生成 Prometheus multi-window multi-burn-rate recording 與 alerting rules。 2026-05-27
10.1 服務拆分與邊界判讀
整理 monolith vs microservice 取捨、服務邊界判讀訊號、拆分時機與回退路徑 2026-05-27
NoSQL Vendor Selection:document / KV / multi-model 三方選型 + workload shape 前置判讀
MongoDB / DynamoDB / Cosmos DB 三家 NoSQL 選型 entry point:資料形狀、access pattern 穩定度、consistency 三個前置判讀,保留原 DB、同 DB 換託管、換 vendor 保留 model 三種 migration path,federated DB 視角,以及三家在資料模型、部署 topology、capacity 抽象、partition key 可逆性、consistency 等面向的對比 2026-05-21
後端 migration、rollout 與 rollback 流程
說明後端 CI/CD 如何把程式、資料 migration、流量切換與 rollback 拆成可驗證的發布流程 2026-05-13
1.1 高併發下的 SQL 讀寫邊界
說明高併發服務如何共用資料庫 client、控制 transaction、管理 connection pool、避免資料庫成為瓶頸 2026-05-12
9.1 壓測理論與系統行為
Little's Law、queueing theory、USL、saturation curve 在容量規劃中的角色 2026-05-12
9.C1 AWS Prime Day 2025:可預期極端峰值的 dogfood
Amazon 自家服務在 Prime Day 2025 的峰值數字 — 一年一次可預期峰值的容量設計參考 2026-05-07
2.C1 Meta:Cache Consistency 升級
快取 invalidation 一致性如何從常見錯誤演進到高可信治理。 2026-05-07
3.C1 Meta:FOQS 從區域到全域佇列遷移
佇列架構如何在不中斷下升級成 disaster-ready 模式。 2026-05-07
5.C1 Tradeshift:self-managed Kubernetes 遷移到 EKS
零停機平台遷移的分段策略案例。 2026-05-07
7.C1 Cloudflare:2026 Route Leak 事件
BGP 路由政策自動化失誤如何回寫控制面治理。 2026-05-07
Atlassian 2022 April Multi-tenant Deletion Outage
2022-04 Atlassian 因維運腳本誤刪多租戶站點造成長時間事故的解析:恢復分批、跨團隊指揮與對外通訊節奏。 2026-05-07
AWS S3 2017 US-EAST-1 Service Disruption
2017-02-28 AWS S3 us-east-1 事故解析:內部操作命令、index / placement 子系統重啟、區域依賴擴散與狀態頁依賴回寫。 2026-05-07
Cloudflare 2019 Regex CPU Outage
2019-07-02 Cloudflare WAF 規則更新導致全球 CPU 飆升的事故解析:觸發條件、擴散機制、止血決策與可回寫控制面。 2026-05-07
Fastly 2021 June Global Edge Config-triggered Outage
2021-06-08 Fastly 全球 edge 事故解析:有效客戶配置觸發潛藏 bug、分鐘級擴散與快速隔離恢復。 2026-05-07
FinTech:合規壓力下的後端選型
在審計、留存與交易正確性要求下,如何平衡成本、風險與交付速度。 2026-05-07
FinTech:審計證據鏈的可觀測性設計
把交易與存取事件轉成可回查證據,降低合規審核與事故判讀落差。 2026-05-07
GCP 2019 US Network Congestion Multi-service Incident
2019-06-02 Google Cloud 因美國區域網路壅塞造成多服務退化的事故解析:跨產品依賴、流量控制與區域隔離判讀。 2026-05-07
GitHub 2018 Oct21 MySQL Topology Incident
2018-10-21 GitHub 因 network partition 觸發跨區資料庫拓撲異常的事故解析:資料一致性優先、fail-forward 決策與長時間恢復。 2026-05-07
Roblox 2021 Oct Prolonged Core Infra Outage
2021-10 Roblox 長時間平台中斷的事故解析:核心基礎設施壓力失衡、根因定位延遲與長尾恢復。 2026-04-23
0.0 後端需求分類地圖
先從需求形狀辨識狀態、讀取、非同步、即時、診斷、交付與可靠性問題 2026-04-23
3.1 broker 基礎與投遞模型
先理解 broker、queue、consumer 與 delivery semantics 2026-04-23
4.1 log schema 與搜尋規劃
整理 log 欄位、索引與搜尋策略 2026-04-23
5.1 container 與 runtime
整理 image、resource limit 與啟動行為 2026-04-23
6.1 CI pipeline
CI pipeline 的分層策略、artifact 管理、flaky 治理與 release gate 輸入 2026-04-23
8.1 事故分級與啟動條件
建立統一分級標準與事故啟動門檻 2026-04-22
2.1 高併發下的 Redis 讀寫邊界
說明高併發服務如何共用 Redis client、控制 pipeline 與避免 cache stampede 2026-10-05
Kubernetes 的元件與請求路徑:控制平面、節點、Pod、Deployment、Service 與 Ingress
從 Docker Compose 的使用經驗出發,說明 Kubernetes 用期望狀態與控制迴圈管理容器的方式、控制平面與節點上各元件的責任、Deployment、ReplicaSet 與 Pod 三層工作負載、一個外部 HTTP 請求經過 Ingress 與 Service 抵達 Pod 的路徑和每一段出問題時的訊號,以及節點故障後的重建時間與這套模型在什麼規模下划算 2026-10-02
12.2 新鮮度期限的計算:max-age、s-maxage、Expires 與啟發式期限
快取在不詢問 origin 的情況下可以直接使用一份副本多久:新鮮度期限的取用順序、Age 標頭與副本年齡的計算、沒有明確期限時規範允許的啟發式期限,以及 Chromium、Firefox、Varnish、nginx 在啟發式期限上的差異 2026-09-24
服務規模成長的閱讀路線:架構撞到限制的訊號、要補的能力與對應章節
一個服務從一臺機器演進到多區域多服務的過程裡架構撞到限制的訊號、每個訊號對應要補的能力與章節,以及入門影片常用的比喻各對應到哪一篇 2026-07-04
webhook 對外承諾:投遞保證不是預設、consumer 負責一半
webhook 是盡力而為的事件推送不是可靠佇列:投遞保證逐 vendor 讀、可靠性責任分一半給 consumer 2026-07-03
11.2 風格選型總覽
REST 式 HTTP+JSON、GraphQL、gRPC、tRPC、JSON-RPC、event 之間選哪個 — 用消費者形狀、演進成本、操作可及性三軸判讀 2026-07-03
11.C2 Fielding:REST API 必須是 hypertext-driven
REST 定義擁有者公開否定業界主流用法的引爆點文獻、六條規則劃出 hypertext-driven 的判別線 2026-07-03
GraphQL 執行成本與攻擊面
resolver 執行模型讓請求成本不再是常數 — N+1 的基礎設施化、成本計點限流、introspection 偵察、persisted queries 的收斂路線 2026-07-03
gRPC streaming 與部署邊界:trailers、proxy 與 debug 可及性
選 gRPC 前要先確認的部署約束:瀏覽器過不了 trailers 需翻譯 proxy、on-call 徒手 debug 的可及性代價 2026-07-03
JSON-RPC 的適用條件:最小夠用的訊息層
本地雙向低頻、需 notification 語意、生態要求零 codegen 可自省 —— 這組條件下 JSON-RPC 比重型 RPC 更貼 2026-07-03
Richardson 成熟度的實用讀法
RMM 四級當定位與溝通工具的用法、每一級的工程意義、以及把它當合規認證或升級路線圖的誤用邊界 2026-07-03
描述格式的選型:OpenAPI 與 AsyncAPI
描述 API 形狀的格式標準怎麼選:看既有採用動能、看涵蓋的介面種類、以及 REST 加 event 混合時的治理配置 2026-06-23
GitHub Actions:Environment Protection 與 OIDC Cloud Auth
用 environment protection rules 做 deploy approval gate、用 OIDC 取代 long-lived cloud credential。 2026-05-27
10.2 服務拆分執行 Runbook(Strangler Fig / 雙寫期 / 切流 / 回退)
10.1 決定該拆之後、實際怎麼動手拆 — Strangler Fig pattern、雙寫期管理、切流策略、回退條件設計 2026-05-13
1.2 Schema Design 與資料建模
整理 table、index、key、partition、denormalization 與命名規則 2026-05-12
9.2 Workload Modeling
把 production traffic shape 翻成可重播的壓測模型 2026-05-12
9.C2 GR8 Tech:AI 預測式自動擴容下的體育博彩高峰
AI 預測 + EKS 自動擴容怎麼在 25ms p95 下承載 54000 TPS 體育博彩峰值流量 2026-05-07
2.C2 Meta:mcrouter 與跨區快取路由
快取從單點最佳化演進到分散式路由層的案例。 2026-05-07
3.C2 VMware Tanzu CloudHealth:Kafka 轉 Amazon MSK
自管 Kafka 遷移到託管平台時的治理重點。 2026-05-07
5.C2 Condé Nast:EKS 平台整併與標準化
多地區異質 Kubernetes 平台整併為統一控制面的案例。 2026-05-07
7.C2 Cloudflare:2023 Control-plane Token 事件
控制面 token 事件如何回寫 secrets 與機器憑證治理。 2026-05-07
AWS 2021 US-EAST-1 Control Plane Degradation
2021-12-07 AWS us-east-1 控制面退化案例:內部網路壅塞、API 錯誤率升高、跨服務依賴連鎖與通訊節奏調整。 2026-05-07
Cloudflare 2023 Control Plane Token Incident
2023-01-24 Cloudflare service token 錯誤變更導致多產品連鎖影響的事故解析:信任邊界、擴散機制、止血策略與流程回寫。 2026-05-07
Gaming:高峰流量下的訊號新鮮度與 Cardinality
在高峰事件中控制訊號延遲與維度爆炸,維持告警與定位可信度。 2026-05-07
Gaming:高峰流量與隔離邊界選型
大型活動流量下,如何在低延遲與穩定性之間做可持續取捨。 2026-04-23
0.1 後端服務能力地圖
用需求類型判斷應先評估資料庫、快取、訊息佇列、觀測平台或部署平台 2026-04-23
2.2 cache aside 與失效策略
整理 read-through 思路、cache miss 與 invalidation 2026-04-23
3.2 durable queue 與重試策略
整理持久化佇列、DLQ 與重試流程 2026-04-23
4.2 metrics 與 SLI/SLO
整理 counter、gauge、histogram 與服務健康指標 2026-04-23
5.2 Kubernetes 部署策略
整理 deployment、probe 與 rolling update 2026-04-23
6.2 load test
把 production 流量結構轉成可重播壓力情境,定位 saturation 轉折與容量邊界 2026-04-23
8.2 事故指揮與角色分工
定義 incident commander 與跨角色協作責任 2026-10-15
Backend 範例系統:短網址、售票搶購、電商 checkout 與交易撮合的功能、需求與規模假設
Backend 教材幾篇以具體系統走完整條請求路徑的文章共用的四個範例系統:每個系統提供的功能與請求種類、不能讓步與可以讓步的需求、規模假設與起點架構,以及四個系統在成功請求的總數是否有上限、延遲是否改變請求的價值、同一個請求被處理兩次的後果上的差別 2026-10-05
單機練習用的 Kubernetes:kind、k3d 與 minikube 的節點模擬方式、預設元件、主機連線與單機上量得到和量不到的行為
比較 kind、k3d、minikube 三種在一台電腦上起 Kubernetes 叢集的工具:節點怎麼用容器模擬、預設附了哪些元件以及缺少時在哪裡現形、主機的 image 與網路怎麼接進叢集,以及節點共用同一台電腦這件事讓哪些 Kubernetes 行為量得到、哪些量不到,最後是三者的閒置開銷與適合練習的對象 2026-10-02
12.3 過期副本的驗證:條件請求、304 回應、no-cache 與 no-store
副本過期之後快取怎麼向 origin 確認它是否仍然有效:ETag 與 Last-Modified 兩種驗證子、條件請求與 304 回應、no-cache、no-store 與 must-revalidate 的語意差別,以及共用快取實作在驗證上的預設行為 2026-07-03
11.3 資源建模與操作語意
endpoint 該建模成資源還是動作、HTTP method 與 status 承諾了什麼、available actions 由誰計算 — 建模決策的判斷標準 2026-07-03
11.C3 Richardson 成熟度模型:分級階梯與它的自我聲明
RMM 四級是理解 REST 元素的思考工具、一手來源自己警告它不是 REST 分級定義;業界停在 Level 2 的參照系 2026-07-03
gRPC 內部 RPC 的選型位置:框架層集中的組織前提
gRPC 值得選的判斷標準是要不要一個框架層集中點、不是序列化效能;用規模兩端判讀何時集中價值蓋過 debug 代價 2026-07-03
公開 API 的 GraphQL 進退
GitHub 雙軌、Shopify all-in、與撤退案例 — 同一技術不同結局的情境變數、GraphQL 的適用邊界 2026-06-22
4.3 tracing 與 context link
整理 trace id、span 與跨服務 context propagation 2026-06-11
10.3 託管形態遷出:資產線盤點與並行期執行
0.21 升級自建 tripwire 觸發後的執行劇本 — 把遷出拆成資料、身分、流量、整合各自的可攜性與斷點、設計舊平台與新系統的並行期與回切窗口、用部分遷出作為中繼形態 2026-05-13
1.3 Transaction 與一致性邊界
交易邊界、isolation level、retry 策略、distributed transaction(2PC、Saga)與跨 region 強一致取捨 2026-05-12
9.3 壓測工具選型
k6 / JMeter / Gatling / Locust / Vegeta / Production Replay 的工程選型 2026-05-12
9.C3 Coinbase International Exchange:超低延遲交易的逆向容量設計
為什麼 Coinbase 國際交易所選 Cluster Placement Group + z1d 而不是自動擴容 — 延遲敏感型負載的容量取捨 2026-05-08
AWS:Control Plane 事故的責任邊界與通訊節奏樣式(2023)
以 AWS 2023 年公開事件樣式為主,整理 control plane 退化時如何建立責任邊界、決策紀錄與對外更新節奏。 2026-05-07
2.C3 Shopify:快取序列化格式遷移
快取 payload 從 Marshal 轉 MessagePack 的遷移策略。 2026-05-07
3.C3 LinkedIn:TopicGC 與 Kafka 治理轉換
Kafka topic 從手動治理轉自動治理對叢集的影響。 2026-05-07
5.C3 Orbitera:遷移到 Managed Kubernetes
平台重置時如何讓產品不中斷地完成編排層轉換。 2026-05-07
7.C3 Azure AD:2021 Identity Control-plane 事件
身分控制面事件如何影響多服務信任鏈與回復優先序。 2026-05-07
Cloudflare 2026 BYOIP BGP Withdrawal
2026-02-20 Cloudflare BYOIP prefixes 被非預期撤告的事故解析:Addressing API bug、BGP withdrawal、狀態恢復與控制面回寫。 2026-05-07
Healthcare:存取可追溯性與保留邊界
在資料主權限制下,建立可追溯存取證據與分層保留策略。 2026-05-07
Healthcare:資料主權與回復順序選型
醫療場景下,如何把資料主權、存取邊界與災難回復放進同一套決策。 2026-04-23
0.2 狀態與資料儲存選型
區分 source of truth、快取、搜尋索引、event log 與 object storage 的選型邊界 2026-04-23
2.3 TTL 與 eviction
整理過期策略、容量控制與熱點資料 2026-04-23
3.3 outbox pattern 與發佈一致性
把 transaction 與 event publish 分離 2026-04-23
5.3 load balancer 合約
整理 idle timeout、draining 與 health check 2026-04-23
6.3 fuzz campaign
用自動化輸入探索覆蓋未知邊界:target 設計、corpus 管理、crash reproduction 與 CI 整合 2026-04-23
8.3 止血、降級與回復策略
把短期止血與正式回復拆成可執行步驟 2026-10-02
10.4 服務終止的範圍:外部引用的種類與持有者
服務本身要結束時,盤點它發出去、存在別人手上的外部引用:網址、寫在別人程式或韌體裡的端點、被嵌入的程式碼網址、名稱與綁在網域上的身分;持有者依聯絡得到的程度分成直接客戶、間接使用者與第三方持有者;引用在服務結束後的結局:失效或易手 2026-10-02
12.4 快取鍵與副本共用:Vary、Cookie 與 Authorization
快取用什麼條件挑出一份副本回應請求:快取鍵的組成、Vary 如何把請求標頭加進快取鍵、帶 Authorization 的請求在共用快取的規則、Cookie 與 Set-Cookie 在規範與實作上的處理,個人化回應的標頭選擇,以及沒有列進快取鍵的輸入造成的快取投毒與快取規則造成的 web cache deception 2026-07-03
11.4 錯誤模型設計
錯誤該分幾類、格式怎麼定才有演化空間、機器判讀跟人類訊息怎麼分工 — 錯誤作為契約一級公民的設計判斷標準 2026-07-03
11.C4 Carson Gross:REST 如何變成 REST 的反義詞
hypermedia 復興派的語意漂移史重建:JSON 取代 XML、業界停在 Level 2、SPA 脫鉤到 GraphQL 放棄名義 2026-06-22
4.4 dashboard 與 alert 設計
讓 dashboard 與 alert 對應 runbook 與容量趨勢 2026-05-13
1.4 Repository Adapter 實作
Port / Adapter 邊界、row mapping、error translation、ORM vs query builder 選型、contract test 設計 2026-05-12
9.4 Saturation Discovery
找出 throughput plateau 與 latency knee 的方法 2026-05-12
9.C4 DraftKings:Aurora 處理每分鐘 100 萬 ops 的體育博彩金融帳本
DraftKings 用 Aurora MySQL 跑體育博彩金融帳本、Super Bowl 流量 +50% 不影響延遲 2026-05-07
2.C4 Meta:CacheLib / Kangaroo 分層快取
快取從 DRAM-only 轉向分層快取架構的實務案例。 2026-05-07
3.C4 LinkedIn:Kafka 分層叢集治理
Kafka 從單叢集走向 tiered clusters 的轉換案例。 2026-05-07
4.C4 AWS:X-Ray 到 OpenTelemetry 轉換
觀測儀表從 vendor-specific SDK 轉向 OpenTelemetry 的治理重點。 2026-05-07
5.C4 Mobileye:Workloads 遷移到 EKS
大規模工作負載遷移到 managed Kubernetes 的分段治理案例。 2026-05-07
7.C4 Microsoft:Storm-0558 簽章金鑰事件
簽章金鑰事件如何回寫 identity 信任邊界與觀測證據鏈。 2026-05-07
Cloudflare 2023 Workers KV Deployment Tool Misconfiguration
2023-10-30 Cloudflare 控制面事故:deployment tool 設定錯誤造成 Workers KV 連鎖影響,重點在變更範圍限制與決策回寫。 2026-05-07
營運後技術轉換:語言、工具與架構何時該換
服務營運一段時間後,如何判讀何時該轉語言、工具或架構,並用案例說明轉換動機。 2026-04-23
0.3 非同步與事件傳遞選型
區分背景工作、durable queue、stream、pub/sub 與 outbox 的選型邊界 2026-04-23
2.4 distributed lock 與租約
整理鎖語意、租約風險與適用場景 2026-04-23
3.4 consumer 設計與去重
整理 consumer、checkpoint 與 replay safety 2026-04-23
5.4 service discovery
整理 endpoint discovery 與 DNS 2026-04-23
6.4 chaos testing
把故障注入從工具操作升級成可驗證流程:先定義穩態,再按依賴類型設計注入、控制 blast radius 與收集證據 2026-04-23
8.4 事故通訊與狀態更新
建立內外部通報節奏與狀態更新格式 2026-10-02
10.5 退場能力的設計前置:端點間接層、本地運作模式與引用的命名空間
服務上線時就決定、越接近關閉越難補上的設計:客戶端讀取服務位置的間接層、沒有雲端時裝置還能做什麼、外部引用落在提供者還是客戶的命名空間、使用紀錄與可交出的資料格式,以及依賴第三方契約與授權而無法移交的功能 2026-10-02
12.5 已保存副本的更新方式:失效、purge、版本化網址與等待到期
origin 想改變已經被快取保存的副本時可用的手段:規範定義的失效、CDN 與反向代理提供的 purge、換網址的版本化做法與 immutable、只作用於瀏覽器的 Clear-Site-Data,以及每一種手段能傳到哪幾種快取 2026-07-03
11.5 版本策略與 deprecation
版本方案怎麼選(URI/header/date-based)、支援窗口怎麼承諾、舊版怎麼安全退場 — 承諾分期與回收的操作設計 2026-07-03
11.C5 htmx HATEOAS essay:透支帳戶的兩種表徵對照
同一個 domain 狀態的 HTML 與 JSON 表徵耦合差異、HATEOAS 有無的操作型判別法 2026-06-22
4.5 可觀測性威脅建模(Threat Modeling)
從觀測盲區、告警失真與資料暴露風險,盤點 observability 的主要弱點 2026-05-13
1.5 攻擊者視角(紅隊):資料層弱點判讀
從資料存取邊界、外洩路徑與修復代價、盤點 database 的主要弱點 2026-05-12
9.5 瓶頸定位流程
從 app 到 DB / cache / broker / 第三方 quota 的逐層瓶頸定位 2026-05-12
9.C5 Amazon Ads:DynamoDB 9000 萬 reads/sec 的廣告事件量測
Amazon Ads 在 DynamoDB 上跑 9000 萬 reads/sec + 500 萬 writes/sec、99.999% 可用性的廣告事件量測 2026-05-07
2.C5 Shopify:Write-through Cache 在高讀流量的實作
read-heavy 服務如何轉向 write-through 快取模型。 2026-05-07
3.C5 Slack:Job Queue 演進到 Kafka + Redis
背景工作通道在成長期如何從單一路徑演進成組合式架構。 2026-05-07
4.C5 Google Cloud:Cloud Trace 導入 OTLP 入口
觀測平台從專有入口擴展到 OTLP 標準通道的案例。 2026-05-07
5.C5 Miro:Managed EKS 遷移
從自維運平台轉向 managed EKS 的組織與技術協同案例。 2026-05-07
7.C5 Okta:2023 Support System 事件
支援系統存取憑證風險如何擴散到客戶租戶的案例。 2026-04-24
3.5 攻擊者視角(紅隊):傳遞層弱點判讀
從重複投遞、重放濫用、毒訊息與容量壓力,盤點 message delivery 的主要弱點 2026-04-24
5.5 平台與入口威脅建模(Threat Modeling)
以概念層判讀部署平台弱點,聚焦入口、生命週期、設定與交付節奏 2026-04-24
6.5 失敗模式預判(Pre-mortem 與 FMEA)
用 pre-mortem 反向推導失敗路徑、用 FMEA 分類軸評估驗證缺口,把可靠性盲區變成可排序的改善輸入 2026-04-23
0.4 操作平台選型
區分 log、metric、trace、dashboard、alert、deployment 與 reliability 的選型邊界 2026-04-23
2.5 presence store 與即時狀態
整理線上狀態、跨節點查詢與過期清理 2026-04-23
8.5 復盤與改進追蹤
把 RCA 與 action items 轉成可驗證閉環 2026-10-02
10.6 命名空間與網域的處置:續約、名稱保留與回收、懸空 DNS
服務結束時網域與名稱的去向,以及它們決定外部引用是失效還是易手:網域的續約與出售、交給中立方的技術控制、套件與雲端資源名稱釋出後被重新申請與佔位、雲端資源刪除後的懸空 DNS 與子網域接管,以及綁在可過期網域上的帳號身分 2026-10-02
12.6 過期副本的延用:stale-while-revalidate 與 stale-if-error
快取在什麼條件下可以給出已經過期的副本:規範對過期副本的預設禁止、RFC 5861 的 stale-while-revalidate 與 stale-if-error 兩個擴充指令的語意與窗口,以及 Varnish、nginx 與瀏覽器在支援上的差異 2026-07-03
11.6 向後相容的變更紀律
哪些變更算 breaking、相容性檢查放人工還是 CI、檢查粒度怎麼選 — 讓介面變更可審可擋的日常紀律 2026-07-03
11.C6 HAL spec:JSON hypermedia 標準化的過期 draft
在 JSON 上補 hypermedia 最接近成功的一次:有 spec 有生態、標準化止步於過期 IETF draft 2026-06-22
4.6 SLI 量測與 SLO 訊號設計
把可靠性目標的訊號從 metric 端設計好、餵給 6.6 SLO 政策 2026-05-13
1.6 資料庫轉換實作:雙寫、回填、切流與回滾
同一個資料庫引擎內 schema 演進與資料變更的分段驗證流程:expand-contract、回填、驗證查詢、切流與回滾;換資料庫引擎的遷移不在範圍內 2026-05-12
9.6 容量規劃模型
peak forecast、headroom budget、growth curve、autoscaling sizing 2026-05-12
9.C6 Tinder:ElastiCache for Valkey 承載 4700 萬月活的配對引擎
Tinder 用 Amazon ElastiCache for Valkey 提供配對引擎所需的次毫秒延遲快取層 2026-05-11
3.6 Processing Semantics 與 Recovery Semantics
說明投遞成功、處理成功與恢復成功為何是三個不同判斷。 2026-05-11
5.6 Platform Lifecycle Contract
說明 runtime、startup、readiness、liveness、shutdown 與 drain 如何組成平台生命週期合約。 2026-05-07
2.C6 Netflix:EVCache 全域快取層
快取從本地層演進為跨區分散式能力的案例。 2026-05-07
3.C6 Uber:Kafka 事件平台演進
事件平台從團隊自管走向多租戶共享基礎設施。 2026-05-07
4.C6 AWS:ADOT on EKS 管線遷移
從分散式 agent 組合轉成 OpenTelemetry collector 管線治理。 2026-05-07
5.C6 Airbnb:Kubernetes 叢集擴縮演進
從手動擴縮走向自動化容量治理的部署平台案例。 2026-05-07
7.C6 Okta:Cross-tenant Impersonation 防禦回寫
跨租戶 impersonation 風險如何轉成身份治理與偵測策略。 2026-05-01
6.6 SLO 與 Error Budget 政策
把可靠性目標轉成可驗證量測與凍結條件 2026-04-24
2.6 快取威脅建模(Threat Modeling)
從快取污染、一致性偏移與流量放大風險,盤點 cache/redis 的主要弱點 2026-04-23
0.5 流量與資料量評估
用流量形狀、資料成長、hot key、保留期限與尖峰模式評估後端需求規模 2026-04-23
8.6 演練與值班能力建設
用演練與值班訓練提升事故反應品質 2026-10-02
10.7 分階段退場:停止新建、唯讀、靜態封存、關閉與公告期
服務結束時把一次全部關閉拆成幾個階段:停止新建、唯讀、靜態封存與關閉各保留什麼、對哪一類持有者有效、維運成本降到哪裡;依使用紀錄決定保留範圍;推動客戶遷移的手段;以及公告期長度、通知管道與補償的安排 2026-10-02
12.7 瀏覽器端的快取行為:重新整理、強制重新整理與上一頁
瀏覽器在不同操作下怎麼使用自己的 HTTP 快取:WHATWG Fetch 規範定義的快取模式、一般瀏覽、重新整理與強制重新整理各自送出的請求、請求端快取指令對中介快取的效力,以及與 HTTP 快取分開運作的 back/forward cache 2026-07-03
11.7 集合介面設計
分頁方案的承諾差異、批次操作的部分失敗語意、超過請求逾時的長時操作怎麼回 — 集合與長時操作的介面判斷標準 2026-07-03
11.C7 Siren spec:表達力更完整、採用曲線停滯
帶 first-class actions 的 hypermedia 格式、表達力勝 HAL 而採用更少;client 生態決定格式命運的證據 2026-05-12
9.7 成本邊界與 efficiency
cost per request、cost curve、降級成本、over-provisioning trade-off 2026-05-12
9.C7 Lyft:100+ 微服務在 8 倍峰值下的 Auto Scaling
Lyft 用 AWS Auto Scaling 跨 100+ 個微服務承載 8 倍峰值流量、跨 200+ 城市 2026-05-11
1.7 Schema Migration Rollout 證據(Schema Migration Rollout Evidence)實作示範
以訂單付款狀態欄位演進示範 schema migration 如何產出 evidence、release gate 與 incident decision log。 2026-05-11
2.7 Cache Copy Boundary 與 Freshness
說明快取何時只是可重建副本,何時會影響交易、權限或配額正確性。 2026-05-11
3.7 Event Contract 與 Replay Boundary
說明 event schema、idempotency key、replay window 與補償如何先於 broker 選型。 2026-05-11
5.7 Traffic、Config 與 Control Plane Boundary
說明流量、設定、secret、service discovery 與管理面如何分責任與回退。 2026-05-07
2.C7 Cloudflare:Cache Reserve 分層儲存快取
邊緣快取延伸到持久層以降低回源壓力的案例。 2026-05-07
3.C7 LinkedIn:Kafka 自動修復治理
Kafka 維運從人工處置轉向自動修復的案例。 2026-05-07
4.C7 Datadog:OTel 相容遷移實務
APM 採集從專有代理轉向 OTel 相容模式的治理案例。 2026-05-07
5.C7 Airbnb:Istio 升級治理
service mesh 升級在大規模環境下如何保持高可用。 2026-05-07
7.C7 Okta:BYO Telephony 的身份安全責任轉換
MFA 簡訊/語音路徑從平台托管轉向客戶自管的治理案例。 2026-05-01
4.7 Cardinality 治理與成本邊界
把 metric / log / trace 的 cardinality 與成本作為平台一級治理議題 2026-05-01
6.7 DR 演練與 Rollback Rehearsal
把回復路徑從紙面計畫變成定期可重播、可量測的驗證流程 2026-04-24
8.7 失敗模式審查(Failure Mode Audit)
以概念層判讀事故流程弱點,聚焦分級、指揮、回復與交接節奏 2026-04-23
0.6 成本、風險與選型取捨
用人力成本、雲端成本、操作成本與失敗代價判斷後端能力投入順序 2026-10-02
10.8 移交:資料匯出、開源與交給社群或封存機構
服務結束時把讓外部引用繼續運作所需的資料、程式碼與網域交出去:交給直接客戶的資料匯出、開源程式碼能不能獨立運作、社群接手需要提供者事先留下什麼、封存機構的兩種取得方式(業者合作交出與外部爬取),以及交不出去的部分 2026-10-02
12.8 快取設定的應用:轉址、需登入的 API 回應與個人化頁面
把 HTTP 快取的保存位置、新鮮度、驗證、快取鍵與更新規則用在具體回應上:永久與暫時轉址的狀態碼與快取標頭、需登入的 API 回應、個人化頁面、靜態資源與引用它的頁面,以及檢查實際送出的快取標頭的方法 2026-07-03
11.8 API 層冪等設計
idempotency key 誰生成、存多久、replay 回什麼、衝突怎麼回 — 對外冪等契約的條款設計與無標準現況 2026-07-03
11.C8 Ben Morris:不做 hypermedia 的 pragmatic REST(反例對照)
反例對照:逐條拆 HATEOAS 的收益假設在 machine-to-machine 場景不成立的 pragmatic 派立場文 2026-06-22
4.8 訊號治理閉環
把 postmortem 揭露的偵測缺口回寫成新訊號、讓觀測能力隨事故學習成長 2026-05-13
1.8 State Ownership 與 Query Boundary
正式狀態 vs 派生狀態的責任分層、CQRS / event sourcing / materialized view、交易 / 列表 / 報表 / 對帳查詢各自的邊界 2026-05-12
9.8 效能可觀測性
saturation metric、USE / RED method、cost dashboard 2026-05-12
9.C8 Niantic Pokémon GO:在 GCP 上承載 50 倍突發流量
Pokémon GO 上線時實際流量達原始預估 50 倍、Google CRE 怎麼即時補容量 2026-05-11
2.8 Cache Data Shape 與 Access Pattern
說明 cache value、key space、資料結構與存取型態如何反映服務語意。 2026-05-11
3.8 Queue Consumer Retry 與 Replay Handoff(實作示範)
以 order_created consumer 示範 queue 路徑如何交付 idempotency evidence、DLQ handling、replay runbook 與 incident decision log。 2026-05-11
5.8 Deployment Rollout with Drain and Rollback(實作示範)
以 checkout service 示範部署切換如何交付 canary evidence、drain signal、release gate 與 incident decision log。 2026-05-07
2.C8 Meta:TAO 社交圖快取演進
社交圖查詢在規模化下如何把快取做成資料層能力。 2026-05-07
3.C8 Cloudflare:Queues 全球交付模型
事件佇列服務在全球網路下的交付語義與治理案例。 2026-05-07
4.C8 Airbnb:Kubernetes 規模化下的觀測訊號治理
叢集擴縮與工作負載變動如何回寫觀測模型。 2026-05-01
6.8 Release Gate 與變更節奏
把驗證、migration、相容性納入放行條件 2026-04-23
0.7 錯誤定位、觀測訊號與備援切換設計
從錯誤分類、定位線索、降級策略與 failover 設計服務可維護性 2026-07-03
11.9 對外流量語意
rate limit 對消費者承諾什麼、429 與 Retry-After 怎麼設計、配額 header 該不該信 — 限流作為契約的語意設計 2026-07-03
11.C9 twobithistory:被挪用的 REST 論文(史觀對照)
第三方歷史考據:論文談的是 HTTP/1.1 設計而非 API 建構、業界棄 SOAP 時把 pragmatic 用法掛上 REST 名字;二手來源 2026-06-22
4.9 Continuous Profiling
把 CPU / memory / lock profile 從一次性除錯升級為持續訊號 2026-05-27
5.9 邊緣分發與靜態資源(CDN / Origin Protection)
整理 CDN 與 edge cache 在部署平台中的責任邊界、origin protection、purge 與 invalidation 策略 2026-05-13
1.9 Reconciliation 與 Data Repair
資料不一致的分類、偵測模式、修復策略、audit trail、跟 backup / PITR 整合 2026-05-12
9.9 Performance Improvement Loop
壓測 → profile → fix → re-test → release gate 的閉環 2026-05-12
9.C9 Spotify:從自管 Kafka 遷移到 GCP Pub/Sub 的事件交付系統
Spotify 把自管 Kafka 事件系統遷移到 Google Cloud Pub/Sub、避免自管 broker 的容量規劃成本 2026-05-11
2.9 Cache Migration 與 Stampede Rollback(實作示範)
以商品詳情與價格快取示範 cache migration 如何交付 evidence package、release gate 與 incident decision log。 2026-05-07
2.C9 反例:快取切換引發 Stampede 回歸
快取策略切換若缺乏保護,會導致回源壓力與錯誤率連鎖上升。 2026-05-07
3.C9 反例:Queue 語義切換誤配
at-least-once / exactly-once 語義誤配導致資料重複與遺漏。 2026-05-07
4.C9 反例:OTel 遷移後訊號漂移
雙軌採集未對齊導致告警與 SLO 判讀失真。 2026-05-07
5.C9 反例:平台切流未先 Draining
切流時忽略連線清退造成請求錯誤與重試風暴。 2026-05-07
7.C9 反例:存取憑證輪替未分 Scope
存取憑證輪替若未分域分批,容易造成跨系統連鎖中斷。 2026-05-01
6.9 容量與成本邊界
把容量規劃跟成本約束變成驗證輸入 2026-05-01
8.9 事故型態庫入口
把跨服務的共通事故型態抽成型態卡,作為新事故的判讀錨點 2026-04-23
0.8 資安與資料保護需求
從身分來源、權限分級、伺服器防護、資料遮罩、傳輸保護與稽核設計安全邊界 2026-07-06
Dockerfile 設計:指令、layer 與 multi-stage
image 大得離譜、code 一改就整包重 build、或 multi-stage 複製 binary 後 container 起不來說找不到 library 時回來讀 — Dockerfile 指令怎麼變成 layer、build 與 runtime 怎麼分離 2026-07-03
11.10 API 規範治理
設計規範怎麼讓幾十個團隊持續遵守 — 提案制、Guild 制、分軌制的治理模式比較、linting 進 CI、規範失敗的成因 2026-07-03
11.C10 Stripe:日期滾動版本與 version change module
把相容性從路由層搬進轉換層、breaking change 成本由服務端一次吸收;date-based versioning 的原型案例 2026-06-22
4.10 Client-side / Synthetic / RUM
補 server-side 看不到的 user perceived 訊號 2026-06-22
Cloud Monitoring Metrics Model 與 MQL
說明 GCP Cloud Monitoring 的 monitored resource / metric descriptor 模型、MQL 與 PromQL 查詢、custom metrics 設計、alerting policy 與 Managed Prometheus 整合 2026-06-22
CloudWatch Logs Insights 查詢與日誌治理
說明 CloudWatch Logs Insights 查詢語法、log group 設計、retention policy、cross-account aggregation、subscription filter 與 cost governance 2026-06-22
Datadog 成本治理與 Agent 配置
說明 Datadog 的計價模型、custom metrics 成本控制、Agent 部署配置與常見故障模式 2026-06-22
High-Cardinality Query Model 與 BubbleUp
說明 Honeycomb 的 event-based 資料模型、high-cardinality 查詢設計、BubbleUp 異常偵測、SLO / burn rate、derived columns、dataset 設計與 OTLP ingestion 2026-06-22
Index Lifecycle Management 與 Log Pipeline
說明 Elasticsearch ILM policy 設計、data stream / rollover、Beats vs Elastic Agent 採集選擇、ingest pipeline 與 shard sizing、cross-cluster 策略與 cost governance 2026-06-22
LGTM Stack 組合運維:Loki + Grafana + Tempo + Mimir
說明 Grafana Stack 四個元件的責任分工、部署模式、常見故障與 dashboard provisioning 2026-06-22
Prometheus 容量規劃與故障模式
說明 Prometheus 單機容量邊界、cardinality 與 retention 的資源模型、常見故障模式與判讀方式 2026-06-22
Sentry Error Grouping 與 Fingerprinting 策略
說明 Sentry 預設 grouping 演算法、自訂 fingerprint rules、merge/unmerge 操作、grouping 不準的判讀與大量 unique errors 的治理 2026-06-16
2.10 Pub/Sub 與即時 fan-out
說明 Redis Pub/Sub 的即時廣播責任、at-most-once 邊界,以及何時升級到 Streams 或正式 message queue 2026-06-16
5.10 Outbound Tunnel 入口與生命週期
整理 cloudflared / Tailscale 等反向隧道的入口形態、生命週期合約與故障模式 2026-06-16
OTel Collector 部署模式:agent / gateway / sidecar 與 pipeline 設計
說明 OpenTelemetry Collector 三種部署位置的責任分工、receivers/processors/exporters pipeline 設計,以及 collector 失效、記憶體壓力與 backpressure 的故障演練與容量邊界 2026-05-18
Cloudflare Page Shield:用 CSP + SRI + script monitoring 防 client-side supply chain
Page Shield 三層防禦(CSP / SRI / script monitoring)對應 Magecart / formjacking / skimmer / 第三方 SDK 注入的不同 attack pattern、Cloudflare dashboard + API 配置、四個 production 踩雷(inline script 漏 / dynamic loader / CSP report 噪音 / SRI hash mismatch)、跟 dev workflow + WAF 整合 2026-05-18
HashiCorp Vault Dynamic Credential:lease 治理跟 application 整合的實作層
Vault database secrets engine 怎麼配、application 怎麼 renew lease、production 五大踩雷(lease 過期 race、DB max_connections 撞牆、Vault sealed、token expire、scope 過寬)、容量規劃跟 vault-agent injector 整合 2026-05-18
Kubernetes Graceful Shutdown:termination 序列跟你以為的不一樣
K8s pod termination 五步序列、preStop / SIGTERM / terminationGracePeriodSeconds 的真實時序、5 個 production 踩雷(500 期間 502、connection drain race、init container 重啟、StatefulSet 串行終止、Job 不 graceful)、跟 service mesh / readiness probe 整合 2026-05-18
Splunk Risk-Based Alerting:從 alert per rule 到 score-aggregated notable
Splunk Enterprise Security 的 RBA 方法論:risk score / modifier / notable 三層 model、ES 配置 step-by-step、tuning playbook(false positive / score inflation / threshold drift / decay)、capacity 成本、跟 SOAR + case management 整合 2026-05-13
1.10 KV / Document DB 容量規劃
DynamoDB / Cosmos DB / Bigtable / MongoDB 等 KV / Document DB 的容量設計、partition key 取捨、capacity mode 選擇,以及加 region 之後寫入容量怎麼跟著乘上去 2026-05-12
9.10 Production-Side 驗證
shadow traffic、dark launch、canary、production-like load test 2026-05-12
9.C10 Cloud Spanner:每秒 10 億請求的全球一致性資料庫
Google Cloud Spanner 內部峰值 10 億 req/sec、跨地區強一致 — 全球分散式 OLTP 容量參考 2026-05-07
2.C10 對照:規模差異下的快取策略
同一快取策略在小中大型服務下會產生不同風險。 2026-05-07
3.C10 對照:規模差異下的佇列模型
同一 queue 模型在不同規模下的治理與失敗邊界差異。 2026-05-07
4.C10 對照:規模差異下的觀測遷移
觀測遷移在不同規模團隊下的流程與風險差異。 2026-05-07
5.C10 對照:規模差異下的平台遷移
平台遷移策略在小中大型組織下的差異。 2026-05-07
7.C10 對照:規模差異下的身份治理
identity 控制面治理在不同規模服務下的失敗邊界差異。 2026-05-01
6.10 Contract Testing 與 Schema 演進
把跨服務 / API / event schema 的隱性期待變成可驗證契約,控制演進相容性 2026-05-01
8.10 Stakeholder 通訊與外部狀態頁
把 impact scope、status page、補償政策串成節奏 2026-04-23
0.9 知識網:訊息與事件決策路徑
把 broker、queue、ack、retry、DLQ、replay 與 idempotency 串成可操作的非同步決策語言 2026-07-04
11.11 Status 與錯誤的雙向契約
status 與錯誤是兩端的合作契約:provider 該讓 consumer 知道什麼、consumer 收到錯誤怎麼判讀與回報、以及單邊設計怎麼把成本外部化給對方 2026-07-03
11.C11 Stripe 現行方案:具名 major release 與相容變更清單
同一家公司版本策略隨規模演進的第二個時間切片、附「什麼算 backwards-compatible」的明文清單 2026-06-23
Datadog OTLP Ingestion 與 OTel 整合
說明 Datadog Agent 的 OTLP receiver 配置、OTel SDK 與 Datadog SDK 的 feature parity 差異、resource attribute mapping、常見故障與成本模型 2026-06-23
Grafana Loki 設計與操作限制
說明 Loki 的 label-based 設計哲學、跟 Elasticsearch 的根本差異、label cardinality 限制、LogQL 查詢模式與成本模型 2026-06-22
4.C11 Uber:M3 大規模 Metrics 平台
從散落的 Prometheus 實例到統一 metrics 平台,處理 cardinality 爆炸、長期 retention 與跨叢集查詢的規模化挑戰。 2026-06-22
Cloud Logging 查詢、匯出與合規
說明 GCP Cloud Logging 的查詢語言、log router / sink 匯出架構、retention 設計、organization-level 聚合、audit log 與 PII / CMEK 合規治理 2026-06-22
CloudWatch Alarms 與 Composite Alarms 操作實務
說明 CloudWatch Metric Alarm、Anomaly Detection alarm、Composite Alarm 設計、alarm actions、missing data 處理與 cost 考量 2026-06-22
DragonflyDB → Redis / Valkey:回退到標準生態的遷移路徑
從 DragonflyDB 遷回 Redis 或 Valkey,處理 snapshotting → RDB/AOF 差異、HA 架構切換與 Cluster mode 重建的階段化流程 2026-06-22
KeyDB → Redis / Valkey:從多線程 fork 回歸主線的遷移路徑
從 KeyDB 遷回 Redis 或 Valkey,處理 active-active replication 拆除、多線程 → 單線程效能差異、FLASH storage 移除與 Sentinel/Cluster 對齊 2026-06-22
PromQL 與 Recording Rules 實務
說明 PromQL 常見查詢模式、recording rules 設計慣例、SLI 表達式寫法與效能陷阱的判讀方式 2026-06-22
Sentry Release Tracking 與 Session Replay
說明 Sentry release health、deploy tracking、session replay 隱私設定、performance monitoring 與 OTel 整合、self-hosted vs SaaS 取捨 2026-06-20
Rate Limit 實作
單機 middleware / Redis 分散式限速 / 配額設計 — 概念見 DevOps 流量管控,本章聚焦後端實作 2026-06-17
7.C11 選型:單人遠端 Shell — Tailscale vs Cloudflare Tunnel
以「手機遠端操作本機 shell」為情境,比較 Tailscale mesh VPN 與 Cloudflare Tunnel + Access 兩種存取模型的選型判讀。 2026-06-16
2.11 Redis data types 實作
說明 sorted set、bitmap、HyperLogLog、counter 與 hash 各自承擔的服務語意、容量行為與原子性邊界 2026-06-16
AWS ElastiCache 的責任邊界:managed 接手了什麼、又默默留下什麼
ElastiCache 把 failover、patching、snapshot、跨 AZ 複製接走,但 cache stampede、client 重連、key 設計、eviction policy 還是你的事。本文用 shared responsibility 拆解 managed 的真實邊界、展開 engine 選擇與 cluster mode 配置、5 個把『以為 AWS 全包』寫成事故的 production 踩坑,以及 ElastiCache 到 MemoryDB 的 durability 邊界 2026-06-16
AWS SQS → Google Pub/Sub:queue 模型搬到 topic + subscription 模型的跨雲遷移
SQS 是單一 region-scoped pull queue、Pub/Sub 是 global topic + first-class subscription 的 pub/sub 模型;這篇跨雲 migration playbook 走 6 維 diff dimension audit(components / data topology 軸 High)、對位 visibility timeout → ack deadline、maxReceiveCount → dead-letter topic、long polling → streaming pull、IAM policy → Service Account、SQS-to-many-consumer 要重設計成 topic fan-out;含 5 個 production 故障演練(fan-out 行為差 / ack deadline 太短重投 / ordering key vs FIFO / 跨雲網路成本 / DLT 設定差)跟 dual-publish 漸進 cutover 2026-06-16
Caffeine + Redis 兩層 cache:搭起來很容易,跨實例失效才是全部的問題
L1 Caffeine(process-local)+ L2 Redis(共享)的兩層 cache 程式碼三十行就寫完,但每個 JVM 實例有自己的 L1 副本、一個實例更新不會通知其他實例——跨實例 invalidation 才是這個架構的全部難度。本文展開兩層讀寫路徑、用 Redis pub/sub 廣播失效、5 個把 L1 stale 與 GC 寫成事故的 production 踩坑,以及哪些資料適合放 L1 2026-06-16
DragonflyDB shared-nothing 多核架構:用 scale-up 取代 Redis Cluster
Redis 要靠 Cluster 分片才能用滿一台多核機器,DragonflyDB 賭的是相反方向——單一進程 thread-per-core、shared-nothing、把單機推到 Redis 要好幾個 shard 才達到的規模。本文展開 thread-per-core 與 dashtable 的架構、fork-less snapshot、5 個把架構假設寫成 production 事故的踩坑,以及 scale-up 撞牆該回 Cluster 的邊界 2026-06-16
Google Pub/Sub push vs pull:不是實作偏好,是下游容量的判讀
Pub/Sub 的 push 與 pull subscription 常被當成實作偏好二選一,但它其實是一個容量判讀:push 把流量瞬間打到 endpoint,pull 讓 consumer 自己節流。下游有 RPS 限制就只能 pull。本文展開 subscription 模型、ack deadline、flow control 與 dead-letter topic,5 個把 push/pull 與 ack deadline 寫成下游打爆與重投的 production 踩坑 2026-06-16
Kafka Consumer Group Rebalance 與 Lag 診斷:從 protocol 到故障演練
Kafka consumer group 的 rebalance protocol(eager vs cooperative incremental)、static group membership、session.timeout.ms / max.poll.interval.ms / heartbeat.interval.ms 三個 timeout 的職責、consumer lag 均勻分布 vs 集中單一 partition 的診斷路徑、rebalance storm 成因與對策;含 kafka-consumer-groups.sh 實機驗證輸出與 4 個 production 故障演練 2026-06-16
KeyDB active-active 多主複製:last-write-wins 會默默吃掉哪一筆寫入
KeyDB 的 active-active 讓兩個 master 都能寫、互相同步,聽起來解決了跨區寫入的所有問題——直到兩邊同時寫同一個 key,last-write-wins 默默丟掉其中一筆。本文展開 active-active 的複製機制與衝突語意、實機驗證雙向同步、5 個把多主複製寫成資料遺失與迴圈的 production 踩坑,以及哪些資料能放 active-active、哪些不能的邊界 2026-06-16
Memcached slab allocator 與記憶體經濟學:明明有記憶體卻在 evict
Memcached 用 slab allocator 預切記憶體成固定大小的 chunk,這讓它永不碎片化、卻會在還有大量空閒記憶體時就開始淘汰——slab calcification。本文展開 slab class、growth_factor、page 分配的會計模型、5 個把 slab 機制寫成記憶體浪費與淘汰事故的 production 踩坑,以及純 KV 邊界與多執行緒擴展的判讀 2026-06-16
NATS core 到 JetStream:fire-and-forget 在哪裡不夠、跨過去要付什麼
Core NATS 的 fire-and-forget 在 consumer 重啟或 rolling deploy 時掉訊息——這不是 bug、是設計。需要訊息不丟就跨進 JetStream(persistence + at-least-once + redelivery)。本文展開 core 與 JetStream 的邊界、stream 與 consumer 的求值模型、實機驗證的 durable pull consumer、5 個把 JetStream consumer 寫成丟訊息與重投風暴的 production 踩坑 2026-06-16
Pub/Sub Ordering Key、Dead-Letter Topic 與 Schema Enforcement:三道交付治理
Pub/Sub overview 之下的 implementation-layer deep article — 把 ordering key 的有序代價、dead-letter topic 的 poison message 隔離、schema enforcement 的契約守門三件事寫到可操作:subscription 是 first-class、ackDeadline 與 extension、push vs pull vs streaming pull + flow control、Avro / Protobuf schema、Pub/Sub Lite 與標準版差異、BigQuery / Cloud Storage subscription,含 5 個 production 故障演練(ordering 限流 / ack deadline 太短重投 / DLT max delivery attempts / push 500 retry storm / schema 擋下不相容 publish) 2026-06-16
RabbitMQ → Kafka:從『處理即承諾』到『寫入即承諾 + 可 replay』的 paradigm shift
RabbitMQ 跟 Kafka 不是同類產品(work queue vs event streaming log)、把 work queue 直接搬成 topic 會踩 paradigm 落差;本文先跑 6 維 diff dimension audit(paradigm 跟 data topology 差最大)、釐清什麼 workload 真該遷什麼不該、再展開 application 重設計的 5 個踩雷(manual ack 觀念帶到 offset commit / routing key → partition key 的 ordering 邊界 / DLX → 自建 DLQ topic / prefetch → max.poll.records / 即刪 vs retention 的 replay 差異)、以及 dual-write / shadow consume 漸進 cutover 與長期混合架構 2026-06-16
RabbitMQ DLQ 與分層 retry:別把失敗訊息 requeue 回隊首
RabbitMQ 處理失敗訊息最常見的錯是直接 requeue 回原隊列——它回到隊首、反覆失敗、把後面的訊息全卡住(head-of-line blocking)。正解是用 dead-letter exchange + TTL 組出 work → delay → DLQ 的分層 escalation。本文展開 DLX 求值模型、實機驗證的三層拓樸、5 個把 retry 寫成無限迴圈與隊列阻塞的 production 踩坑,以及 retry 拓樸的容量邊界 2026-06-16
Redis → Valkey:同一份程式碼、不同授權的 drop-in 遷移
Valkey 是 Redis 7.2.4 的 fork,bit-for-bit 幾乎同源、RDB/AOF 檔案相容、client 一行不改——這是技術上最容易的 cache 遷移。真正的工作不在搬資料,在授權合規驗證與 fork 後分歧(Redis 7.4+ 功能、Stack 商業 module)的盤點。本文走 Type B drop-in、相容性 audit 前置、5 個把『最容易的遷移』寫成事故的踩坑 2026-06-16
Redis Streams → Kafka:從 embedded stream 長成 dedicated event streaming
Redis Streams 是 Redis 生態內的 append-only log data structure、Kafka 是專用 distributed event streaming platform;這趟遷移是 paradigm shift — 從 RAM-bound 單 stream key 換成 partition + log retention 的多節點系統。本文先用 Arcjet 反向案例點明多數中小規模 Redis Streams 就夠、不該為流行遷 Kafka、再講真的該遷的訊號(retention 超出 RAM 成本 / 長期 replay / consumer group 規模超出單 Redis)、XADD/XREADGROUP/XACK/MAXLEN/XCLAIM 的對位、retention 成本翻轉與 PEL→offset 誤用的故障演練、漸進 cutover 2026-06-16
Valkey 相容性驗證與 io-threads 調校:drop-in 切換與多執行緒的實機判讀
Valkey 跟 Redis 100% 相容這句話要怎麼驗證、切換才敢上線。本文用 INFO server 的雙版本回報拆解相容性的真實邊界、展開 Valkey 8 的 io-threads 多執行緒調校、5 個把 drop-in 切換或執行緒配置寫成事故的 production 踩坑,以及相容性撞牆該怎麼判斷的邊界 2026-06-16
從 Firestore 遷往自建 relational:撞牆驅動的 paradigm shift 重建模、存取模型反轉與並行期
Firestore → 自建後端 + relational 不是匯資料而是反轉存取模型:client 直連變 API 中介、Security Rules 授權變後端授權、document 反正規化變正規 schema、realtime listener 與 offline 同步要重建;涵蓋為何只搬資料的遷移不成立、哪些能力該遷哪些先留在平台、dual-write + shadow read 的階段化與遷出代價判讀 2026-05-19
Docker Swarm → Kubernetes:5 個 Swarm production cluster 撞牆數據
Docker Swarm → Kubernetes 是 Type E paradigm shift — Swarm「simpler container orchestration」設計上限在 100-200 service 規模、跨 application 服務治理時 paradigm 不足;本文用 5 個 production cluster 量化數據開頭、5 個 production 踩雷 2026-05-19
DynamoDB Strongly Consistent → Eventually Consistent:same protocol, different contract
DynamoDB consistency model 從 strongly consistent read 改 eventually consistent read 是 50% cost 優化但風險集中在 application contract — 同 vendor / 同 protocol / 同 table / 不同 read consistency;驗證 [#128](/report/data-topology-as-audit-dimension/) self-aware limitation 提出的 consistency axis 候選;涵蓋 read site audit、分階段切換,以及 read-your-write 失效、跨 record 寫入未綁交易、background job 重複處理、成本反升與 strong read 單獨失效這幾種 production 踩雷 2026-05-19
Kafka ↔ NATS:不是 migration、是 messaging paradigm 重設計
Kafka 跟 NATS 不是同類產品(log-based event streaming vs subject-based messaging)、'migration' 字面上不成立;本文釐清兩家 paradigm 邊界、什麼情境真的能換、application 模式重設計的 5 個踩雷(consumer offset 觀念差 / retention model / exactly-once 假設 / schema registry 缺位 / fan-out 模式差)、跟 JetStream 對位 + 混合架構 2026-05-19
MongoDB → Atlas:Atlas 不是 MongoDB + managed、是另一個 product
Self-managed MongoDB 遷到 Atlas:資料層 drop-in 相容,要重建的是 auto-scaling、VPC peering / private endpoint、IAM-driven access、內建 backup 與 billing 模型這套 operational stack;涵蓋分階段準備與 cutover,以及連線數限制、IP access list、backup retention、IAM token 過期、billing 暴漲這些 production 踩雷 2026-05-19
MySQL → PostgreSQL:從 SQL dialect diff 跑出來的 Type A phased translation migration
MySQL → PostgreSQL 是 Type A 高 schema 差 migration 的標準形態 — SQL dialect / collation / case sensitivity / replication 模型差異主導;用 pgloader / AWS DMS / 自管 dual-write 三條 path;production 踩雷涵蓋 auto_increment vs SERIAL、charset 跟 collation、identifier 大小寫、CDC pipeline 重建、FULLTEXT 對應 tsvector 2026-05-19
New Relic → Datadog:APM schema 對位 + agent 替換 + dashboard 重建
New Relic → Datadog 是 Type A schema diff migration — APM schema / NRQL ↔ Datadog query / agent / dashboard 全要對位;本文涵蓋 6-phase phased translation + 5 個 production 踩雷(NRQL 不直接對位 / synthetic alert 重建 / 計費模型反轉 / dashboard 自動轉失敗 / cross-platform metric 命名) 2026-05-19
Self-managed Prometheus → Grafana Cloud Metrics:feature × ops × cost 對照
Self-managed Prometheus → Grafana Cloud Metrics (Mimir-backed) 是 Type C operational redesign — Prometheus query API 完全相容、operational stack (HA / retention / scaling) 全託管;本文用 feature / ops / cost 三維對照表開頭、5 個 production 踩雷 2026-05-19
Sentry → Honeycomb:trace 不是 error、是不同 observability paradigm
Sentry → Honeycomb 是 paradigm shift — Sentry 主軸是 error tracking + transaction trace、Honeycomb 主軸是 high-cardinality wide-event observability;本文釐清 paradigm 邊界、5 個 production 踩雷(event schema 對位 / sampling 行為 / error grouping 失效 / cost 模型差 / alert paradigm shift) 2026-05-19
Terraform → OpenTofu:HCL 跟 state file 級 drop-in、CI runner 切 binary 完成
OpenTofu 是 Terraform 在 BSL license 後的 fork、Terraform 1.5.x baseline 完全相容(HCL / state / provider);本文是 Type B drop-in migration 的標準形態 — 用 code-led HCL / state diff sample 開頭、5 個 production 踩雷(provider version drift / state lock 微差 / Terraform Cloud feature 不支援 / CI binary name 假設 / registry routing) 2026-05-18
3.C11 Pinterest:Kafka tiered storage broker-decoupled
Pinterest 採 broker-decoupled tiered storage、把 ~200 TB/day 熱資料卸到 S3、broker 不再是熱路徑。 2026-05-18
PostgreSQL Patroni HA:從 leader 失聯到 client 重連的 failover lifecycle
Patroni 把 PostgreSQL HA 拆成 detection / election / promotion / reconfiguration / recovery 五段 lifecycle、每段都有獨立配置跟 failure mode;DCS quorum + watchdog 防 split-brain、async/sync replication 取捨、split-brain / standby 落後無法 failover / promotion 後 connection storm / pg_rewind 失敗 / watchdog 誤殺這些 production 踩雷、跟 PgBouncer / HAProxy / cert-manager 整合 2026-05-18
Splunk → Elastic Security Detection Rule Migration:6 段 phased playbook 跟 5 大踩雷
從 Splunk Enterprise Security 遷到 Elastic Security 的 detection rule translation playbook:SPL ↔ KQL/ES|QL schema 對位、AI-assisted translation pipeline、parallel run 比對、cutover routing、5 個 production 踩雷(macro 沒對應 / time zone 差異 / summary index 不對位 / alert dedup key 衝突 / 過早 decommission)、capacity / cost 對照 2026-05-13
1.11 全球分散式 OLTP
Spanner / Aurora DSQL / Cosmos DB multi-region write / CockroachDB / TiDB 的全球一致性取捨 2026-05-12
9.11 高峰事件準備
可預期峰值從 T-90 到 T-0 的準備時程:容量計畫、quota 申請、壓測、game day 與 pre-scaling 各排在事件前幾天、排在那裡的理由與項目之間的依賴,pre-scaling 的做法、watch room、event tier 分級與準備時間不夠時被壓縮的部分,以及事後 retro 2026-05-12
9.C11 Minecraft Earth:Azure Cosmos DB 上的全球分散式 AR 遊戲
Minecraft Earth 用 Cosmos DB 跨地區分散、測試到 100 萬 RU/s 仍維持承諾延遲 2026-05-07
Google:Error Budget 政策如何決定發布節奏
把 SLO 消耗量轉成 release gate,讓可靠性與交付速度共用同一套決策語言。 2026-05-07
Slack:2022 連線恢復與狀態通訊節奏
在通訊平台自身失效時,如何同步恢復節奏與對外狀態揭露。 2026-05-01
4.11 Telemetry Pipeline 架構
把 log / metric / trace 的 agent → collector → ingest → storage → query 分層治理 2026-05-01
6.11 Migration Safety 與 DB Rollout
把 schema migration 從一次性事件變成可逆、可漸進的 rollout 流程 2026-05-01
8.11 Observability / Reliability / Incident Response 閉環
把 04 / 06 / 08 三個模組的雙向反饋串成可判讀循環,定義閉環健康度判讀訊號 2026-04-23
0.10 知識網:容量、觀測與資安決策路徑
把容量、可觀測、備援、權限、數位憑證與稽核術語串成統一的服務治理語言 2026-08-11
11.12 API 消費者用量觀測:契約決策要的觀測維度、消費者身分的識別、欄位級用量與全量或抽樣的成本邊界
對外契約的變更決定各自需要的用量證據:觀測要建到什麼粒度、消費者身分怎麼認、哪些維度要全量常設、哪些可以抽樣或開取樣窗口,以及固定形狀 REST 拿不到欄位級用量的替代做法 2026-07-03
11.C12 GitHub:REST API calendar versioning 與 24 個月支援承諾
date-based versioning 成為大平台收斂方向的證據點、最低支援窗口把 deprecation 成本變成明文契約 2026-06-22
4.C12 Cloudflare:內部觀測平台的三層能力
全球 300+ edge 節點的觀測架構,把 monitoring、analytics 與 forensics 拆成三個獨立能力層。 2026-06-22
ElastiCache → 自管 Redis / Valkey:脫離 managed 的遷移路徑
從 AWS ElastiCache 遷移到自管 Redis 或 Valkey,處理 RDB export、DNS 切換、IAM 認證移除與監控重建的階段化流程 2026-06-22
Kafka → Google Cloud Pub/Sub:從 partition 到 topic-subscription 的模型轉換
從 Apache Kafka 遷移到 Google Cloud Pub/Sub,處理 partition → topic 模型轉換、ordering 語意差異、consumer group → subscription 對應、offset → ack deadline 切換的階段化流程 2026-06-22
Remote Write 與長期儲存整合
說明 Prometheus remote write 的配置、三家長期儲存後端比較(Mimir / Thanos / Cortex)、故障模式與容量規劃 2026-06-16
AWS SQS:Visibility timeout、long polling 與 Lambda event source 的成本與失敗形狀
SQS deep article:visibility timeout 對齊 consumer 處理時間(ChangeMessageVisibility)、long vs short polling 的 cost 取捨(WaitTimeSeconds)、SQS + Lambda event source mapping(batch size / batch window / 並行 ramp-up)、DLQ + redrive policy(maxReceiveCount)、message size 與 extended client、per-request cost 模型;含 5 個 production 故障演練(VT < 處理時間 redelivery、polling 設定省成本、Lambda 部分失敗整批重投、DLQ maxReceiveCount、FIFO 吞吐上限) 2026-06-16
Firestore Security Rules 授權建模與可測試化:把規則當程式碼治理
Firestore client 直連模型把整個授權控制面壓在 Security Rules 這套 DSL 裡;本文展開規則的求值模型、把授權拆成可組合 function、用 emulator 寫單元測試、把規則寫成資安漏洞的 production 事故(`if true` 上線沒收、`read` 沒拆 `get` 與 `list`、寫入內容沒驗證、遞迴萬用 `match` 蓋掉嚴格規則、規則複雜到沒人能 review),以及規則複雜度撞牆時把授權拉回後端的邊界 2026-06-16
Kafka Replication、ISR 與 exactly-once:從 acks 到端到端不重不漏
Kafka 的可靠性由 replication 與 ISR 決定寫入承諾、由 producer idempotence 與 transaction 決定處理語義。本文涵蓋 acks=0/1/all 取捨、min.insync.replicas 與 ISR shrink/expand 的真實行為、enable.idempotence 去重、Kafka transaction + read_committed 隔離、以及端到端 exactly-once 的邊界與成本;含 3-broker 叢集停 broker 觀察 ISR 收縮到低於 min.insync 後 acks=all 被拒的實機演練。 2026-06-16
NATS JetStream 設計與 supercluster / leaf node:stream、consumer、跨區拓樸與多租戶
NATS JetStream 的 implementation-layer deep article:stream 設計(storage / retention / discard / 容量上限)、consumer 設計(pull/push、explicit ack、AckWait、MaxDeliver、replay)、Cluster Raft / Supercluster gateway / Leaf node edge 三層拓樸、subject-based ACL 多租戶;含 4 個 production 故障演練(AckWait 太短重投、discard policy 選錯丟訊息、leaf node 斷線重連、stream replica 失去 quorum)。 2026-06-16
RabbitMQ → AWS SQS:交出 broker 維運、把 routing 收斂進 application
自管 RabbitMQ 叢集遷到 AWS SQS 是 operational redesign:protocol 不相容、application 要從 manual ack 改成 visibility timeout + delete、exchange routing 收斂成 SNS fan-out 或多 queue;本文跑 6 維 diff dimension audit(operational 差最大)、釐清什麼該遷什麼不該遷、5 個 production 故障演練(DLX → redrive policy / prefetch → batch + visibility / fan-out → SNS-to-SQS / 256KB 大小限制 / ordering 到 FIFO 的吞吐取捨)跟漸進 cutover 2026-06-16
Redis Streams XCLAIM / PEL 失敗接管與 Cluster 影響
Redis Streams 把可靠性責任放在 application 層:PEL 記錄已投遞未 ack 的訊息、XCLAIM / XAUTOCLAIM 是 consumer crash 後唯一的接管機制。本文用實機輸出走 PEL / XACK / XCLAIM / XAUTOCLAIM / min-idle-time 機制、5 個故障演練(PEL 卡死、搶單、MAXLEN 修掉未 ack 訊息、Cluster 單 shard 限制、failover 後 PEL 狀態),跟 MAXLEN / XTRIM retention 取捨。 2026-05-19
Datadog → Grafana Stack:把 $50K/month bill 拆解到 self-hosted observability
Datadog 五層計費(host APM / metric / log ingest / log retention / RUM)拆解、對位 Grafana Stack(Mimir / Loki / Tempo / Grafana / Alloy)的 5 層責任;OTel-based agent migration、5 個 production 踩雷(cardinality 爆 / log volume cost / dashboard 不直接轉 / alert routing 換邏輯 / SLO definition 差異)、cost reality check 2026-05-19
etcd → Consul:KV + N 個 extras feature matrix
etcd → Consul 是 Type E paradigm shift expansion — 從 pure KV store 升到 service mesh / discovery / health check / multi-DC;本文用對照表 + paradigm expansion 路線、5 個 production 踩雷(API 對位 / lock semantics / watch event model / multi-DC topology / ACL system) 2026-05-19
Jenkins → GitHub Actions:Pipeline 5 段 lifecycle 的對位 + 翻譯
Jenkins → GHA 是 Type A 高 schema 差 migration、主軸是 Groovy DSL → YAML workflow 翻譯;本文按 pipeline 5 段 lifecycle(source → build → test → scan → deploy)逐段對位、5 個 production 踩雷(shared library equivalence / ephemeral workspace / plugin gap / self-hosted runner / matrix build 表達差) 2026-05-19
MongoDB Shard Expansion + Multi-DC:加 shard 與加 DC 同時進行時的 parallel run 與流量切換
MongoDB sharded cluster 同時加 shard 與加 DC 的操作:chunk migration、replica set 加跨 DC member、cross-DC routing 的機制,加 DC 為什麼要兩個 DC 並行服務再切流量,balancer、initial sync、跨 DC 讀取、zone sharding 與跨 DC failover 的故障演練,以及 multi-DC 的容量與成本 2026-05-19
MySQL Replication Topology:async / semi-sync / GTID 不是三選一、是三個 trade-off 軸的疊加
MySQL replication 不是「選 async 還是 semi-sync」、是 *durability / latency / consistency* 三個 trade-off 軸的疊加;GTID 是跨 mode 的 infrastructure layer、不是第三種 mode。本文走 3 軸取捨模型 → async / semi-sync 行為對比 → GTID 替代 binlog-position 的好處 → 配置 step-by-step → 5 production 踩雷(lag 暴衝 / semi-sync 退回 async / GTID gap / Loss-Less semi-sync 真的 loss-less / chained replication 雪崩)→ 跟 Aurora MySQL / Vitess / ProxySQL / Orchestrator 整合 2026-05-19
PostgreSQL Replication Topology:async / sync / quorum 在 durability、latency、consistency 上的取捨,與 LSN + replication slot
PostgreSQL streaming replication 不是「sync 或 async」、是 *durability / latency / consistency* 三軸組合 + LSN-based 進度追蹤 + replication slot 治理。本文走 durability / latency / consistency 的取捨模型、async / sync / quorum-based sync 行為對比、LSN + replication slot 機制、配置 step-by-step、production 踩雷(standby lag 暴衝 / sync standby 失聯時 primary commit 卡住 / orphan replication slot / cascading replication 雪崩 / failover 後 timeline 分歧)、跟 Patroni HA + logical replication 整合 2026-05-19
Redis → DragonflyDB:drop-in 相容下的容量躍升 + 5 個踩雷
DragonflyDB 號稱 Redis drop-in 替代、單機 throughput 25x、記憶體效率 30% 提升;遷移流程簡單但有 5 個 production 踩雷(RDB 版本差 / Lua 腳本不全支援 / Pub-Sub fanout 行為差異 / Cluster mode 兼容度 / Modules 不支援)、跟 Sentinel / Cluster 模式對位 2026-05-19
Self-managed ELK → Elastic Cloud:5 年 ELK 集群的 lifecycle 收尾
Self-managed ELK Stack → Elastic Cloud 是 Type C operational redesign — protocol drop-in、operational stack(cluster sizing / shard 治理 / upgrade / backup)全託管;本文按 5 年 ELK lifecycle (build → scale → degrade → save → migrate) 組織、5 個 production 踩雷 2026-05-19
Self-managed Kafka → AWS MSK:把 $15K/month operational cost 拆解到 managed
Kafka self-managed → MSK 是 Type C operational redesign — protocol 完全相容、operational stack(ZooKeeper / brokers / monitoring / patching)全託管;本文用 cost 拆解開頭、5 個 production 踩雷(client connection pattern / version pinning / metric pipeline / IAM auth / cross-cluster mirror) 2026-05-19
Vault → AWS Secrets Manager:「secret」不是「secret」、identity model 才是核心差異
Vault → AWS Secrets Manager migration 表面是 secret store 替換、實際核心是 identity model 對位(Vault token + policy vs AWS IAM + resource policy);驗證 [#128](/report/data-topology-as-audit-dimension/) self-aware limitation 提出的 identity axis 候選 — identity 是否獨立 audit 軸;5 個 production 踩雷(IAM principal 對位 / dynamic credential 對等失敗 / lease lifecycle 模型不同 / audit log 結構差 / 計費模型反轉) 2026-05-18
3.C12 Pinterest:Shallow Mirror 優化 MirrorMaker
Pinterest 跨 3 region MirrorMaker、原版解壓+重壓造成 CPU/memory 2-10x spike、改 RecordBatch 層淺迭代。 2026-05-13
1.12 大規模 DB 遷移實戰
跨 DB 遷移的 dual-write、[shadow read](/backend/knowledge-cards/shadow-read/)、cutover、rollback 流程 — 從實戰案例提煉的工程做法 2026-05-12
9.12 SLO 與 Performance Budget
performance budget 跟 SLO / error budget 的對接 2026-05-12
9.C12 Riot Games:246 個 EKS cluster 的多遊戲多地區治理
Riot Games 從 Mesos 遷移到 EKS、用 246 個 cluster 跨遊戲跨地區治理、年省 1000 萬美金 2026-05-07
Google:Postmortem Action Item Closure 治理
把 blameless postmortem 從會議文件變成可追蹤的可靠性治理機制:action item 分級、完成條件與回寫節奏。 2026-05-01
4.12 Audit Log 邊界與 PII 治理
把稽核訊號從 operational log 拆出、按法規與不變性治理 2026-05-01
6.12 Idempotency 與 Replay 驗證
把重試、重播與冪等性從口頭約定變成可驗證屬性 2026-05-01
8.12 IC Handoff 與長事故跨班次協調
把 24h+ / 跨 timezone 事故的接班節奏變成可重複流程 2026-04-24
0.11 攻擊者視角(紅隊):跨服務弱點判讀總表
用攻擊面、可觀察訊號與失敗代價,建立 backend 選型前的弱點盤點框架 2026-10-13
單機 Compose 的最小監控堆疊:各 exporter 的掛載、讀取設定與 Grafana 佈建
以 Docker Compose 在一台主機上接起 Prometheus、Alertmanager、Grafana 與主機、容器、資料庫、快取、入口各層的 exporter:每個掛載與旗標為什麼需要、讀取設定與規則的放法、Grafana 以檔案佈建、連接埠與帳號的權限,以及讀取對象全部 UP 時仍可能漏掉的監控 2026-08-11
11.13 既有 API 的改造路徑:已暴露性質的分類、補得回來與補不回來的判斷標準與動工順序
契約已上線、消費者與觀測都受限的既有 API 怎麼收緊已暴露的性質:變更的成本分類、新增介面元素補得回來與補不回來的判斷標準、從建觀測到重決版本策略的動工順序,以及計畫出錯的判讀訊號 2026-07-03
11.C13 GitHub:密碼認證廢止的 brownout 執行
deprecation 執行機制案例:公告觸及不到的長尾 client、用排程 brownout 的短暫真實故障叫醒 2026-06-22
4.C13 Discord:從儲存問題回推觀測缺口
每次儲存遷移都暴露觀測盲區,把儲存成長問題重新框架為訊號設計問題。 2026-06-16
Firestore 高頻寫入與 distributed counter:單 document contention 邊界與分片計數
Firestore 單一 document 有持續寫入的軟上限、高頻計數寫爆 contention 是常見事故;本文展開寫入 contention 的成因、distributed counter 分片計數的實作與讀取彙總、shard 數量與讀寫成本的取捨、高頻寫入事故(直接 increment 單一 document、shard 數估太少或太多、選 shard 有偏、把分片計數當強一致餘額用),以及計數需求超過分片能處理時改走外部聚合的邊界 2026-06-16
Kafka Retention 與 Tiered Storage:保留策略、log compaction 與冷熱分層
Kafka 的保留策略決定 replay window 與儲存成本:retention.ms / retention.bytes 控制刪除邊界、cleanup.policy 切換 delete 與 compact、log compaction 用最新值取代歷史、tiered storage 把冷資料卸到 S3 讓 broker 容量與保留期解耦。本文涵蓋配置實機驗證、4 個故障演練(replay 失敗 / compaction 不回收磁碟 / cold tier 讀延遲 / retention.bytes 提早刪)、容量成本與整合路由。 2026-06-16
RabbitMQ Queue Type 選型:Classic、Quorum、Stream 的責任邊界與容量取捨
RabbitMQ 3.x 三種 queue type 的選型 deep article — classic queue(mirrored 已 deprecated)、quorum queue(Raft 一致性、取代 mirrored)、stream(3.9+ append-only log、可重複消費)。涵蓋三種模型在 throughput / retention / replay / 記憶體成本的判讀、宣告語意差異(實機驗證)、4 個 production 故障演練(mirrored 網路放大 / quorum loss / stream retention 超量 / classic→quorum in-flight message),與容量規劃。 2026-05-27
1.13 應用層查詢反模式與 Query 預算
整理 N+1、select *、缺索引、ORM lazy load、long transaction 等查詢反模式與每請求的 query 預算判讀 2026-05-27
9.13 擴展軸與 Stateless 前提
整理垂直 / 水平擴展取捨、stateless vs stateful 前提、auto scaling 操作模型與兩種擴展的 hidden cost 2026-05-19
MySQL Online Schema Change:gh-ost 跟 pt-online-schema-change 兩條完全不同的 ghost table 路徑
MySQL ALTER TABLE 可能鎖整張表,production 需要 online schema change 流程。gh-ost(GitHub)跟 pt-online-schema-change(Percona)都用 ghost table 解決、但底層機制完全不同:pt-osc 用 trigger 同步、gh-ost 用 binlog stream 同步。本文走兩工具機制對照表 → trigger vs binlog 各自取捨 → 配置 step-by-step → production 踩雷(trigger overhead / binlog 追不上寫入 / FK constraint / 跟既有 trigger 共存 / cut-over 等 metadata lock)→ 何時用哪一個 2026-05-19
PostgreSQL Online Schema Change:先用 ALTER 內建特性、不能解才 pg_repack / pg-osc
PostgreSQL ALTER TABLE 對多數變更已是 *fast catalog-only*(add column nullable / drop column / 改 default),不必走 ghost table tool。本文走 PG 內建 fast DDL 行為、何時必須走 pg_repack / pg-osc、兩工具機制對比(trigger-based vs WAL-shipping)、配置 step-by-step、5 production 踩雷(lock 升級 / VACUUM FULL 誤用 / pg_repack version mismatch / concurrent index 失敗清理 / generated stored column 不能 online)、跟 MySQL gh-ost / pt-osc sibling 對比 2026-05-19
Redis → Memcached:Memcached 不是 simpler Redis、是 cache paradigm
Redis → Memcached 是 Type E paradigm reduction migration — 從 multi-paradigm(KV + 資料結構 + pub/sub + Lua + streams)退到 pure cache;不是「remove Redis features」、是「重新分配 Redis-specific feature 到對應 specialized 服務」;5 個 production 踩雷 + paradigm reduction 路線 2026-05-19
Redis Cluster Re-sharding:source = target,但 topology 重劃的 5 段流程
Redis cluster re-sharding 是 5 type migration 漏類實證 — source / target 同 cluster、無 schema / paradigm 差、但 16384 slot 重分配是核心;本文涵蓋 4 種 re-sharding driver、slot migration 機制、redis-cli --cluster rebalance / reshard 工具、5 個 production 踩雷(cluster busy / replica lag / client cache stale / cross-slot transaction / monitor gap) 2026-05-18
3.C13 Shopify:Debezium CDC over sharded MySQL
Shopify 100+ MySQL shard、150 Debezium connector、Black Friday 100K records/sec P99 < 10s。 2026-05-12
9.C13 Disney+ Hotstar:IPL 板球決賽 1860 萬人同時直播
Hotstar 在 IPL 板球決賽創下 1860 萬同時觀看的全球直播紀錄、CDN 與全球邊緣容量極限 2026-05-07
Google:Toil Budget 與 Automation 投資政策
把 toil 從感受問題轉成預算問題:用時間配比與自動化回報機制,避免 on-call 壓力長期侵蝕可靠性工程。 2026-05-02
0.12 觀測、可靠性與事故服務選型
從訊號、驗證與響應三層能力判斷操作控制服務的選型順序 2026-05-01
4.13 Service Topology 與 Dependency Map
把跨服務依賴從文件變成自動發現的觀測訊號 2026-05-01
6.13 Performance Regression Gate
把效能 baseline 從一次性壓測變成持續對齊的 release gate,涵蓋 baseline 設定、判讀方法、variance 控制與退化定位 2026-05-01
8.13 Repeated Incident 與 Toil 治理
把同型事故反覆發生與重複手動修復作為工程化治理對象 2026-10-13
Prometheus 指標的視覺化工具:視覺化層的責任,與內建介面、Grafana、Perses、Kibana/OpenSearch Dashboards、託管服務的取捨
自架 Prometheus 之後把指標畫成常駐畫面的那一層承擔哪些責任(查詢與呈現、儀表板定義的保存、存取控制、告警規則放在哪一層、多種資料來源、授權與資源),Grafana 逐項對照這些責任,內建介面、Perses、Kibana/OpenSearch Dashboards 與託管服務各自的定位與成立的前提,以及前提改變時改用哪一個 2026-08-12
11.14 契約條款的送達:機制、SDK 預設值、型別、執行期回饋與文件各層的強制力與射程
把契約條款推到消費者面前的手段與各自的邊界:依違規多久現形決定送達層級、條款編碼之後文件留什麼,以及只能要求消費者配合的條款怎麼在測試階段現形 2026-07-03
11.C14 Fielding:對 API 版本化的建議是「別做」
no-versioning 流派的理論錨點:hypermedia 演化取代版本號、與運營現實路線分歧的根源 2026-06-22
4.14 Anomaly Detection
把 ML / statistical baseline 訊號跟 rule-based alert 整合 2026-06-22
4.C14 觀測平台成本治理:從帳單驚嚇到可預測成本
觀測帳單持續超線性成長時,用 cost attribution、cardinality budget、log tiering 跟 adaptive sampling 建立可預測成本模型。 2026-06-16
Firestore document 反正規化與一致性維護:fan-out write、副本同步與資料修復
Firestore 沒有 JOIN,查詢能力逼著把關聯資料反正規化複製多份;本文展開反正規化的建模決策、fan-out write 維護副本一致、batch 與 transaction 的選擇、副本不一致的 production 事故(複製了卻沒建 fan-out 路徑、同步 fan-out 撞到副本數上限、fan-out 中途失敗、雙向副本互相觸發成環、拿副本做權限判斷),以及反正規化複雜到該回關聯式的邊界 2026-06-16
Kafka Schema Registry 與 schema 演進:wire format、compatibility level 與安全演進規則
Kafka 跨系統事件總線的 schema 治理 implementation deep article — Schema Registry(Confluent / Apicurio)角色、Avro / Protobuf / JSON Schema 取捨、subject naming strategy、backward / forward / full / none 及其 transitive 版本、producer 帶 schema ID 的 5-byte wire format、加欄位帶 default 與刪欄位分步的安全演進規則;含 4 個 production 故障演練與實機驗證的 REST API 回應 2026-06-16
RabbitMQ Network Partition 與 Cluster 一致性:腦裂下要保誰
RabbitMQ Erlang cluster 在 network partition 下的行為與處置 — disc/ram node 拓樸、cluster_partition_handling 三策略(ignore / pause_minority / autoheal)的可用性與一致性取捨、腦裂偵測機制、quorum queue 在失去 quorum 時的 Raft 行為。含 3-node OrbStack 實機演練(pause_minority 暫停少數派、quorum queue 失去 quorum 後寫入阻塞、classic queue 同情境續寫對照)。 2026-06-16
Redis 記憶體與淘汰調校:maxmemory-policy、LFU 與碎片化的實戰判讀
Redis 的記憶體是一條會在半夜爆掉的曲線:maxmemory 設多少、policy 選 LRU 還 LFU、碎片化什麼時候開始吃掉 30% RAM、OOM 時 noeviction 怎麼讓寫入全部失敗。本文展開 Redis 記憶體會計模型、eviction policy 的選型判讀、5 個把記憶體配置寫成 production 事故的踩坑,以及單機記憶體撞牆後該往 cluster 還是 DragonflyDB 走的邊界 2026-05-27
1.14 Production Slow Log Closed Loop
把 production slow log 從『偶爾看一下』變成『定期審視 + PR review 整合 + regression 偵測』的閉環、補 1.13 反模式清單後的操作層 2026-05-27
9.14 連線池放大解法(PgBouncer / RDS Proxy / ProxySQL)
水平擴展應用層時 DB 連線池放大問題的具體解法、connection pooler 三大選項對比、解 9.13 提出但未深入的隱性成本 2026-05-19
MySQL ProxySQL 配置:connection / query / route / response 四段 lifecycle 跟 query rule 設計
ProxySQL 是 MySQL 生態的 connection pool + query routing 標準。本文走 connection → query parse → route → response 四段 lifecycle、query rule engine 的 rule chain 設計、Hostgroup / Server / User 三層 schema、配置 step-by-step(讀寫分離 + replica lag-aware routing)、5 production 踩雷(query rule 順序錯亂 / connection 漂移 / write 路由到 replica / runtime / disk schema drift / mirror traffic 副作用)、跟 Replication / Orchestrator / HAProxy 整合 2026-05-19
PostgreSQL Connection Scaling:process-per-connection model 跟為什麼 pooler 是必裝
PG 每個 client connection fork 一個 backend process(不是 thread)、RAM 成本 5-15MB/connection、context switch 跟 fork() cost 在 100+ connection 後線性放大、所以 pooler 不是 *optional optimization* 而是 *production prerequisite*。本文走 process-per-connection model 跟 MySQL thread-per-connection 對比、max_connections + shared_buffers + work_mem 三 GUC 互動、application-side pool vs middleware pool vs RDS Proxy 三層選擇、5 production 踩雷(connection storm / fork() cost 在 burst 流量 / shared_buffers 跟 connection 數壓縮 / double-pool 配置錯誤 / max_connections 設太大反而慢)、跟 PgBouncer config 互補不重複 2026-05-18
3.C14 Yelp:Schematizer 自建 Schema Registry
Yelp data pipeline 強制所有 message 走 Avro、自建 Schematizer 做 schema evolution 與 topic 自動分配。 2026-05-12
9.C14 Standard Chartered:受監管銀行的 Aurora 4000 TPS 容量提升
Standard Chartered 銀行遷移到 Aurora 後吞吐量提升 10 倍至 4000 TPS、跨 7 個受監管市場 2026-05-07
0.13 操作控制 vertical slice 實作入口
用一個服務串起觀測證據、可靠性驗證、事故決策與回寫閉環 2026-05-01
6.14 Dependency Reliability Budget
把內外依賴的可靠性納入 SLO 計算與設計約束 2026-05-01
8.14 Multi-incident Coordination
把同時多事故的優先序、資源分配與 incident command system pool 協調變成可執行流程 2026-10-13
多台主機的指標收集:讀取架構、主機標籤、目標清單、監控主機的位置與主機消失的偵測
服務分到多台主機之後,Prometheus 怎麼讀到每一台:exporter 的部署位置與連接埠、中央直接讀取與各主機先收再推送的架構、代表主機的 host 標籤加在哪裡、目標清單由什麼產生,主機停掉與主機從清單上消失各自怎麼偵測,以及監控元件放在哪一台、compose 檔怎麼依主機角色拆開;附在單機上模擬第二台主機的驗證 2026-10-05
11.15 自家行動 App 與後端的 API 契約:版本回報、最低支援版本、商店審核下的上線順序、分階段發布、熱更新與回退手段
自家行動 App 呼叫自家 API 時,在向後相容的變更紀律之外多出的契約機制與決定 API 何時上線的發布約束:請求帶 App 版本、客戶端啟動檢查與伺服器端拒絕兩層組成的最低支援版本、使用者拿不到新版時的處置、商店審核造成的上線順序與送審說明、App Store 與 Google Play 分階段發布的差異、熱更新能改的範圍與兩家商店的條款,以及各回退手段對已安裝版本的作用 2026-10-02
9.15 無預警瞬時大流量:流量來源辨識、擴展緩衝、請求優先等級、准入控制、體積型攻擊與退路
沒有準備窗口的瞬時大流量(突發流量、流量暴增)怎麼承接:依流量形狀分辨真人需求、應用層的濫用流量、體積型攻擊(DDoS),自動擴展的反應時間換算成緩衝,入口標記請求優先等級與負載卸除的順序,等候室與事前註冊這類准入控制,把體積型攻擊交給更大的邊緣網路,以及擴展跟不上時的退路 2026-07-26
1.15 資料契約文件(Data Contract Document)
schema 表達不了的語意承諾——欄位單位、跨欄不變式、錯誤語意——需要專屬 artifact;整理邏輯契約與實作綁定的分區、寫不寫契約文件的判斷(協作交接與 migration 治理),以及 dormant 表豁免 2026-07-04
4.C15 SRE Book:叫醒人的觀測路徑必須 simple and robust
觀測系統跟被觀測系統一樣複雜就會一起變 fragile;把 alerting 關鍵路徑做到最簡是切開失效域的規範根據 2026-07-03
11.C15 RFC 8594 Sunset header:退場宣告的機器可讀層
用 HTTP header 宣告資源退場時點的標準化嘗試、Informational 地位與實務採用有限 2026-06-22
4.15 Cost Attribution / Chargeback
把 observability 成本拆到團隊、產品、環境維度 2026-06-16
Firestore realtime listener 扇出與成本:snapshot 訂閱、re-read 計費與連線規模
Firestore 的 snapshot listener 提供即時同步、但訂閱的扇出、查詢結果變動的 re-read 計費與連線數會在規模下變成成本與效能瓶頸;本文展開 listener 的推送模型、訂閱範圍設計、realtime 成本事故(把不需即時的列表做成 listener、忘記取消訂閱、訂閱寬 query、每次推送重畫整個列表、高扇出直接訂閱原始資料),以及即時需求超過 listener 該換推送架構的邊界 2026-06-16
Kafka Multi-tenant 治理:quota 限流、ACL 授權與 topic 生命週期
單一 Kafka 叢集承載多團隊時、quota 把頻寬與 request 容量切給每個租戶、ACL 把寫入與讀取權限綁到 principal、topic 命名規範劃出 ownership 邊界、生命週期治理回收死 topic 釋放 metadata 壓力。本文涵蓋 producer_byte_rate / consumer_byte_rate / request_percentage 三類 quota 與 user / client-id / 組合三種套用層級、StandardAuthorizer 的 principal × resource × operation × host 授權模型、prefixed ACL 的 tenant 隔離、TopicGC 式的死 topic 回收、以及四個 production 故障演練(單租戶暴衝吃滿頻寬、ACL 過鬆過緊、topic 數量爆炸壓垮 controller、unused topic 未回收) 2026-06-16
Redis 持久化與 fork latency:AOF、RDB 與那一次卡住整個 cluster 的 fork
Redis 的 RDB save 與 AOF rewrite 都靠一次 fork(),而 fork 在大記憶體實例上會凍結主執行緒數百毫秒、複製分頁讓記憶體逼近翻倍。本文展開 AOF / RDB 的機制與 fsync 取捨、copy-on-write 的記憶體放大、5 個把持久化寫成延遲尖峰與資料遺失的 production 踩坑,以及 cache 場景到底要不要持久化的邊界 2026-05-19
MySQL Orchestrator Failover:HA 工具自身的 HA 靠內建 raft cluster、promotion 靠 GTID
Orchestrator 是 MySQL HA 自動 failover 的 de facto standard、但讀者第一個問題往往是「HA 工具自己會壞嗎」。本文走 Orchestrator 的雙層架構(管 MySQL 的 raft cluster + 被 raft 管的 orchestrator instance)→ topology discovery → failure detection → failover decision tree → promote action → 5 production 踩雷(split-brain 跟 fencing / pre-failover hook 失敗 / anti-flapping window / GTID errant transaction / VIP 跟 ProxySQL 整合斷層)→ 跟 ProxySQL / Patroni / RDS 對比 2026-05-19
PostgreSQL Index Selection:B-tree / GIN / GiST / BRIN / Hash 對應 workload 的決策樹
PG 有 6 種 index method(B-tree / Hash / GIN / GiST / SP-GiST / BRIN)跟 partial / expression / covering 三種變體、不是「都用 B-tree 就好」。每種 index 有自己的 query pattern、儲存代價、write amplification 跟 maintenance 成本。本文走 6 種 index 的適用 workload 對照、決策樹、partial / expression / covering / multi-column 變體、5 production 踩雷(過度 index / partial 條件不對 / B-tree 對 JSON 無效 / BRIN 對非 correlated 資料無效 / multi-column 順序錯)、跟 query-optimization 的 EXPLAIN 互補 2026-05-18
3.C15 Airbnb:Spark Streaming Kafka reader rebalance
Airbnb logging pipeline 解 partition-task 1:1 造成的 data skew、catch-up 4 小時 lag 要再花 4 小時的反效率。 2026-05-12
9.C15 拓元 Tixcraft:售票搶購的瞬間爆量架構
拓元把售票系統搬到 AWS 後,30 分鐘內把資源擴到 130 倍(一場熱門活動擴到 800 台 EC2),處理 10 萬以上同時在線與每秒 2,500 筆以上訂單;資料庫改用 DynamoDB 2026-05-07
0.14 企業選型案例圖譜
蒐集不同類型與不同規模企業的技術選型案例,作為後端選型判讀的跨情境補充。 2026-05-01
6.15 Environment Parity 與漂移控制
把 staging / preprod / prod 之間的差異視為一級風險,按漂移來源分類偵測與治理 2026-05-01
8.15 Vendor / 第三方依賴事故處理
依賴方掛掉、自己無 control 時的決策模型 2026-10-14
11.16 面向終端使用者的錯誤碼與請求編號:錯誤畫面的欄位、請求編號的產生與傳遞、錯誤碼對照表、客服收件欄位、客服查詢工具的權限與 log 保留期
使用者經由客服回報錯誤、再由工程查到那一次請求,系統在每一段要提供什麼:錯誤碼與請求編號各自交給誰用、請求編號為什麼要隨機以及電話上怎麼唸,入口以 Nginx 產生編號並傳進後端與 log、入口自己的 502 與前端怎麼讀到編號(實測),錯誤碼對照表怎麼跟著程式維護,客服查詢工具的唯讀、遮罩與稽核,以及 log 保留期的下限從哪些時間與規定來 2026-10-14
9.16 負載超過容量時服務的表現:變慢、請求失敗、無回應、程序終止,尖峰過去或應對切換之後仍持續的停在失效、擺盪與第二波湧入,以及應對選出的降級回應,各自的判斷標準、成因、應對與看得到它的監控層
負載超過容量(過載)時,服務呈現的結果分成變慢、請求失敗(抵達後被拒與根本沒有抵達)、無回應、程序終止,以及尖峰過去、依賴恢復或應對切換之後仍持續的停在失效、擺盪與第二波湧入;每一種的判斷標準、通常的成因與應對,哪一種先出現由先耗盡的資源與等待是否設有上限決定,影響範圍怎麼隨時間擴大,服務端監控的各層各自看得到哪一種,降級回應怎麼計數,過載在資料上造成的重複寫入、接受後遺失與讀到舊資料,以及描述一次過載要寫出的項目 2026-10-13
Grafana 的對外存取:SSH 通道或 VPN、經由應用入口轉送的問題、監控主機上的反向代理,與登入保護和認證的位置
Grafana 只綁本機之後,讓其他人看到它的做法:看的人能不能經由 SSH 或 VPN 連進來、有沒有固定的來源網段時各自的存取方式,SSH 通道的連法,應用入口 Nginx 加上 Grafana 的轉送之後的兩個問題,監控主機上專用反向代理的 TLS、WebSocket、GF_SERVER_ROOT_URL 與來源限制,以及 Grafana 登入失敗的帳號鎖定與認證放置 2026-09-22
1.16 Schema 設計決定的查詢代價:可空性、排序鍵唯一性、表寬、一對多的切法、比較規則與外鍵執法
建表時每一個決定有哪些選法、選了之後查詢要多做什麼、代價在什麼條件下才浮現、改回來要付的遷移成本,以及設計當下就能問的問題;輸出為 SQLite 與 PostgreSQL 的實測 2026-07-04
4.C16 Cardinality 事故爆炸:被觀測系統的異常 label 耗盡觀測後端的記憶體
事故時 error / user / request-id 維度從低基數 spike 成高基數、每個 unique 值生一條新 series、TSDB 在最需要查詢的時刻記憶體耗盡而 crash 2026-07-03
11.C16 Slack:四族 API 分階段收斂到 Conversations API
分階段 deprecation 執行:先掐斷新增量、再處理存量、最後硬停、過渡期用 in-band warning 2026-06-22
0.15 跨模組 Checkout Episode:從資料寫入到觀測證據
以 checkout 為切片,走完 DB write → cache invalidation → event publish → observability evidence 四層串聯,標示各模組的交接欄位與失敗判讀 2026-06-16
Redis Sentinel 與 failover 時序:從 master 死掉到 client 重連的每一段
Redis Sentinel 的 failover 不是一個瞬間動作,是 down 偵測 → quorum 確認 → 選主 → 提升 → 配置廣播 → client 重連的一條時序鏈,每一段都有自己的延遲與失敗模式。本文展開 Sentinel 的判定模型與這條時序、5 個讓 failover 卡住或丟資料的 production 踩坑,以及 Sentinel 撐不住該往 Cluster 或 managed 走的邊界 2026-05-22
PostgreSQL Connection Pooler Comparison
PostgreSQL PgBouncer、Odyssey、RDS Proxy、application pool 與 transaction pooling 的選型比較 2026-05-19
MySQL InnoDB Tuning:為什麼一個 100 GB DB 在 64 GB RAM server 上 query 慢 5 倍
InnoDB 是 MySQL 預設 storage engine、預設值給 128 MB buffer pool。本文從一個常見痛點開場(DB > RAM 但 server 仍 swap)、走 4 個 critical knob(buffer pool / redo log / flush method / IO capacity)、各自如何影響讀寫吞吐、配置 step-by-step、5 production 踩雷(buffer pool warm-up / log file 大小 / 設 sync_binlog=0 換速度 / IO scheduler / undo log 膨脹)、跟 SSD / NVMe / EBS 的 IO 假設 2026-05-18
3.C16 Robinhood:Faust Python stream processing
Robinhood 每天 billions of events、Python 團隊不想用 JVM 生態、把 Kafka Streams 移植到 Python。 2026-05-12
9.C16 SeatGeek:DynamoDB + Lambda 打造的虛擬等候室
SeatGeek 用 DynamoDB 4 張表 + Lambda Bouncer 實作 flash-sale 的准入控制(等候室)、取代第三方 waiting room 服務 2026-05-02
4.16 Observability Readiness Review
在服務上線、重大變更與演練前檢查 log / metric / trace / alert 是否可支援事故判讀 2026-05-01
6.16 Test Data Management
把 fixture / seed / production-like data 作為跨模組共用 artifact,治理資料層次、遮罩策略與可重現性 2026-05-01
8.16 Runbook Lifecycle 管理
把 runbook 從一次性文件變成有版本、有演練、會過期的 artifact 2026-10-13
Alertmanager 的通知管道:路由樹與分組、webhook 與 ntfy、email 與 Slack、私密網址的檔案、心跳與通知送不出去的偵測
Alertmanager 從只在網頁上看告警,到依嚴重度送到手機與信箱:路由樹怎麼決定一則告警送到哪裡、分組與 group_wait、group_interval、repeat_interval 各控制什麼,以 webhook 接 ntfy 推播與它的訊息範本,email 與 Slack 的設定,私密網址為什麼要放在檔案裡(設定檔不展開環境變數),以及 Watchdog 心跳與通知送不出去時的偵測 2026-10-06
1.17 應用程式存取資料庫的工具分層:驅動、結果對映、從 SQL 產生程式碼、Query Builder 與 ORM
應用程式存取關聯式資料庫的工作(寫 SQL、取得連線與交易、把結果對映成程式的值),驅動、結果對映、從 SQL 產生程式碼、Query Builder 與 ORM 各接手哪幾件、接手之後哪些行為看不見,ORM 的 N+1 與交易邊界、Go、gunicorn 與 PHP-FPM 各自對資料庫的連線總數與 max_connections、唯一約束違反時各語言讀取約束名稱的位置、讀寫分離時各框架把查詢送到主庫或副本的規則、資料拆到多個資料庫時跨不過的邊界,以及 Go、PHP(Laravel)與 Python 的對應工具與選型軸 2026-07-04
4.C17 GitLab 2017:告警靜默失效、公開儀表板無法處理事故期間的使用者流量
備份失敗的通知信被 DMARC 拒收、沒人知道觀測已死;事故時公開監控頁無法處理同一波事故帶來的使用者流量 — 兩層共命運 2026-07-03
11.C17 Facebook Graph API v1.0 退場:靜默語意切換(反例)
反例:到期後把 v1.0 請求靜默當 v2.0 處理而非回明確錯誤、長尾 app 默默壞掉 2026-06-16
Redis 連線與 pipeline:RTT 稅、連線池與一次往返打包多命令
Redis 單命令通常微秒級執行,但 application 端量到的延遲是毫秒級——差距全在網路往返(RTT)。pipelining 的本質不是『批次發命令』,是把 N 次 RTT 壓成 1 次。本文展開 RTT 會計、連線池配置、pipeline 與 MULTI 的差異、5 個把連線與往返寫成延遲與正確性問題的 production 踩坑,以及連線模型撞牆的邊界 2026-05-19
MySQL Binary Log + CDC:Maxwell / Debezium 是 binlog 第二消費者
MySQL CDC 跟 PostgreSQL logical decoding 是不同 abstraction — PG logical decoding 是 *logical event*(INSERT / UPDATE / DELETE)、MySQL CDC 是 *讀 binlog row-level event*。Maxwell / Debezium 是 binlog 第二消費者(跟 replica 共享 binlog stream),並非 PostgreSQL 式 logical replication 系統。本文走 binlog 三種 format(STATEMENT / ROW / MIXED)、ROW format 的 raw event 結構、Maxwell vs Debezium 對比、配置 step-by-step、5 production 踩雷(binlog retention / DDL event / row image / Kafka producer 跟 binlog reader 速度差 / schema change 跟 CDC consumer 同步) 2026-05-18
3.C17 Walmart:Messaging Proxy Service 解 rebalance storm
Walmart 每天 trillions of message、25K+ consumer 在 K8s、partition-consumer 1:1 模型撞到擴張極限。 2026-05-18
PostgreSQL pgBouncer 配置 + 連線池治理
pgBouncer transaction pooling 配置、跟 application connection pool 的分層、production 故障演練(pool exhaustion / stale connection / DNS failover)跟容量規劃 2026-05-12
9.C17 BookMyShow:印度年售 2 億張票的資料架構現代化
BookMyShow 從 15 年自建 analytics 遷移到 AWS modern data architecture、4 個月完成、分析成本下降 80% 2026-05-02
4.17 Telemetry Data Quality
把 missing signal、schema drift、sampling bias 與 timestamp skew 變成資料品質問題 2026-05-01
6.17 Feature Flag Governance
把 feature flag 從上線開關升級為有角色分類、lifecycle 管理與 debt 治理的 runtime artifact 2026-05-01
8.17 Security Incident vs Operational Incident 分流
把資安事故跟可用性事故的 IR 流程分支點明確化 2026-10-14
第三方心跳監看與外部探測服務:挑選條件、healthchecks 的 ping 與 /fail、Alertmanager 的接法與演練
以第三方服務當作監控主機失效域以外的觀察者:心跳監看服務的挑選條件與送出的告警資料留在哪裡,healthchecks 的 ping 網址、週期與寬限、/fail 與自架和託管版的回應差異,Alertmanager 送心跳與送失敗通知的 receiver 與路由順序、驗收與暫停,停掉 Alertmanager 的演練,以及外部探測服務的挑選條件 2026-10-06
1.18 高頻計數的寫入與彙總:熱點列的鎖、只新增的事件、可以重跑的彙總與重送的事件
熱點列更新的吞吐量上限與它的成因、拆成多列/只新增事件/先在記憶體裡合併的差別、只新增事件搬去哪裡的成本、累加與重算在什麼條件下漏算或重複計算、讓彙總排程互斥的建議鎖與連線池的交互,以及重送事件的冪等寫入、推導事實的存放位置,以及 Redis 承擔即時計數、跨小時不重複數、去重與互斥時各自的邊界 2026-07-04
4.C18 Datadog 2023:觀測廠商自己掛、客戶 monitors 停止告警
monitoring-as-a-dependency 的純粹形態:把「我有沒有事」外包給單一觀測供應商、供應商跨區同時更新一起垮 2026-07-03
11.C18 GitHub:採用 GraphQL 的可量化動機
REST 佔資料庫層 60% 請求、over/under-fetching 並存的重構動機;什麼規模的痛才值得換風格的錨點 2026-05-19
MySQL Vitess Sharding:VTGate / VTTablet / VReplication / VSchema 四件套協作
Vitess 不只是 MySQL sharding proxy、是 4 個 component 協作的完整 sharding 系統 — VTGate(query routing layer)、VTTablet(per-MySQL agent)、VReplication(跨 shard 資料移動)、VSchema(sharding metadata)。本文走 4 件套各自責任、keyspace / shard / tablet 架構、shard key 設計(Vindex)、配置 step-by-step、5 production 踩雷(cross-shard transaction / VStream lag / Vindex 不均勻 / resharding 切流 / VReplication 卡住)、跟自管 sharding 跟 PlanetScale 的對比 2026-05-19
PostgreSQL Citus Distributed:用 extension 把 PG 變成 sharded cluster
Citus 是 PG extension、把單機 PG 變成 *coordinator + worker* sharded cluster、保留 PG SQL + 加 distributed table + reference table + columnar storage。本文走 Citus 架構(coordinator / worker / distribution column)、3 種 table type(distributed / reference / local)、配置 step-by-step、5 production 踩雷(distribution column 選錯 / cross-shard transaction / reference table 過大 / colocate 不對齊 / worker failover)、跟 MySQL Vitess sharding sibling 對比 2026-05-18
3.C18 Wix:Greyhound TLLSR 解 consumer 卡住
Wix 2000+ microservice 66B msg/day、自建 Greyhound 抽象、TLLSR 框架解 single-partition lag / poison pill / handler 卡住。 2026-05-12
9.C18 Zoom:COVID 期間每日會議參與人次從 1000 萬到 3 億的 30 倍成長
Zoom 在 2020 年初每日會議參與人次從 1000 萬增加到 3 億,會議後端用 DynamoDB 全域表與隨需容量模式承接 2026-05-02
4.18 Observability Operating Model
定義 platform / service team / on-call 對訊號、dashboard、alert 與成本的 ownership 2026-05-02
8.18 Incident Intake & Evidence Triage
把告警、客訴、支援回報與第三方狀態轉成同一個 intake / evidence 判讀流程 2026-05-01
6.18 Reliability Metrics Governance
DORA / SPACE 指標的選用、量測陷阱、anti-gaming 與團隊階段適配 2026-10-13
在 Kubernetes 上接上監控:kube-prometheus-stack 的元件、ServiceMonitor 與 PrometheusRule 的選取、節點標籤、儀表板 sidecar、Alertmanager 的預設路由、控制平面的讀取與單節點叢集的資源用量
在 Kubernetes 上以 kube-prometheus-stack 接上監控:chart 裝了哪些元件與 CRD,讀取對象與告警規則改以 ServiceMonitor、PrometheusRule 宣告之後由誰轉成 Prometheus 的設定,release 標籤決定哪些宣告會被選中,主機標籤改成節點標籤,儀表板經由 ConfigMap 與 sidecar 載入,Alertmanager 預設不送任何通知,以及控制平面元件只綁本機時讀不到的原因、單節點叢集上的資源用量與記憶體不足時的表現 2026-10-06
1.19 資料表長期成長的成本:查詢讀的量、列表的部分索引、查詢以外的成本、分割與唯一約束、批次資料的共用欄位
哪些表會隨營運年數一直變大、怎麼判斷一條查詢讀的量跟著回傳筆數還是跟著表的大小、列表排除大宗資料時排除條件與索引的位置、表變大之後在查詢以外增加的成本與該量的指標、依時間分割與唯一約束的衝突,以及同一批建立的資料共用欄位的存放位置;附 PostgreSQL 17 的實測 2026-07-04
4.C19 Watchdog / dead man's switch:訊號消失即告警
永遠觸發的告警交給獨立失效域的外部偵測器、它消失才代表告警管線本身死了;搭配 blackbox 外部探測互補 2026-07-03
11.C19 GitHub:GraphQL point system 成本計點限流
GraphQL 打破 per-request 限流假設、平台被迫發明查詢成本模型、加 node 上限雙層防線 2026-05-19
MySQL 8.0 Modern SQL:CTE / window function / JSON_TABLE 的行為與 PostgreSQL 對應特性的差異
MySQL 8.0 補齊 CTE、window function、lateral derived table、JSON_TABLE、hash join 等現代 SQL 特性。本文涵蓋這些特性的 production 場景、跟 PostgreSQL 對應特性的行為差異(特別是 JSON_TABLE vs PG JSONB / jsonb_path_query)、5.7 → 8.0 的配置注意事項,以及 CTE 多次引用的 materialize 行為、window function sort spill、JSON_TABLE 跟 generated column 取捨、hash join 沒觸發、recursive CTE 深度上限等踩雷 2026-05-19
PostgreSQL SQL Features:PG 早就有的、MySQL 8.0 才補的、PG 仍領先的
PG 在 SQL features 上長期領先 MySQL — CTE / window function / lateral / partial index / FTS / JSONB / GIN index / materialized view 在 PG 早 5-15 年。MySQL 8.0(2018)補多數但 *index / storage / extension* 層仍是 PG 結構優勢。本文整理 PG 早期就有的特性、MySQL 8.0 補的差異、PG 仍領先的、跟 MySQL modern-sql-features sibling 反向視角 2026-05-18
3.C19 Wix:Multi-cluster Kafka zero-downtime 遷移
Wix metadata 從 5K topic 漲到 20K topic / 200K partition、controller startup 跟 broker stability 受壓垮、分多 cluster 解決。 2026-05-12
9.C19 Capcom:Resident Evil / Monster Hunter 在 DynamoDB + EKS 上的遊戲後端
Capcom 把 Resident Evil、Street Fighter、Monster Hunter 遊戲後端跑在 DynamoDB + EKS、單一秒位數延遲、營運成本降 30% 2026-05-02
4.19 Debuggability by Design
把可診斷性前移到 API、async workflow、dependency call 與錯誤模型設計 2026-05-02
6.19 Reliability Readiness Review
把上線前、重大變更前與高風險操作前的可靠性準備度變成可檢查門檻 2026-05-02
8.19 Incident Decision Log
把事中假設、決策、證據、回退條件與責任人留下可復盤紀錄 2026-07-06
Docker Compose:多 service dev 環境編排
一個 app 要好幾個 container(DB / cache / web)、手動 docker run 串不起來、或 compose 起來後 app 連不到 DB 或 DB 還沒 ready 就被連時回來讀 — 多 service 怎麼宣告式編排 2026-07-04
4.C20 獨立 status page:對外狀態源的失效域隔離
主站掛時自建 status page 跟著掛;事故溝通通道的可用性不能依賴被溝通的那個系統、要放在獨立 domain 與 infra 2026-07-03
11.C20 GitHub:REST 與 GraphQL 雙軌並行的十年穩態
2016 採用者的長期終點是共存而非取代、功能覆蓋不對等被官方明文承認 2026-05-27
0.19 雲端服務對照地圖(AWS / GCP / Azure)
把後端能力分類對照到 AWS / GCP / Azure 的具體服務名稱、保留跨雲遷移與選型差異的判讀重點 2026-05-19
MySQL Group Replication / InnoDB Cluster:single-primary vs multi-primary mode 對 transaction certification 的影響
MySQL Group Replication 提供 synchronous multi-primary replication、用 Paxos-like Group Communication Engine(GCE)達成 quorum-based commit。但「multi-primary」不是「single-primary 多開幾個 write 入口」、是 *transaction conflict detection + certification* 整個機制不同。本文走 GR 機制(GCE + certification + applier)、single-primary vs multi-primary mode、InnoDB Cluster 跟 MySQL Shell / Router 整合、5 production 踩雷(cert lag / write conflict / large transaction / network partition / member 加入 catch-up)、何時用 GR 何時用傳統 replication 2026-05-19
PostgreSQL BDR / Multi-Master:用 BDR、pgEdge、Bucardo 做 active-active 寫入跟 conflict 治理
PG 預設是 single-primary、active-active 多寫入入口需要 *BDR (EDB)* / *pgEdge* / *Bucardo* 等 extension。本文走 3 種 multi-master 方案對比、conflict detection + resolution model、async vs sync 取捨、配置 step-by-step(pgEdge 為主)、5 production 踩雷(last-write-wins data loss / sequence collision / DDL replication / conflict log 治理 / failover 後 timeline 分歧)、跟 MySQL Group Replication sibling 對比 2026-05-18
3.C20 Spotify:Event Delivery 從 Kafka 遷出(反例)
Spotify Kafka 0.7 MirrorMaker best-effort 會掉資料但回報成功、broker restart 後 producer 無法恢復、決定遷到 GCP Pub/Sub。 2026-05-12
9.C20 Zomato:從 TiDB 遷移到 DynamoDB、吞吐 4 倍、延遲降 90%、成本減 50%
Zomato 帳單系統從 TiDB 遷移到 DynamoDB、吞吐 2K→8K RPM、延遲降 90%、成本減 50% 2026-05-02
4.20 Observability Evidence Package
把 log、metric、trace、audit 與資料品質限制包成可交接證據 2026-05-02
6.20 Experiment Safety Boundary
定義 chaos、load test、DR drill 的 [blast radius](/backend/knowledge-cards/blast-radius/)、停止條件與權限約束 2026-05-02
8.20 Customer Impact Assessment
把受影響用戶、功能、區域、金額、SLO 與補償判斷串成影響評估模型 2026-07-04
4.C21 Tail sampling:採樣壓力下保留 error 與尾延遲樣本
head sampling 在資訊不全時就決定去留、高錯誤率下丟掉你要的 error trace;tail sampling 看完整條才依 policy 保留高診斷價值樣本 2026-07-04
Status 裝不下的東西:部分成功、延遲失敗、gateway 歧義
單一 status 表達不了部分成功、延遲失敗與 gateway 歧義時怎麼辦:把狀態下放 body 讓中介層變盲、或收窄語意保持 status 恆為真 2026-07-03
11.C21 Shopify:宣告 GraphQL 為唯一 API、REST 轉 legacy
跟共存路線相反的策略極端:用新功能只上 GraphQL 製造遷移壓力、配套降成本加倍配額 2026-06-16
Memcached → Redis:不搬資料、搬存取層的能力升級遷移
Memcached → Redis 跟一般 migration 最大的不同:cache 是可重建的,所以這個遷移不搬資料、讓新 cache 重新 warm 就好,真正的工作在存取層(client、協定)跟可選的能力升級(data types)。本文跑 6 維 diff audit、用兩階段(drop-in pure KV → 採用 data types)結構、5 個把『outgrew pure KV』寫成事故的踩坑 2026-05-19
MySQL Query Optimization:從 EXPLAIN 看到實際執行、5 條 query 從 5 秒變 50ms 的 anatomy
MySQL query 慢的根因不在「SQL 寫法」、在「optimizer 選錯 plan」。本文從 5 個常見 production case 開場(5 秒 → 50ms / 30 秒 → 200ms / 8 秒 → 30ms 等)、走 EXPLAIN / EXPLAIN ANALYZE / optimizer trace 三層分析工具、index hint vs optimizer hint 取捨、cardinality estimation 失效時的修法、5 production 踩雷(statistics 過時 / forced index 用錯 / hash join 沒觸發 / range scan 退化 ALL / derived table materialization) 2026-05-19
PostgreSQL Query Optimization:EXPLAIN、auto_explain、pg_hint_plan 與 planner 選錯 plan 的 production case
PG query 慢的根因常是 *planner 選錯 plan 或 statistics 過時*。本文從 production case 開場(seq scan vs index / hash vs nested loop / 多 column 統計缺 / parallel query 沒觸發)、走 EXPLAIN / EXPLAIN ANALYZE / auto_explain、pg_hint_plan extension 跟 planner GUC 取捨、production 踩雷(ANALYZE 過時 / multi-column statistics / random_page_cost 沿用 HDD 預設 / effective_cache_size 不對齊 RAM / parallel query 配置)、跟 MySQL query-optimization sibling 對比 2026-05-18
3.C21 Goldman Sachs:MSK 遷移 with MirrorMaker 2
Goldman Sachs Global Investment Research 從 on-prem Kafka 遷到 MSK、用 MM2 同步 topic/ACL/offset、atomic cutover 7 小時完成。 2026-05-12
9.C21 ASOS:Cosmos DB 在 Black Friday 處理 1.67 億請求
ASOS 在 2016 Black Friday 用 Azure Cosmos DB 在 24 小時內處理 1.67 億請求、3500 req/sec、48ms 平均延遲 2026-05-07
4.21 Rule-level CPU Signal Governance
把規則與策略執行成本變成可觀測訊號,避免控制面小變更在資料面形成 CPU 熱點。 2026-05-07
Datadog:2023 多區觀測中斷事件
監控平台自身退化時,如何避免客戶誤判系統健康狀態。 2026-05-07
Honeycomb:以 Burn Rate 驅動的可靠性操作
把 SLO burn rate 直接連到值班決策與改善優先序,降低高噪音告警造成的判讀失真。 2026-05-07
Netflix:Steady State、Chaos 與 FIT 的驗證路徑
把故障注入從工具操作升級成可驗證流程:先定義穩態,再設計注入與回復條件。 2026-05-02
6.21 Reliability Debt Backlog
把反覆事故、演練缺口與手動修復累積成可排序、可關閉的 reliability debt 2026-05-02
8.21 Incident Workflow Automation Boundary
定義哪些事故流程適合自動化,哪些決策需要保留人工確認 2026-07-04
4.C22 SRE Workbook:預寫模板、mitigation-first、活文件
盲飛下把不依賴當下狀態的決策提前固化:預寫溝通模板、先止血再理解、人維護的活文件替代失效儀表板 2026-07-04
接收方的重試決策:從單一請求到 retry 風暴
收到錯誤之後重不重試:從單請求的 status 加冪等合判、集體的去同步責任、到 retry 預算與斷路閘門 2026-07-03
11.C22 Matt Bessey:六年 GraphQL 老手的撤退清單(反例)
反例:授權下推到 field、成本不可預測、解析層攻擊面的執行期代價清單、附撤退條件 2026-06-16
自管 Redis / Valkey → AWS ElastiCache:engine 不變、變的是誰運維
自管 Redis/Valkey 遷到 ElastiCache 的特殊之處:engine 沒變(Redis 還是 Redis)、data model 沒變、API 沒變——變的只有運維責任歸屬。本文跑 6 維 diff audit 對映 Type C operational hybrid、展開 VPC/安全/cutover 的實際工作、以及『把 failover/patching 交出去、同時交出哪些控制權』的責任邊界,5 個 production 踩坑 2026-06-11
0.21 交付形態選型:從全託管到自建的光譜與邊界
在進入資料庫、快取與部署選型之前、先判斷服務該用託管平台(Wix / Shopify / Google Sites)、辦公生態自動化(Apps Script)、BaaS(Firebase)、半託管 CMS(WordPress)還是自建、並為日後遷往自建保留可遷出路徑 2026-05-22
PostgreSQL Cross-region DR
PostgreSQL 跨區災難復原、physical replica、logical replication、backup restore、RPO / RTO 與 failover runbook 2026-05-19
MySQL Partitioning:partition lifecycle 五段、跟 Vitess sharding 不同的「同 instance 內水平切割」
MySQL native partitioning 是 *同一個 MySQL instance 內的水平切割*、不是 Vitess sharding(跨 instance)。本文走 partition lifecycle 五段(design → create → query → maintenance → drop)、4 種 partition type(RANGE / LIST / HASH / KEY + COLUMNS / sub-partitioning)的 trade-off、partition pruning 怎麼運作、5 production 踩雷(PK 必須含 partition key / global index 沒原生 / partition exchange 細節 / orphan partition / cross-partition query 慢)、跟 PG declarative-partitioning 對比 2026-05-18
3.C22 Trivago:KEDA scale-to-zero by Kafka lag
Trivago 50+ Kafka sink、CPU/mem autoscaling 無效(I/O bottleneck)、KEDA 以 consumer lag 為訊號達到 scale-to-zero。 2026-05-12
9.C22 Wayfair:用 GCP 提供 Way Day / Black Friday 的 burst capacity
Wayfair 22M+ 商品 + 16,000+ 供應商、用 GCP 補充 on-prem data center 在峰值事件的 burst capacity 2026-05-08
4.22 Checkout API Evidence Package 實作示範
用 checkout 路徑示範 evidence package 如何交接給 release gate 與 incident decision。 2026-05-07
Netflix:Business-Hours Chaos 與 Guardrails
Chaos Monkey 為何刻意在 business hours 執行:把即時應變能力納入驗證,並用 guardrails 限制實驗風險。 2026-05-02
6.22 Steady State Definition
在 chaos 與 failover 前先定義系統應維持的穩定狀態與可接受退化 2026-05-02
8.22 Incident Evidence Write-back
把事故證據、決策與復盤結論回寫到 observability、reliability 與 runbook 2026-07-04
4.C23 Google Home:客訴是監控失效時唯一生效的訊號源
內部監控沒有發現的部分失效、客訴累積約四天才把 bug 優先度推到最高、團隊始終沒有宣告事故;consumer 回報作為 telemetry 替代品的正反面實證,以及客訴沒有寫成升級條件的代價 2026-07-04
錯誤傳播與信任邊界:中間服務的雙重身分
錯誤跨服務傳遞時誰該轉譯、收到的錯誤能信多少、對外暴露多少細節 — 服務鏈上每一跳同時是 consumer 與 provider 的責任判斷標準 2026-07-03
11.C23 Echobind:從 GraphQL 撤到 tRPC 的量化帳(反例)
反例:五層重複宣告與三層 codegen 拖垮 DX 的量化紀錄、同時自列 tRPC 的適用前提 2026-06-22
4.23 觀測查詢設計
把觀測資料的讀取路徑當系統設計問題處理:三種查詢模式、storage tiering、pre-aggregation 與資源治理 2026-06-14
0.22 能力級買 vs 建:feature-as-a-service 與 BaaS bundle 選型
在交付形態決定整個系統要不要自建之後、逐能力判斷該外包還是自建:辨識 managed 基礎設施、feature SaaS 與 BaaS bundle 三種外包深度、no-code 到 dev-tool 的服務光譜、買 vs 建判斷標準與權重浮動、整合接縫與遷出代價 2026-05-22
Specialized PostgreSQL Variants
pgvectorscale、Citus、TimescaleDB、PostGIS、AlloyDB、Cosmos DB for PostgreSQL、serverless PG 等 PostgreSQL 變體的選型邊界 2026-05-19
MySQL PITR + Backup Strategy:備份不是「拷貝資料」、是 N 點任意 restore 的能力
MySQL backup 不只是 mysqldump、是 *full backup + binlog 連續流* 組合才能達成 PITR(point-in-time recovery)。本文走「PITR 是能力、不是動作」、完整備份工具對比(mysqldump / Percona XtraBackup / MyDumper / LVM・EBS snapshot)、binlog-based recovery 流程、配置 step-by-step、5 production 踩雷(GTID 處理不一致 / binlog gap / backup 沒 verify / RPO 不到 1 分鐘的代價 / encryption key 沒備份)、跟 PG pitr-wal-archiving sibling 對比 2026-05-18
3.C23 Bloomberg:多租戶 vhost + 自助平台化
Bloomberg 從幾個團隊推到上百個團隊、靠自助 vhost 註冊跟專用叢集分離應用與 broker。 2026-05-12
9.C23 Netflix:把關聯式 DB 統一到 Aurora、效能 +75%、成本 -28%
Netflix 把多套關聯式 DB 統一到 Aurora、效能提升 75%、成本下降 28%、串流數十億小時 2026-05-08
8.23 Control Plane Decision Log and Write-back 實作示範
以 rule/config rollout 事故示範 decision log 與 write-back 如何形成可回放閉環。 2026-05-08
Netflix:FIT 證據交接與 Release Gate 回寫
用 Failure Injection Testing 產出的證據直接驅動 release gate:把實驗結果轉成可放行、可凍結、可回退的決策欄位。 2026-05-02
6.23 Verification Evidence Handoff
把 SLO、load、chaos、DR 與 readiness 結果包成 release / incident 可用證據 2026-10-14
8.24 客服回報的處理:客服當場答覆時用的資訊、轉給值班的條件、工程查證後給客服的回覆、查證結果寫回知識文章、告警與查詢工具,以及流程失效時的徵兆
客服接到使用者回報之後,哪些資訊讓客服當場答覆(進行中的事故、已知錯誤清單、維護與變更公告、錯誤碼對照表、帳號查詢工具),哪些條件要立即呼叫值班、哪些開單在上班時間處理,工程查證之後回覆給客服的內容,同一類回報重複出現時怎麼把查證結果寫回知識文章、告警規則或查詢工具,以及從客服單與事故紀錄看出流程在哪一段失效 2026-10-02
0.23 短網址服務的需求定義:自建或購買、保存期限、目的地修改與濫用處理的規格
短網址服務交給工程之前要定案的需求決定:自建或購買、點擊資料的地位、連結的保存承諾、目的地能否修改、建立者的範圍、短碼的可猜測性、網域策略與可用性分級;多數答案由商業模型推出,目的地修改、短碼可猜測性與可用性分級由使用情境決定 2026-07-04
4.C24 PagerDuty Customer Liaison:客訴的雙向 out-of-band 管道
專責角色把客戶回報聚合成 IC 可用的 scope 訊號、把確認過的狀態往外送;never lie never guess 在盲飛時尤其關鍵 2026-07-04
錯誤回報的回饋迴路:request-id、trace 與呈現回報分工
consumer 收到錯誤之後怎麼跟 provider 溝通:error 要帶什麼定位鉤子、同一個錯誤怎麼分別投影給使用者與回報、持續錯誤什麼時候該升級 2026-07-03
11.C24 DataLoader 譜系:N+1 的官方解法變成基礎設施
resolver-per-field 讓 N+1 從偶發變預設、官方生態把 batching 做成基礎設施而非優化技巧 2026-06-22
4.24 Client-to-Server 端到端觀測串接
用一個結帳場景走完 browser click → trace context → server span → 統一 waterfall 的完整實作鏈路 2026-05-19
MySQL Lock Contention:在 staging 重現的 deadlock、production 跑 6 個月才出現
MySQL InnoDB 的 lock 是 row-level、但 *為什麼某些 row 莫名其妙也被 lock* 是 gap lock / next-key lock 設計造成的隱性行為。本文從一個 production case 開場(staging 重現 deadlock / production 6 個月後突然爆)、走 5 種 InnoDB lock 類型(record / gap / next-key / insert intention / auto-inc)、isolation level 對 lock 行為的決定性影響、deadlock detection / SHOW ENGINE INNODB STATUS 解讀、5 production 踩雷(gap lock 阻塞 INSERT / auto-inc lock contention / FK lock cascading / large transaction lock holding / READ COMMITTED 跟 binlog ROW 互動) 2026-05-19
PostgreSQL MVCC + Lock Model:為什麼 PG 比 MySQL 少 deadlock、但 vacuum 是別的代價
PG 用 *MVCC-heavy + 少 explicit lock* 的並行控制、跟 MySQL InnoDB 的 *lock-based*(record / gap / next-key)相反。本文走 MVCC 機制(tuple version + xmin/xmax + visibility)、PG 4 種 lock(row-level / table-level / advisory / predicate)、預測 SERIALIZABLE 行為、5 production 踩雷(idle transaction 卡 vacuum / SELECT FOR UPDATE 跨 transaction / advisory lock 沒釋放 / bloat 不是 vacuum 問題 / predicate lock 在 SSI 下 rollback)、跟 MySQL lock-contention sibling 對比 2026-05-18
3.C24 SoundCloud:AMQP fan-out 音訊處理 pipeline
SoundCloud 每秒 20-30K persistent message、不同處理類型分開隊列、各自獨立 scale。 2026-05-12
9.C24 Genesys:用 DynamoDB 在 15 region 跑出 99.999% 可用性
Genesys 客服平台用 DynamoDB 為預設資料層、跨 15 主 region + 5 衛星 region、達成 12 個月 99.999% 可用性 2026-05-07
6.24 規則推送安全閘門
把規則、策略與控制面配置推送從部署步驟升級為可靠性 gate,避免小變更在秒級擴散成全網事故。 2026-10-22
8.25 建置主機被入侵後的根除與重建:清查範圍、重建來源、存取憑證撤銷與輪替的先後、多波攻擊的監看、宣告已掌握狀況的條件與承諾賠償的時機
一台持有程式碼與正式環境存取權的主機(以 CI 建置主機為例)被入侵之後,清查範圍怎麼從它手上的存取憑證、讀寫得到的資料與網路連得到的系統推出來,重建時哪些來源仍可信,存取憑證撤銷與發新的先後,攻擊者回來時的監看與它的結束條件,以及對外宣告已掌握狀況、通報與承諾賠償各要先具備哪些事實 2026-10-02
0.24 短網址服務的實作:短碼生成、對照表儲存、轉址快取與點擊紀錄
以需求已定案為前提的實作取捨:建立與轉址兩條路徑的流量形狀、各種短碼生成方式的可猜測性與協調成本、轉址狀態碼與各層快取怎麼影響停用或修改連結多久生效、點擊事件的非同步紀錄、濫用防護、服務結束時的靜態轉址與網域去向,以及換掉任一項需求決定時要重選的實作位置 2026-07-04
4.25 觀測共命運失效:工具退化時的訊號與人層設計
觀測系統跟被觀測系統共享失效域、在最需要時一起退化;out-of-band 訊號、優雅降級、以及工具盲飛時客服與工程師怎麼還能應對 2026-07-03
11.C25 HackerOne:introspection 列舉出未授權的 CreateAdminUser
introspection 作為攻擊面偵察工具的實證:schema 自我揭露讓隱藏 mutation 免 fuzzing 直接可見 2026-06-22
Retry Policy
說明重試策略如何區分暫時性錯誤、永久錯誤與副作用風險 2026-05-19
MySQL 5.7 → 8.0 Major Version Upgrade:character set / authentication / atomic DDL 三條 paradigm 同時換軌
MySQL 5.7 → 8.0 三條 default 同時改:charset utf8 → utf8mb4、auth plugin native_password → caching_sha2_password、DDL non-atomic → atomic。本文走 Type E paradigm shift 結構、schema 到 topology 的 diff audit、從 pre-check 到 paradigm 遷移的升級流程、production 踩雷、何時不要升級。 2026-05-19
PostgreSQL JSONB Deep Dive:Binary Storage + GIN Index 為什麼是結構性優勢
PG JSONB(9.4+)是 *binary 儲存的 JSON*、可直接 GIN index、是 PG 在 JSON workload 的結構性優勢、跟 MongoDB / MySQL 8.0 JSON_TABLE 比仍領先。本文走 JSON vs JSONB 差異、GIN index 機制(jsonb_ops vs jsonb_path_ops)、operator + path query、partial JSONB indexing、5 production 踩雷(大 JSONB 跟 TOAST / nested update / index 選錯 op class / jsonb_path_query 跟 jsonb_path_exists 行為差 / partial index 條件搞錯)、何時用 JSONB vs 拆 column 2026-05-18
3.C25 Indeed:Delay queue + DLQ 三層 escalation
Indeed 每天 35M+ 職缺、設計 Requeue → Delay queue → DLQ 三層 escalation 避開 head-of-line blocking。 2026-05-12
9.C25 Tubi:從 ScyllaDB 遷到 ElastiCache、ML feature store 達 sub-10ms p99
Tubi 把 ML 推薦的 feature store 從 ScyllaDB 遷到 ElastiCache for Redis、99 百分位延遲降到 10ms 以下 2026-05-08
6.25 Provider Dependency Release Gate 實作示範
以 payment provider 變更示範 release gate 如何結合 evidence、stop condition 與 rollback window。 2026-10-23
8.26 資料外洩時對商家的通知:外洩來源的歸屬判定、風險預警、確認與結案通知、調查報告
替商家保管會員資料的平台在可能的資料外洩發生時對商家發出的通知:外洩來源歸屬判定的比對方法與已排除、未排除、指向平台各自的證據標準、子處理者與平台自己發現暴露時的判定路徑、歸屬未定時風險預警的觸發條件與發送範圍、確認通知與結案通知交付各商家的事實、調查報告的時間軸與分層根因,以及事中要留給事後檢驗的決策紀錄 2026-10-12
4.26 單機容器服務的流量與資源監控:各層的訊號、Prometheus 與 exporter、監控所在層的盲區
健康檢查之外的流量與資源監控:入口、應用程式、容器、主機與資料庫等服務內部各層的訊號從哪裡收、用哪一個 exporter,Prometheus 加 exporter、單一 agent、開箱即用工具與臨時查看指令的取捨,單次取樣與時間窗的差別,監控裝在虛擬機裡時看不到主機的 CPU 負載、看到的磁碟要分清是哪一顆,以及每接上一個來源的驗收與偵測容器停止的寫法;cAdvisor 與 node_exporter 在 OrbStack 上實測過 2026-10-02
0.25 短網址服務的瞬時大流量:爆紅連結、建立路徑的機器人濫用與轉址路徑的攻擊
短網址服務遇到瞬時大流量時的處置:單一連結被大量轉發時負載落在哪一層、點擊事件管道的積壓與目的地網站承受不住匯集的點擊,爆紅的連結是惡意連結時快取與撤回的衝突,建立路徑被機器人大量建立連結時的成本、檢查管道與准入手段,以及轉址網域遭受掃描或體積型攻擊 2026-07-17
6.26 共用測試環境的設計契約(QA Environment Design)
QA 站不是 prod 的縮小副本,是一個有消費者的產品:服務對象、存取憑證策略、誤擊防護、診斷輔助、資料衛生與可用性契約——把「開一個 QA 站」從佈署動作升級為契約設計 2026-07-03
11.C26 GraphQL 官方:versionless API 與 nullable-by-default
no-versioning 的成本轉嫁鏈:只加不改、deprecation、nullable 預設三個紀律換掉版本號 2026-05-19
MySQL → Aurora MySQL:storage layer 轉手到 AWS、replication / HA / backup 全部 outsource
自管 MySQL → Aurora MySQL 是 Type C operational hybrid migration — wire protocol 一致、ops 責任轉到 AWS。本文涵蓋差異維度盤點(operational 為主)、從 Aurora 作為 external replica 到退役自管 MySQL 的階段切換、parameter group / IAM auth / Aurora-only feature / reader endpoint / 跨 region 寫入模型的踩雷,以及何時維持原路線。 2026-05-19
PostgreSQL Extension Ecosystem:把 PG 變成 vector DB / time-series / sharded 的 plugin 生態
PG 的 extension 機制不只是 plugin、是 *結構性產品線擴張* — pgvector 讓 PG 變 vector DB、TimescaleDB 變 time-series、Citus 變 sharded、PostGIS 變 GIS。本文走 PG extension lifecycle、6 個 production-critical extension(pg_stat_statements / pg_partman / pg_repack / pgvector / TimescaleDB / PostGIS)、5 production 踩雷(extension version 跟 PG version 對齊 / managed PG 限制 / upgrade order / shared_preload_libraries 衝突 / extension 跟 logical replication 互動)、cloud vendor 對 extension 的限制 2026-05-18
3.C26 GoCardless:Hutch + 單一 topic exchange service mesh
GoCardless 單一 RabbitMQ cluster 作所有 service 通訊中樞、routing key 用 service.subject.action 格式、JSON 多語言可讀。 2026-05-12
9.C26 PayPay:行動支付每日 3 億訊息的 DynamoDB 後端
日本最大行動支付 PayPay 每日 3 億訊息、用 DynamoDB 處理通知與訊息功能、支撐次秒級反應 2026-10-12
4.27 主機過載時的監控告警:可用與變慢分開判斷、依原因抑制、監控自身的等待
多個服務共用一台主機而主機過載時,各服務的探測與告警會一起失敗:可用性與延遲分成兩個判斷的寫法、間歇的條件怎麼持續成立、以主機飽和抑制各服務變慢的規則與它的取捨、以合成告警驗證抑制、抑制藏起各服務受影響程度的差別、探測與 Prometheus 自己也在等 CPU 時的訊號,以及讓監控不比服務先失效的資源隔離;以一次開發環境的過載為例 2026-07-03
11.C27 WunderGraph:GraphQL 不該直接暴露在公網
介於全開與撤退之間的第三條路:GraphQL 當 server-side 查詢語言、對外只開 persisted operations;vendor 立場需標明 2026-05-19
MySQL → PlanetScale:managed Vitess + branch-based schema workflow 的 hybrid shift
自管 MySQL → PlanetScale 加上 Vitess sharding 跟 branch-based schema workflow。本文涵蓋差異維度盤點(schema workflow、operational、schema 多軸)、從 FK 行為驗證到 write cutover 的階段切換與多數組織停留的 hybrid 狀態、cross-shard FK / Deploy Request 心智模型 / branch 不帶資料 / stale branch / 無 SUPER privilege 的踩雷,以及何時不要遷。 2026-05-19
PostgreSQL Full-Text Search:tsvector / tsquery、GIN index 與 pg_trgm fuzzy match
PG 內建 full-text search 用 *tsvector / tsquery / GIN index* 三件組、適合中小規模搜尋(< 100M 文件);pg_trgm 提供 fuzzy match。本文走 FTS 機制(tsvector 是 lexeme + position 的 vector)、3 種 query(match / ranking / weighted)、multi-language support、跟 pg_trgm fuzzy match 互補、5 production 踩雷(dictionary 選錯 / GIN 跟 GiST 取捨 / ranking 評分權重 / multi-language column 處理 / 何時不該用 PG FTS 改 Elasticsearch) 2026-05-18
3.C27 Zalando:RabbitMQ on AWS 自動化 master selection
Zalando 用 sidekick 服務查 AWS API 動態識別 cluster、指定最老 instance 當 master、跨版本升級用 federation 過渡。 2026-05-12
9.C27 Disney+:DynamoDB 承載每日數十億動作的觀看歷史
Disney+ 用 DynamoDB 承載每日數十億動作的觀看歷史、watchlist、播放進度等串流 metadata 2026-10-14
4.28 單台主機的監控盲區與失效域以外的觀察者:主機停機、使用者路徑中斷與告警鏈中斷,心跳監看與外部探測各自回答的問題與位置,以及與內部探測並排的判讀
服務與監控放在同一台主機時監控結構上看不到的故障:主機整台停掉、使用者到主機的路徑中斷、告警鏈停掉與通知送不出去;從失效域以外送出訊號的心跳監看與外部探測各自回答的問題與成立條件,觀察者由第三方服務、另一個失效域的主機(含兩台主機互相監看)或另一個業者的排程平台提供時的差別,以及心跳監看、外部探測與主機內部探測並排時的判讀 2026-07-03
11.C28 protobuf 官方規範:field number 紀律
編號不可改、刪除必 reserve、重用導致資料損毀;契約相容性是編碼格式的性質、不是 review 慣例 2026-05-19
PostgreSQL Replication Slot Management:Physical / Logical / Failover Slot 治理
PG replication slot 是 *primary 端的 standby 進度紀錄*、防 WAL premature deletion。但 orphan slot 會吃 disk、failover 後 logical slot 不會自動跟新 primary、是 PG 操作的 hidden complexity。本文走 physical / logical slot 差異、slot lifecycle、failover slot synchronization(PG 17+ 新特性)、orphan slot 治理、production 踩雷(orphan slot disk 爆 / logical slot lag / failover 後 slot 丟 / wal_keep_size 跟 slot 衝突 / connection 同時打 slot 數量限制) 2026-05-19
自管 Vitess → PlanetScale:Vitess component ops outsource、加 schema workflow shift
自管 Vitess → PlanetScale 是 Type C operational hybrid — Vitess component(VTGate / VTTablet / VReplication / VSchema)ops outsource + branch workflow。本文涵蓋差異維度盤點、從 topology 盤點到寫入切換與退役自管 Vitess 的階段切換、custom Vindex / branch workflow 訓練 / SUPER privilege / 連線上限 / per-row 計費的踩雷,以及何時不要遷。 2026-05-18
3.C28 WeWork:Consistent hash exchange 保證帳戶順序
WeWork 固定數量 queue + account ID hash 路由、每 queue 一個 worker + exclusive consumer 保 partition-level ordering。 2026-05-12
9.C28 FanDuel:體育直播 + 投注的雙重峰值
FanDuel 3.5M MAU、Super Bowl 期間擴容 5-10 倍、用 AWS Local Zones + Wavelength + Outposts 處理 20+ 州的雙重峰值 2026-10-14
4.29 值班的例行檢查:接班檢查與每週營運會議讀的訊號、交班紀錄的內容,以及例行檢查項目改寫成告警規則的條件
告警刻意不呼叫值班的訊號由值班定時讀:接班時讀上一班的交班紀錄、生效中的告警靜音、只送通知的 warning、error budget 的走向、排程工作與心跳檢查項目、到期事件、容量走向、近期變更與客服單量,各自防的是哪一種情形;交班紀錄要寫的內容;每週營運會議讀的告警雜訊、值班負擔與重複出現的客服回報;以及一個檢查項目什麼時候該改寫成告警規則 2026-07-03
11.C29 Buf breaking detection:四級規則對應消費者依賴
把 proto 相容紀律從人的自律升級成 CI gate、檢查粒度是產品決策不是工具預設 2026-05-22
MySQL Metadata Lock Deep Dive
MySQL metadata lock、DDL blocking、long transaction、online schema change、MDL observability 與 incident runbook 2026-05-19
TimescaleDB Deep Dive:Hypertable / Continuous Aggregate / Compression 把 PG 變 Time-Series DB
TimescaleDB 是 PG extension(不是 fork)、用 *hypertable* 自動 partition by time、加 *continuous aggregate* 做 incremental materialized view、加 *compression* 對舊 chunk 壓 90%+、把 PG 變成 InfluxDB / Prometheus 級 time-series DB。本文走 hypertable 機制、continuous aggregate 跟普通 MV 差異、compression policy、retention policy、production 踩雷(chunk size 不對 / CAGG refresh 落後 / 舊版 compression 後 update 限制 / FK 方向限制 / TimescaleDB 跟 PG 主版本對齊)、跟 PG 原生 partitioning 對比 2026-05-18
3.C29 WeWork:Bunny + Puma 多執行緒 channel pool
WeWork 從 Unicorn 切到 Puma 後遇 ConnectionClosedError、根因是 AMQP channel 跨執行緒共用、改用 connection_pool 管理。 2026-05-12
9.C29 NTT DOCOMO Lemino:3 個月達 500 萬 MAU 的串流後端
Lemino 用 DynamoDB + AWS Media Services 承載 30 channels live + 5M MAU、工程工時下降 90% 2026-07-06
BuildKit 與跨平台 build
docker build 每次重下載套件很慢、要同時出 amd64 與 arm64 image、或 build 時要用私有存取憑證卻不想烤進 image 時回來讀 — BuildKit 的 cache/secret mount 與 buildx 跨平台 build 2026-07-03
11.C30 Buf Connect 發布文:對 grpc-go 的系統性批評
gRPC 部署邊界(trailers、瀏覽器、proxy)最完整的一手批評;發布方是競品、立場需標明 2026-05-27
Aurora Storage Architecture:quorum-based 分散式 log 與韌性即性能設計
Aurora storage / compute 分離、6-way 跨 AZ replication、4-of-6 write / 3-of-6 read quorum、韌性投資自動 amortize 成 read 性能、DraftKings 6ms 寫 / <1ms 讀 production reference 2026-05-27
CockroachDB HLC + Raft Consensus:軟體時鐘 + per-range 共識的 latency 與容量結構
CockroachDB 用 Hybrid Logical Clock + per-range Raft 做跨節點線性化、不靠 TrueTime 原子鐘。本文走 HLC / Raft / range / leaseholder 四層機制、寫入 latency 構造、failure mode(clock skew panic / Raft majority lost / hot range)、引用 DoorDash Aurora 撞牆訊號(1.636 M QPS 屬 Aurora 痛點而非 CockroachDB 容量證明)+ Netflix 380+ artery of small DBs 容量規劃顆粒 2026-05-27
Cosmos DB MongoDB API vs SQL API:遷移路徑、dogfood signal、multi-model、跨雲 hedging
從『MongoDB API 跟 SQL API 哪個快』推進到 vendor selection 的四層問題:三型遷移路徑、dogfood signal 怎麼讀、multi-model 差異化、跨雲 hedging — 從 Microsoft 365 dogfood 案例切入 2026-05-27
DynamoDB Single-Table Design:從適用度前置判讀到 access pattern 反推 PK/SK
DynamoDB single-table 設計不是「資料表越少越好」,而是 access pattern 反推 PK/SK 跟 GSI;本文先做 DynamoDB 適用度 4 軸前置判讀(PK 天然均勻 / control plane vs data plane / consistency / access pattern 穩定),再展開設計流程、failure modes 與 durable queue 正向用例 2026-05-27
MongoDB Schema Design Pattern:contract layer 在哪 vs embedded / reference
MongoDB document schema 真正的 production 議題不是 embedded vs reference 二選一、是 schema contract 該放 DB 層 validator 還是 app 層 abstraction;含 Toyota polymorphic governance、Forbes abstraction layer、time-series collection 邊界 2026-05-27
Spanner TrueTime API 深度:GPS + 原子鐘、commit wait、為什麼 line-rate scaling 才是設計目的
TrueTime 是手段、line-rate scaling 才是 Spanner 的設計目的。本文先扣商業邏輯:傳統 OLTP coordinator 為什麼是 bottleneck、Spanner 怎麼用 TrueTime + Paxos 換成拓樸感知多 leader;再展開 TrueTime ε / commit wait 數學、ε 暴衝失敗模式、cross-region voting 對 latency 的影響、跟 Google 內部 Spanner 規模案例揭露的線性擴展模式對照 2026-05-22
MySQL Cross-buffer Memory Contention
MySQL InnoDB buffer pool、sort / join buffer、tmp table、thread memory、OS page cache 與 memory pressure 判讀 2026-05-19
pgvector Deep Dive:HNSW / IVFFlat 取捨跟跟專業 Vector DB 對比
pgvector 是 PG extension、加 *vector* type 跟兩種 ANN index(IVFFlat / HNSW)、把 PG 變成可用 vector DB。本文走 vector type + distance operator、IVFFlat vs HNSW 取捨(build time / recall / memory)、quantization 跟 dimension reduction、5 production 踩雷(dimension 超 2000 限制 / HNSW build 太慢 / IVFFlat 不重建 recall 漂移 / hybrid search 設計 / memory budget)、跟 Pinecone / Weaviate / Milvus 對比的決策框架 2026-05-18
3.C30 Runtastic:Mirrored queue 網路負載瓶頸
Runtastic 2020 lockdown 流量暴增、performance test 揭露 mirroring 邏輯把網路元件壓垮、調整 mirroring 配置消除瓶頸。 2026-05-12
9.C30 Microsoft 365:從 MongoDB 遷移到 Cosmos DB 的分析平台
Microsoft 365 把使用分析平台從 MongoDB 遷移到 Cosmos DB、planet-scale 全球分散式分析 2026-08-11
錯誤格式之爭:transport status 的真實性與錯誤細節的容器
各派錯誤格式的分歧與代價:失敗時回不回真實 status 讓哪些角色讀得到錯誤、局部失敗的表達力、演化條款與命名空間由誰提供,以及選型的判定問題 2026-07-03
11.C31 Dropbox Courier:百萬 RPS 規模的 gRPC 遷移
gRPC 當框架層集中可靠性的載體、遷移成本與 TLS 握手踩雷的規模判讀訊號 2026-06-02
Aurora Serverless v2 適用判斷:ACU 自動擴縮、混合 cluster 與何時不該用
Aurora Serverless v2 不是「比較便宜的 Aurora」;本文展開 ACU 計費粒度、秒級自動擴縮機制、min/max ACU 設定、serverless 與 provisioned 同 cluster 混用,以及穩定高負載下 serverless 反而更貴的成本 crossover 邊界 2026-05-27
DynamoDB Partition Key 反模式與 Write Sharding:composite key 修復跟 mode × partition 交叉判讀
DynamoDB partition 上限 1000 WCU 是 hot partition 的根因;composite key(event_id + shard suffix)跟 calculated shard(hash % N)兩種修法、mode × partition 在 provisioned / on-demand 不同表現,以及 Tixcraft 6750x 擴展的工程細節 2026-05-27
MongoDB Shard Key Selection:hashed vs ranged、單 cluster 切 shard vs 多 cluster 切 blast radius
MongoDB sharded cluster shard key 選型(hashed / ranged / compound)、單 cluster 分 shard vs 多 cluster 分 blast radius 對照、跟 DynamoDB / Cosmos DB partition key 可逆性的跨 vendor 紀律 2026-05-27
Spanner Consistency Models 對照:external consistency vs serializability vs linearizability
external consistency、serializability、linearizability 是三個常被混用的概念。本文先精確定義三者差異、再用 line-rate scaling 對照表(PG SSI / CockroachDB / Spanner / Aurora DSQL)回答為什麼 Spanner 不只是『更強的 serializable』、最後用 Google 內部 Spanner 案例揭露的 cross-region quorum 100-200ms 物理硬限解釋『強一致 + 全球部署』的真實 cost 2026-05-22
MySQL Multi-source Replication
MySQL multi-source replication、channel、consolidation、conflict boundary、lag monitoring 與 migration route 2026-05-19
PostGIS Deep Dive:Geometry / Geography 型別、GiST 空間索引跟 ST_* 函式生態
PostGIS 是 PG extension、加 *geometry* / *geography* 型別、GiST 空間索引跟 1000+ ST_* 函式、把 PG 變成功能完整 GIS DB(跟 Oracle Spatial / SQL Server geography 並列)。本文走 geometry vs geography 取捨、SRID 跟投影系統、GiST 空間索引機制、production 踩雷(geometry 用錯 SRID / geography 不能用所有 ST_ 函式 / GiST index 不對 ST_Distance 生效 / cluster on geom 後 BRIN 失效 / EWKB vs WKB 跨工具相容)、GIS workload 的 PG vs 專業 GIS DB 對比 2026-05-18
3.C31 Mozilla Pulse:命名前綴 + ACL 取代 vhost 多租戶
Mozilla Pulse 不用 vhost、改用權限 + 命名前綴 (exchange/{user}/*) 做隔離、CloudAMQP 託管、PulseGuardian 管使用者。 2026-05-12
9.C31 Mercado Libre:LatAm 電商在 GCP 上用 Vertex AI 搜尋 1.5 億商品
Mercado Libre 1 億客戶 + 1.5 億商品、用 GCP Vertex AI Search + BigQuery 提供近即時搜尋與分析 2026-05-07
Amazon:Shuffle Sharding 與 Cell 邊界的失效局部化
用 cell 與 shuffle sharding 將多租戶故障限制在局部,讓恢復策略可分批執行。 2026-05-07
Discord:Gateway 容量事件與恢復節奏
長連線平台在容量邊界被擊穿時,如何控制擴散並分批恢復。 2026-05-07
LinkedIn:Capacity Headroom 與 On-call 分層
把容量預測與值班分層綁在一起,降低高峰時段的升級混亂與恢復延遲。 2026-08-11
版本策略流派之爭:URI 版本、header 版本、日期 pin 與不做版本的前提與成本
版本識別碼指向什麼、消費者不動作時被解讀成什麼、遷移成本由誰吸收;各派的支援窗口承諾、借用某派結論而不帶其前提的失效形態,以及選型的判定順序 2026-07-03
11.C32 gRPC: The Bad Parts:cURL 測試不過的 API(反例)
反例:獨立實踐者的 gRPC 批評清單、debug 可及性判斷標準、含生態已修補的平衡敘述 2026-06-23
Amazon:Static Stability 與 Constant Work Pattern
控制面失效時資料面如何維持服務:用快取、預計算與固定工作量避免恢復放大。 2026-06-23
Honeycomb:Production Excellence 與 Test in Production
用 high-cardinality observability 把 production 變成安全的驗證環境:feature flag、progressive rollout 與即時回饋的配合。 2026-06-23
LinkedIn:Automated Load Testing 與 Capacity Forecasting
持續壓測驅動容量預測:用自動化回饋取代一次性壓測的容量規劃。 2026-06-02
Aurora 多 cluster 按業務切分:微服務私有 store、blast radius 隔離與 fleet 治理
把所有服務塞進一個大 Aurora cluster 會讓單一服務的查詢拖垮全部;本文展開按業務 / 微服務切 cluster 的判斷維度、blast radius 隔離、共用 vs 分離的成本與運維 surface 權衡,以及多 cluster fleet 的治理一致性,含 Netflix Aurora consolidation 對照 2026-05-27
DynamoDB GSI 與 LSI 設計:access pattern 補位、projection、consistency 跟 DAX 補位
GSI / LSI 是 single-table 沒覆蓋的 access pattern 補位、不是萬靈丹;本文涵蓋 projection 在 KEYS_ONLY、INCLUDE 與 ALL 之間的選擇、sparse index、GSI 自己會 hot partition、DAX 讀峰值補位的觸發條件 2026-05-27
MongoDB Replica Set Read Preference:DB 層 causal session vs cache 層 freshness token
MongoDB read preference 五擇一 + read concern + causal consistency session 機制;DB 層機制解 cluster 內 read-your-own-write、cache 層 freshness token 解跨層 read-after-write、大規模 OLTP 必須兩層合用 2026-05-27
Spanner Schema Migration Without Downtime + Interleaved Tables
Spanner DDL 是 long-running operation、用 TrueTime 給每次 schema change 分配 version timestamp、所有 read / write 對應自己 transaction timestamp 看到對應 schema。Interleaved table 是 storage-level parent-child 物理交錯、不是 logical FK。本文走 schema change lifecycle、interleaved layout 機制、backfill capacity 影響、production 踩雷(backfill 時間沒估、interleave 事後重建、interleave 與 FK 混淆、ADD COLUMN NOT NULL 沒帶 DEFAULT、舊 client 的 schema cache)、跟 PostgreSQL online schema change 對照 2026-05-22
MySQL Encryption / TLS / Key Management
MySQL at-rest encryption、TLS、keyring、certificate rotation、backup encryption 與 credential governance 2026-05-18
3.C32 LoyaltyLion:監控數千 RabbitMQ queue
LoyaltyLion 跑數千 queue、用 rabbitmqctl + statsd 推 Datadog、揭露大規模 queue 拓樸下原生 plugin API 不夠用。 2026-05-18
PostgreSQL autovacuum tuning:預設 cost-based throttle 在 write-heavy 表上追不上 bloat
MVCC 怎麼產生 dead tuple、autovacuum cost-based throttle 為什麼預設保守、per-table tuning 怎麼設、5 個 production 踩雷(cost_limit 太低 / 長 transaction blocks vacuum / anti-wraparound 在 peak / partition vacuum 滿 worker / index bloat 沒處理)、跟 partitioning + monitoring 整合 2026-05-13
9.C32 Clearent:Azure SQL Hyperscale 處理每年 5 億筆支付交易
Clearent 在 Azure SQL Hyperscale 上處理每年 5 億筆支付交易、autoscale + 微服務架構 2026-08-11
分頁之爭:offset 與 keyset 的定位機制、接續標記的表示法與不透明性條款
定位機制、一致性模型與表示法各自的取捨:offset 與 keyset 的成本與能力差、不透明接續標記給服務端的自由、未宣告的接續標記性質會被誰依賴、offset 留下來的條件,以及選型的判定順序 2026-07-03
11.C33 tRPC 設計哲學:無 schema 無 codegen 的型別共享
把 API 契約從 IDL 檔搬進型別系統的極端點、官方自述的前提與代價(TS-only、同倉共置) 2026-06-22
Log Schema
說明結構化 log 欄位如何支援搜尋、關聯與事故排查 2026-06-02
Aurora RDS Proxy 與連線管理:connection multiplexing、pinning 陷阱與 failover 加速
RDS Proxy 不是「連上去就自動省連線」;本文展開 connection multiplexing 機制、哪些 session 操作會觸發 pinning 讓 multiplexing 失效、failover 期間 proxy 如何保持 client 連線縮短中斷,以及 RDS Proxy 與自管 pgbouncer 的責任切分 2026-05-27
DynamoDB On-Demand vs Provisioned:6 軸決策、auto-scaling 邊界與 cost crossover
capacity mode 選擇不是單軸 peak/avg ratio;本文展開 6 軸決策(peak/avg / 讀寫比 trend / surge 暫時 vs 永久 baseline / predictable-peak vs flash-sale / DBA 工時釋放 / vendor vs 自管 cost crossover),含 Zomato 50% 成本下降、Zoom 30x permanent surge、Amazon Ads sustained workload 等案例對照 2026-05-27
Migration Playbook:Cloud SQL for PostgreSQL → Cloud Spanner
Cloud SQL → Spanner 是 paradigm shift 級遷移、不是 drop-in。本 playbook 依 Driver / Diff / Phase / Evidence / Cutover / Cleanup 各段展開:Driver 段明示 sizing barrier(100 pu 起跳)跟 < 50ms write latency 兩條 no-go;Diff 段在 schema、operational、paradigm、component、application、data topology 之外加比 sizing / cost;Phase 0 含 sizing audit;Evidence 段補 cost crossover 報告;對照 Google 內部 Spanner 案例的 dogfood 邊界跟 Standard Chartered 受監管 banking case 2026-05-27
MongoDB Connection Management and Cache Layer:driver × 部署模型 × cache × predictive scaling
MongoDB 大規模 OLTP 的連線與讀取擴展:driver / proxy 層、cache + freshness token 層、scaling trigger 層各自解什麼上限、怎麼一起設計,以 Coinbase 的 mongobetween、freshness token 與 ML 預測擴容為例,並交代各層只在哪些部署模型與流量下才需要 2026-05-22
MySQL Audit Log + SIEM
MySQL audit log、general log、slow log、privilege event、SIEM pipeline、retention 與 alert route 2026-05-18
3.C33 Wargaming:World of Tanks 戰後 dossier 解耦
Wargaming WoT server 全 Linux、戰後 dossier 寫 RabbitMQ、portal 顯示統計而不增 game server load。 2026-05-18
PostgreSQL declarative partitioning:planner pruning、maintenance scope 與 partition key 選法
Declarative partitioning 的真實價值是 query planner pruning + maintenance scope 縮小、不是「把大表切小」;RANGE / LIST / HASH 取捨、partition key 選法、5 個 production 踩雷(key 選錯不 prune / unique 不 enforce 跨 partition / ATTACH 鎖太久 / partition 數爆 / DETACH 不 reclaim 空間)、跟 autovacuum + index 設計整合 2026-05-13
9.C33 Maersk + Bosch:傳統產業在 Azure AKS 上的微服務治理
全球海運 Maersk 跟 Bosch 智慧建築把 AKS 當微服務治理基礎、釋放工程資源做業務功能 2026-08-11
Idempotency key 標準化之爭:header 命名、replay 語意、保存期與同 key 並發的各家差異
冪等鍵的標準化現況,以及一份標準規定得了與規定不了哪些條款;涵蓋不需要冪等鍵的操作、各家條款的成立情境與整合時逐項採用的保守預設 2026-07-03
11.C34 JSON-RPC 重生:LSP 與 MCP 都選它當訊息層
死在 web API、活在編輯器與 agent 協議:最小夠用訊息層的選型條件組合 2026-06-22
Metrics
說明指標如何描述服務趨勢、容量與健康狀態 2026-06-02
Aurora PG/MySQL vs Aurora DSQL 取捨:何時 single-region managed 夠用、何時跨到 distributed
Aurora DSQL 不是 Aurora 的升級版而是不同 paradigm;本文聚焦『standard Aurora(single-region managed SQL)什麼時候夠用、什麼時候需要跨到 active-active distributed』的升級門檻決策,切分『怎麼遷』(migrate-to-aurora-dsql)與『DSQL vs Spanner vs CockroachDB 三方選型』(decision-tree)兩個既有 SSoT 2026-06-02
Spanner Change Streams (CDC):捕捉資料變更、watch partition、下游整合與 DynamoDB Streams 對照
Change Streams 是 Spanner 把 commit 後的 row mutation 變成可消費事件流的 CDC 機制、用 data change record 攜帶 commit timestamp 把外部一致性延伸到下游。本文走 change stream 物件模型、watch partition 的 child partition 切分、Dataflow / Pub/Sub 下游整合、retention 與 staleness 失敗模式、跟 DynamoDB Streams 的 partition / ordering / retention 對照 2026-05-27
DynamoDB Global Tables:multi-region active-active、LWW conflict 與 cross-device sync 正向用例
Global Tables 不只是 conflict 痛點、也是 cross-device sync / global read / DR failover 的正向工程方案;本文展開 B2B SaaS vs B2C 業務 driver、LWW conflict resolution、reconciliation pipeline,含 Genesys 99.999% 跨 15 region 跟 Disney+ 跨裝置同步的對照 2026-05-27
MongoDB Aggregation Pipeline Optimization:stage 順序、index 配合與 memory 邊界
MongoDB aggregation pipeline stage 順序、index 配合、100MB memory 邊界、cross-shard `$lookup` 限制;report dashboard 跑爆 primary 的 anti-pattern 治理路徑 2026-05-22
MySQL Document Store / X Protocol
MySQL Document Store、X Protocol、JSON collection、SQL interoperability、MongoDB-like API 與使用邊界 2026-05-18
3.C34 Netlify:NATS 當全球 metrics/logs 統一資料平面
Netlify 70K+ 網站、10 億 PV/月、跨多雲、NATS 當 all-purpose data plane fan-out bus、超 RabbitMQ 評估。 2026-05-18
PostgreSQL Logical Replication + Debezium CDC:replication slot × failure × recovery 對照
PostgreSQL logical replication slot 跟 Debezium CDC 的失效模式對照表:slot lag 撐爆 primary disk / schema change 斷流 / 初始 COPY 鎖表 / zombie slot 不釋放 / replay storm 後 offset reset;publication / subscription / pgoutput 配置、跟 Kafka outbox pattern 整合 2026-05-13
9.C34 GCP:130,000-node GKE cluster 的工程極限
Google 用單一 GKE control plane 跑 13 萬個 node、AI workload + 1000 Pods/sec 創建吞吐 2026-07-03
11.C35 RFC 9457:problem+json 標準化錯誤格式
type 用 URI 外部化錯誤命名空間、client 必須忽略未知欄位的演化條款、IANA registry 補 7807 碎片化 2026-06-22
SLI / SLO
說明服務品質指標與服務品質目標如何連接產品承諾 2026-06-02
DynamoDB Transaction 與 Conditional Write:跨 item 原子性、optimistic locking 與 idempotency
DynamoDB 的寫原子性不是免費 ACID;本文展開 TransactWriteItems 跨 item 原子性、ConditionExpression 條件寫、version-based optimistic locking、ClientRequestToken idempotency,以及 transaction 2x 成本邊界與何時用單 item conditional write 取代 transaction 2026-06-02
Spanner PostgreSQL dialect:PG-compatible interface vs GoogleSQL、相容子集邊界、何時選 PG dialect
Spanner PostgreSQL dialect 是建在 Spanner 分散式引擎之上的 PG-compatible 介面、提供 PostgreSQL 語法、型別與 wire protocol、但不是完整 PostgreSQL。本文先定義 PG dialect 跟 GoogleSQL dialect 的責任差異、再劃相容子集邊界(哪些 PG 功能不在、哪些 Spanner-only 概念仍要懂)、最後給選 dialect 的決策標準與 dialect 不可變更的失敗代價 2026-05-27
MongoDB Change Streams + Kafka 整合:resume token、scope 選擇與 connector 治理
MongoDB change streams 機制(resume token、oplog 容量、cluster-wide vs collection-level scope)跟 Kafka Connector 整合;at-least-once 語義 + idempotency 治理 + resume token 過期防護 2026-05-22
MySQL HeatWave OLAP Add-on
MySQL HeatWave、OLTP + OLAP hybrid、query offload、cost model、data freshness 與 warehouse 邊界 2026-05-18
3.C35 Form3:NATS JetStream 多雲低延遲支付
Form3 服務 Tier-1 銀行、500ms SLA、SNS/SQS 吃 300ms 預算、改 NATS+JetStream 跨雲 6x 延遲改善。 2026-05-18
PostgreSQL PITR + WAL archiving:從 base backup 到 point-in-time recovery 的完整鏈
Base backup + WAL archive 構成 PITR 的雙軌資料、archive_command + restore_command 配置、用 pgBackRest / WAL-G 替代手寫腳本、production 踩雷(archive 靜默失敗 / archive lag / 錯誤 target time / base backup 過期未清 / timeline 分歧 recovery 模糊)、跟 Patroni + monitoring 整合 2026-05-13
9.C35 Snap:GCP + KeyDB 在 multi-cloud 架構下的低延遲快取
Snap 用 GCP 上的 KeyDB cluster 減少跨 cloud cache 延遲、用 TPU 訓練廣告推薦模型 2026-07-03
11.C36 Stripe 錯誤物件:type / code / param 三層分離
路由層、分支層、UI 層做成正交欄位;冪等衝突列 first-class 錯誤型別;標準前自成一格的對照組 2026-06-22
Trace Context
說明跨服務 request 如何用 trace context 串起路徑與耗時 2026-06-02
DynamoDB DAX 快取策略:cluster 架構、item/query cache、write-through 與 invalidation 邊界
DAX 不是「加上去就變快」的開關;本文展開 DAX cluster 架構、item cache vs query cache 兩種快取、write-through 一致性語意、query cache 只靠 TTL 失效的陷阱,以及 strongly consistent read 繞過 cache 的邊界 2026-06-02
Spanner Graph (2024):property graph 能力、跟 relational 表共存、適用場景與邊界
Spanner Graph 是建在 Spanner relational 引擎上的 property graph 能力、用 GQL 查詢 node 與 edge、底層仍是 relational table、graph 跟 SQL 共用同一份資料與 transaction。本文走 graph 物件模型(node / edge table 映射)、跟 relational 共存的設計、GQL 查詢、graph schema 不可逆設計的失敗代價、何時用 graph、何時用純 relational 或專用 graph DB 2026-05-26
9.C36 Coinbase:MongoDB 作為 Ruby 單體與 1.5M reads/sec identity 服務的主資料庫
Coinbase 以 MongoDB 為主資料層、自建 mongobetween connection proxy、users 服務在加密貨幣 surge 時處理 1.5M reads/sec 2026-05-22
PostgreSQL Security / RLS / Audit Logging
PostgreSQL role、grant、Row Level Security、pgAudit、log policy、PII access evidence 與合規路由 2026-05-18
3.C36 Intelecy:工業 IoT 即時感測 + 多租戶
Intelecy 工廠 gateway 接數萬感測器、< 2 秒往返延遲做即時 ML、從 BoltDB 本地快取演進到 JetStream 持久化。 2026-07-03
11.C37 Slack:offset 到不透明接續標記的分頁遷移
深頁掃描與 page window 漂移兩個失效模式、不透明接續標記把分頁狀態表示權留在 server 端 2026-06-02
DynamoDB Streams 與 Lambda 事件驅動:CDC、shard 順序保證、消費模式與失敗處理
DynamoDB Streams 不是免費的可靠事件流;本文展開 stream record 的 view type(KEYS_ONLY / NEW_IMAGE / OLD_IMAGE / NEW_AND_OLD_IMAGES)、shard 對應 partition 的順序保證邊界、Lambda event source mapping vs Kinesis 消費模式、at-least-once 下游冪等需求,以及 batch 失敗時的 bisect / DLQ 處理 2026-06-02
Spanner ↔ BigQuery federation:OLTP/OLAP 分工、federated query、Data Boost、何時把分析 workload 分出去
Spanner 是 OLTP、BigQuery 是 OLAP、federation 讓 BigQuery 直接查 Spanner 的活資料、Data Boost 讓分析查詢用獨立運算資源不搶 OLTP CPU。本文先定義 OLTP/OLAP 的責任分工、再走 external dataset federated query、Data Boost 的 workload 隔離機制、federation vs change-stream-to-BigQuery 兩條整合路線的取捨、以及何時該把分析 workload 完全分出去 2026-05-26
9.C37 Forbes:自管 MongoDB → Atlas on GCP、build 時間 25 → 9 分鐘
Forbes 把自管 MongoDB 遷到 Atlas on Google Cloud、6 個月完成、build 25 → 9 分鐘、120M 不重複訪客單月承接 2026-05-22
PostgreSQL Logical Decoding Plugins
PostgreSQL logical decoding output plugin、pgoutput、wal2json、test_decoding、CDC connector 與 plugin 選型 2026-05-18
3.C37 MachineMetrics:邊緣到雲端工廠資料管線
MachineMetrics 跨數百工廠、數千機台、1000Hz 採樣、Kinesis 無法跑在 edge、改 NATS Leaf Node + JetStream + KV + Object Store。 2026-07-03
11.C38 Stripe 冪等設計哲學:retry 是 client-server 協作
三種失敗點的 replay 行為分析、client 端 backoff + jitter 責任;冪等只做 server 半邊會放大故障 2026-06-02
DynamoDB TTL 資料生命週期:自動過期、數天內的刪除延遲、過期仍可讀與 storage 成本
DynamoDB TTL 不是即時刪除也不是查詢過濾器;本文展開 TTL attribute 的 epoch 語意、AWS 背景刪除的延遲特性、過期但未刪 item 仍會被讀到且仍計費的陷阱、TTL 刪除免 WCU 與觸發 stream 的整合,含 PayPay 訊息過期清理的案例 2026-05-26
9.C38 Toyota Connected:以 MongoDB Atlas 作為 900 萬車輛 telematics 的資料層、月 180 億 transaction
Toyota Connected 以 MongoDB Atlas 作為 Safety Connect 900 萬車的資料層、月 180 億 transaction、緊急訊號 3 秒內到 agent 2026-05-22
PostgreSQL pg_partman Advanced
PostgreSQL pg_partman 自動分區、premake、retention、maintenance job、partition migration 與 runbook 2026-05-18
3.C38 Clarifai:NATS Streaming ML 平台非同步任務
Clarifai custom model 訓練、rolling deploy 掉訊息、改 NATS Streaming queue group、3 週遷移 1 服務、5 月 5 服務、每日 100k+ 訊息 100% uptime。 2026-07-03
11.C39 Stripe 冪等鍵契約條款:24h 保存、500 也重放
可承諾的冪等契約細節:重放的是該次請求的結局而非成功結果、同 key 不同參數即錯 2026-06-02
從 RDS / MongoDB 遷移到 DynamoDB:access-pattern-first 重建模、混合架構與 cost crossover
RDS / MongoDB → DynamoDB 要換的是資料模型的 paradigm,schema 無法照原樣搬過去;本文展開為何字面遷移不成立、access pattern 重建模、哪些 workload 該遷哪些該留的混合架構、dual-write + shadow read 階段化,以及 Zomato cost crossover 的長期成本判讀 2026-05-26
9.C39 DoorDash:Aurora Postgres 寫入瓶頸 → CockroachDB 多主寫入
DoorDash 從 Aurora Postgres 遷到 CockroachDB、解 1.6 M QPS 單主寫入瓶頸、外送平台爆量壓力下重做 OLTP 拓樸 2026-05-22
PostgreSQL Developer / DBA Responsibility Split
PostgreSQL application developer、DBA、platform team 在 schema、query、migration、backup、incident 與 capacity 的責任分工 2026-05-18
3.C39 Choria:NATS 管 50 萬 server fleet
Choria 替代 Puppet MCollective、NATS 單 binary 無 Zookeeper、4GB node 可達 50 萬 server、wildcard + queue group 做 scatter-gather RPC。 2026-07-06
image 版本管理與升級:不動舊的、建新的
有一個跑著的 stack 要升版(PHP / MySQL 升級)、不想弄壞現在能跑的、又不確定多個版本的 image 跟 Dockerfile 怎麼管時回來讀 — image 不可變下的升級與版本管理 2026-07-03
11.C40 IETF Idempotency-Key draft:標準化停在 expired
de facto 先於 de jure 的具體例:業界事實標準先行、IETF 標準化跟進後停滯;引用必標 expired 狀態 2026-05-27
Aurora Cross-AZ Failover:RTO 量測、endpoint routing 與 application reconnect 契約
Aurora cross-AZ failover lifecycle(detection / promotion / DNS update)、官方寫的「通常 60 秒內、常常不到 30 秒」RTO、application DNS cache 跟 connection pool 對齊、Standard Chartered 受監管場景為什麼用獨立 cluster 而非 Global Database failover 2026-05-27
CockroachDB Survival Goals:zone 級 vs region 級配置與業務 SLO 倒推流程
CockroachDB 用 SURVIVE ZONE FAILURE / SURVIVE REGION FAILURE 兩種 survival goal 宣告式控制 Raft replica 分佈、決定 RTO / RPO。本文走 Hard Rock Digital bet placement RPO=0 倒推流程、Netflix Gaming 48-node 跨 4 region 「為求 survival 而非 latency」的反直覺判讀、配置語法、寫入 latency 暴漲跟 cost 暴漲兩條失敗模式、合規邊界對比 2026-05-27
Cosmos DB RU/s 成本模型 + 容量規劃:RU 思維、payload、index、provisioned vs autoscale vs serverless
從 CPU+IOPS 思維轉到 RU 思維的學習曲線、依負載形狀選容量模式、payload + index policy 對 RU 的影響、autoscale reactive 限制 — 從 ASOS Black Friday + Minecraft Earth 1M RU/s 壓測切入 2026-05-26
9.C40 Netflix:380+ CockroachDB cluster 的 multi-active 拓樸艦隊
Netflix 把 Cassandra 不夠用的 transactional workload 移到 CockroachDB、380+ cluster / 60+ 跨 region、含 Open Connect、studio cloud drive、gaming control plane 2026-05-19
PostgreSQL major version upgrade(14 → 17):upgrade audit、升級方法與故障演練
PostgreSQL 同 vendor major version upgrade 涵蓋升級前的 audit(extension 相容性、breaking change、replication slot、config 預設值、statistics 重建)、pg_upgrade / logical replication / blue-green 的選擇與執行步驟,以及升級後常見的故障與處置 2026-05-18
3.C40 Resgate:WebSocket-to-NATS realtime API gateway
Resgate 把 NATS subject 暴露成 REST + WebSocket、subject 階層當 schema、event 延遲 < 1ms、純 Core NATS。 2026-07-03
11.C41 PayPal-Request-Id:同語意、不同契約的冪等實作
跟 Stripe 的三點對照:header 命名、replay 語意(最新狀態 vs 首次結局)、契約精確度 2026-05-26
9.C41 Hard Rock Digital:CockroachDB on AWS Outposts、Wire Act 合規 + 跨州單一邏輯 DB
Hard Rock Digital 用 CockroachDB 跨 AWS Outposts + US-East-1、Wire Act 強制資料留州、單一邏輯 DB 解多州 sportsbook、以 100 node 32 vCPU 處理 Super Bowl 的投注尖峰 2026-05-19
PostgreSQL → Aurora Migration:protocol 相容、operational 重設計
Aurora 號稱 PostgreSQL-compatible 但 operational model 不同(storage decouple / cluster endpoint / instance class / 自家備份);遷移流程是混合(protocol drop-in + operational phased)、5 個 production 踩雷(extension 不支援 / replication slot 不直通 / autovacuum 行為差 / IAM 認證強制 / cost model 換算)、跟 Patroni / read replica / DR 對位 2026-05-18
3.C41 i-flow:NATS 做 OT/IT 跨層整合 bus
i-flow 每日 4 億筆 data operation、200+ OT/IT connector、客戶含 Bosch / Sto / Lenze、NATS 當邊緣到 central 整合 bus。 2026-05-07
Azure AD:2021 身分控制面中斷事件
身分服務失效時,如何評估跨產品影響與收斂優先序。 2026-05-07
Meta:Region Failover 與可靠性邊界
把跨區故障視為邊界治理問題,透過分區隔離與回復順序控制失效擴散。 2026-05-07
Stripe:Idempotency 與零停機遷移的交易安全設計
把 API 重試與資料遷移放在同一套安全模型,維持支付交易的一致結果。 2026-07-03
11.C42 IETF RateLimit headers:政策與狀態拆兩個 header
限流 header 的承諾邊界:informational only、不是 SLA;active draft、引用標版本 2026-06-23
Meta:BGP 事故與控制面恢復順序
當回復工具依賴已故障的系統:2021-10 事故揭露控制面恢復順序與 out-of-band 存取的設計約束。 2026-06-23
Pinterest:Storage Migration 與 Data Infrastructure Reliability
大規模儲存遷移的可靠性設計:用 dual-write、shadow read 與 staged cutover 讓 PB 級資料基礎設施變更可漸進、可驗證、可回退。 2026-06-23
Spotify:Backstage Service Catalog 與 Reliability Metadata
用 service catalog 治理分散團隊的可靠性資訊:ownership、SLO 狀態、依賴圖與 runbook 的單一入口。 2026-06-23
Stripe:Canary Deploy 與 Progressive Rollout 治理
金流場景如何用交易指標驅動放行節奏:延遲確認、duplicate 偵測與自動回退。 2026-05-19
PostgreSQL → Aurora DSQL Migration:PG wire-compatible Distributed SQL 的 Paradigm Shift
Aurora DSQL(2024-12 re:Invent preview / 2025-05 GA)是 AWS 推的 PG wire-compatible *active-active distributed SQL*、跟 self-managed PG / Aurora PG 不同 paradigm(OCC + snapshot isolation + multi-region strong consistency)。Migration 結構是 *protocol drop-in + paradigm shift*:app SQL 不太改、但 transaction retry / extension 缺位 / 多 region 一致性需重設計。本文走 DSQL vs Aurora PG vs self-managed PG 三軸對比、為什麼遷的三條 driver(global write / operational zero-touch / region resiliency)、Type E phased plan、5 production 踩雷(transaction retry 沒處理 / extension 缺位 / sequence throughput 限制 / Aurora PG 直升 DSQL 不可行 / region failover semantic)、跟 PG → Aurora 跟 PG → CockroachDB 對比 2026-05-18
3.C42 Bitso:Reliable Redis Streams 抽象 + 自建 DLQ
Bitso 加密交易所、千 msg/sec/stream + 亞毫秒延遲、自建 Reliable Streams 封裝 PEL + retry + DLQ、idempotent processing。 2026-04-23
TLS / mTLS
說明傳輸加密與雙向數位憑證驗證如何保護跨邊界資料流 2026-07-03
11.C43 GitHub 雙層限流:primary / secondary 與 x-ratelimit 契約
單一維度配額擋不住真實濫用、前標準時代 x- header 與 IETF 命名並存的遷移期現實 2026-05-19
PostgreSQL → CockroachDB Migration:分散式 transaction、SQL 相容缺口與 operational 重設計
PostgreSQL → CockroachDB 要同時處理 paradigm(分散式 Serializable transaction 與 retry)、SQL feature 相容缺口與 operational 模型的替換;本文涵蓋 transaction model 重設計、SQL dialect gap、operational 對位、分階段並保留混合架構的遷移流程,以及 production 踩雷 2026-05-18
3.C43 Arcjet:Redis Streams 取代 Kafka 省 6 位數 $
Arcjet security 平台、Kafka managed 6 位數 $/yr、用 Redis Streams 約 $1k/yr、自寫 Janitor 監控 retention。 2026-07-03
11.C44 Google AIP-151:長時操作實體化成 Operation resource
202 + 輪詢模式的系統化版本:回應型別先宣告、client 統一寫一套 polling、operation 生命週期明訂 2026-05-19
PostgreSQL Partition Redesign:當 monthly partition 越跑越慢
PostgreSQL partition redesign 屬於 Type F「topology re-layout」:從 monthly partition 改 daily / 從 range 改 list / 從單軸改 sub-partition,diff dimension audit 裡只有 data topology 是 High;涵蓋 partition 不平衡偵測、建新 partition tree 搬資料再 rename swap 的線上重劃、backfill 卡 vacuum / dual-write latency / pruning 失效 / unique 範圍 / DROP 舊 partition 這些 production 踩雷、跟 partition_pruning + autovacuum 整合 2026-05-18
3.C44 Harness:CD 微服務 async state transfer
Harness CD 平台用 Redis Streams 解 brittle HTTP、揭露監控缺口 / MAXLEN truncation / head-of-line blocking 三類問題。 2026-07-03
11.C45 Twilio 2013 計費事故:無冪等防線的重複扣款(反例)
反例:內部 retry 迴圈缺冪等閘門等效於無限重放、fail-safe 是金流 side effect 的斷路器 2026-05-19
PostgreSQL Multi-Region GDPR Rollout:政策驅動的 migration 屬本 methodology 嗎
PostgreSQL 單 region → multi-region 同時滿足 GDPR EU residency 是 *政策驅動* 兼 *topology 變動* 兼 *operational redesign* 的多軸 migration;並檢驗 residency 該算 driver 還是 diff dimension audit 的獨立維度;涵蓋 logical replication 的 GDPR filter、replication filter 漏表、backup 跨 region、monitoring SaaS 收 PII、FDW 跨境查詢、DR 與 residency 的衝突、cross-region cost 2026-05-18
3.C45 Klaxit:Rust + Redis Streams 處理 Heroku Logplex
Klaxit carpool 用 Redis Streams 處理 Heroku Logplex 匯流、自動偵測修復平台 perf 問題、6 個月 production Rust。 2026-07-03
11.C46 Google AIP:規範即提案系統的治理模式
編號提案制、狀態機、簽核門檻把 IETF RFC 流程內化到單一組織;中心化治理、社群貢獻是輸入 2026-05-22
PostgreSQL to YugabyteDB / TiDB Migration
PostgreSQL 轉向 YugabyteDB、TiDB 類 distributed SQL 的 compatibility audit、data topology、transaction、cutover 與 rollback 2026-05-18
3.C46 Learning.com:Redis 事件源退場(反例)
Learning.com 把 microservice event store 放 Redis、1 年累積 GB/週、AOF+EBS 變 latency 痛點、退到 PostgreSQL。 2026-07-03
11.C47 Zalando API-first:Guidelines、Guild、Zally、Portal 四件套
規範存活靠配套組織機制:文件、人的治理、自動化、可發現性缺一環就退化成書架文件 2026-05-22
Aurora PostgreSQL I/O-Optimized Cost
Aurora PostgreSQL Standard 與 I/O-Optimized 的成本模型、I/O 壓力、workload 判斷、遷移與回退條件 2026-05-18
3.C47 PHP 微服務:Redis Streams + S3 hybrid storage
PHP 雙微服務通訊、Kafka 在 PHP 生態工具薄弱、用 Redis Streams + payload compression + S3 hybrid 處理大訊息。 2026-07-03
11.C48 Microsoft REST Guidelines:單一 repo 內的分軌治理
規範沿組織邊界分化的實況:Core / Azure / Graph 三軌並存、跟「像同一團隊設計」理想的張力 2026-05-22
Managed PostgreSQL Comparison
RDS PostgreSQL、Aurora PostgreSQL、Cloud SQL、Azure Database for PostgreSQL、Neon、Supabase、Crunchy Bridge 的責任邊界比較 2026-05-18
3.C48 Airbnb Dynein:SQS 分散式延遲任務排程
Airbnb 用 SQS at-least-once + DLQ 取代 Resque 單 Redis 限制、每 scheduler 1000 QPS、SQS wrap DynamoDB 處理 > 15 分鐘 delay。 2026-07-03
11.C49 Spectral 與 Zally:guidelines 變成可執行檢查
治理成本從人工 review 前移到 CI;通用 linter 加組織 ruleset 比單一組織專用 linter 更能存活 2026-05-18
3.C49 Airbnb Inspekt:Visibility timeout 當 retry budget
Airbnb Inspekt 隱私掃描器、scanner pull message、visibility timeout 自然觸發重現、用重現次數當 retry budget。 2026-07-03
11.C50 JSON:API:以停止 bikeshedding 為賣點的格式標準
價值主張放在組織成本而非技術能力:採現成標準 vs 自建規範加治理是規範治理的核心選擇 2026-05-27
Aurora Read Replica Scaling:15 replica 上限、lag profile、headroom 預留與 fleet 治理
Aurora 15 replica 上限、共享 storage 為什麼能養大量 replica、事件型容量分級表、DraftKings headroom 預留判讀、FanDuel 雙 SLO 並行、fleet 治理 3 條 driver(business sharding / microservice / 合規) 2026-05-27
CockroachDB Transaction Retry Pattern:serializable default 與 application contract 重塑
CockroachDB default SERIALIZABLE、application 必須包 retry loop 處理 40001 serialization_failure。本文走 PG → CockroachDB application contract 重塑、SAVEPOINT cockroach_restart 語法,以及 retry storm、retry loop 裡的副作用重複執行、cross-statement state、hot row、改 READ COMMITTED 後的業務語意、long-running transaction、distributed deadlock 等失敗模式;retry pattern 取自 Cockroach Labs 官方文件,不是案例揭露 2026-05-27
Cosmos DB Multi-Region Write:active-active、LWW、custom merge、Strong + multi-region 互斥的 AP 取捨
Multi-region active-active write 的 conflict resolution(LWW / custom merge / conflict feed)、Strong 跟 multi-region write 為什麼互斥、廣告 SLA vs 實測可用性鏈路拆解 — 從 Minecraft Earth + Toyota Connected 切入 2026-05-18
3.C50 Capital One:Visibility timeout 設計與 Lambda event source
Capital One tech blog 講 SQS + Lambda:visibility timeout 應略高於最大處理時間、Lambda 初 5 個 long polling、可擴 60/min。 2026-07-04
Correlated Failure
以為獨立的多個元件共享一個隱藏的失效觸發器、在同一時刻一起壞;冗餘副本、觀測系統、跨區部署都可能共命運 2026-07-04
Hyrum's Law
使用者夠多時、介面的一切可觀察行為都會被依賴 — 不管你承諾了什麼;契約設計要主動給機器可讀欄位、否則人類可讀欄位會被迫變成契約 2026-07-03
11.C51 OData:ISO 認證救不了生態萎縮(反例)
反例:正式標準化程度最高、主流化程度不成比例;marquee adopter 離場比標準機構背書更能預測標準命運 2026-05-18
3.C51 Atlassian JiRT:Kinesis + SQS subscription
Atlassian StreamHub Kinesis 底層、每 consumer 自己一個 SQS queue、JiRT 把輪詢 1 min 改成秒級 event-driven。 2026-05-07
Heroku:Routing 控制事件與多租戶影響
PaaS 路由層異常時,如何限制租戶擴散並維持可用通訊。 2026-05-07
Microsoft:變更治理與可靠性門檻
透過分層變更管理與發布閘門,降低大型 SaaS 平台的系統性回歸風險。 2026-05-07
Shopify:BFCM 容量治理與 Game Day 驗證節奏
把季節性流量峰值轉成年度可靠性流程,透過容量模型、演練與隔離策略提前吸收風險。 2026-07-03
11.C52 OpenAPI Initiative:從 Swagger 捐贈到開放治理
單一 vendor spec 轉軌中立基金會的成功樣本:治理轉移是把既有動能中立化、不是用背書創造動能 2026-06-23
Microsoft:Safe Deployment Practices 與 Resilience Patterns
大型 SaaS 用 ring-based deployment 控制變更擴散,用標準化 resilience patterns 讓依賴失效時的降級行為可預測。 2026-06-23
Shopify:Pod Architecture 與 Resiliency Matrix
多租戶隔離與系統化失敗模式盤點:pod 邊界控制擴散、resiliency matrix 驅動演練。 2026-05-18
3.C52 Nielsen:Spark on EKS 雙 SQS 工作流
Nielsen 每日 25TB / 30B event、work queue + completion queue 雙 SQS、queue depth autoscale EKS pod。 2026-07-03
11.C53 AsyncAPI:刻意相容 OpenAPI 的補位策略
站在既有標準肩上補 event-driven 缺口:以相容性換採用曲線、描述格式的邊界即治理邊界 2026-05-18
3.C53 FINRA:S3 → SQS notification 大檔上傳
FINRA 金融監管、broker 上傳大檔、S3 → SQS notification → LFS、KMS + bucket policy + queue policy 三層稽核。 2026-07-03
11.C54 White House API Standards:規範制定後棄置(反例)
反例:文件品質不差、但沒有 Guild / linter / review 等執行機制與持續 ownership、34 commits 後封存 2026-05-18
3.C54 Twitch EventSub:SNS+SQS fan-out 給第三方
Twitch Event Bus ~1660 events/sec 進 SNS、EventSub 用 SQS 接收 + Dispatcher fan-out 給訂閱者。 2026-07-04
11.C55 WHATWG SSE spec:內建自動重連與 Last-Event-ID 補送
SSE 把重連與斷點續傳的協商鉤子寫進協議:自動重連、Last-Event-ID 補送、retry 欄位;補送實際保證仍看 server replay 2026-05-18
3.C55 SmugMug:SQS 驅動可重放搜尋管線
SmugMug 用 SQS 兩種模式:DynamoDB scan-segment 平行 backfill + production query 鏡像 replay 到 replica。 2026-07-04
11.C56 RFC 6455:WebSocket 是雙向 transport、不內建投遞保證
WebSocket 給雙向管線、不給保證:協議層對投遞保證、ack、重連、斷點續傳全部沉默、留給應用層 2026-05-18
3.C56 PostNL EBE:完整 DLQ + retention + redrive 設計
PostNL 物流每天 1000 萬訊息、每 producer/consumer 隔離 stack、24h 內 100 次 retry、final DLQ 可 consumer redrive。 2026-07-04
11.C57 Slack Socket Mode:WebSocket 上自建 ack、retry 與多連線熱備
協議不給保證、vendor 在應用層自建整套可靠性:envelope ack、未 ack 就 retry、多連線熱備、斷線預警 2026-05-18
3.C57 Lob:自家 fork @lob/sqs-consumer 修 FIFO bug
Lob 原用 bbc/sqs-consumer 鎖 SDK v2、fork 出 @lob/sqs-consumer 支援 SDK v3 + TypeScript + 修 FIFO bug。 2026-07-04
11.C58 RFC 6202:long-polling 的機制代價與 fallback 定位
long-polling hold 住請求到有事件才回:header 開銷、三段網路延遲、每 client 佔一條連線是機制決定的、不是實作品質 2026-05-18
3.C58 Twilio:SQS 緩衝高流量 webhook
Twilio 教用 SQS 緩衝 SMS / status callback webhook、分 queue(SMS vs callback)、long polling 減 cost、FIFO 300 TPS 上限要分片。 2026-07-04
11.C59 Socket.IO:先 long-polling 再 upgrade WebSocket 的 transport negotiation
WebSocket 不保證能建立(proxy/防火牆會擋)、所以先用 long-polling 建連再 upgrade:fallback 的價值是相容性下限、不是效能 2026-05-18
3.C59 Rapid7:SQS 100 億 message/day 規模
Rapid7 公開引述:SQS 撐 10s of billions of messages per day、是架構關鍵元件、scale 量級的具體參考。 2026-07-04
11.C60 Stripe webhooks:at-least-once 加簽章、明文要求 consumer 冪等與不依賴順序
webhook 對外承諾的教科書樣本:三天重試、重複投遞、no-ordering、簽章驗證的責任在同一頁明文轉移給 consumer 2026-05-27
Aurora Global Database:跨 region async replication、< 1 秒 lag 與合規 anti-recommendation
Aurora Global Database 跨 region storage-level async replication、< 1 秒 typical lag、planned vs unplanned failover RTO 數量級對比、Standard Chartered 合規禁止跨境複製為什麼讓 Global Database 變反指標 2026-05-27
CockroachDB Locality-Aware Schema:跨州合規 + 邏輯一個 cluster 的 region placement 策略
Hard Rock Digital 跨 8 州 sportsbook、用 AWS Outposts + region placement 把運算釘在州內、邏輯上仍是一個 CockroachDB cluster。本文走 REGIONAL BY ROW / REGIONAL BY TABLE / GLOBAL 三種 locality、Hard Rock 拓樸創新對比 Standard Chartered Aurora 7 cluster fleet、AWS Outposts 是合規工具不是 latency 工具的反直覺判讀 2026-05-27
Cosmos DB Partition Key Design:synthetic / composite / hierarchical + 不可逆性硬約束
Cosmos DB logical partition 10000 RU/s 上限、partition key 不可改、三種設計模式(synthetic / composite / hierarchical)、跟 DynamoDB / MongoDB 可逆性對比、latency budget 拆解 — 從 Minecraft Earth + ASOS 切入 2026-05-18
3.C60 Spotify:Event Delivery 從 Kafka 遷到 Pub/Sub
Spotify 全球 event delivery 從 Kafka 遷到 Pub/Sub、~2500 VM、Q1 2019 8M events/s、350TB/day raw、自建 dedup。 2026-07-04
11.C61 GitHub webhooks:不自動重試的反向承諾
at-least-once 不是所有 vendor 都給:GitHub 明文只試一次、失敗靠 consumer 自建排程補投;逼你讀 vendor 明文而非假設 2026-05-18
3.C61 Spotify:Autoscaling Pub/Sub consumer 反效果
Spotify 下游失敗時 consumer 不 ack 仍耗 CPU、autoscaling 越拉越高、解法是 exponential backoff 抑制 CPU。 2026-05-07
Pinterest:快取可靠性與容量驚奇治理
針對快取層失效與流量突增,建立容量緩衝、退化路徑與重建節奏。 2026-05-07
Reddit:2023 Kubernetes 升級事故
平台升級變更如何觸發服務退化,以及如何設計可回退的升級策略。 2026-07-04
11.C62 Slack Events API:3 秒 ack 上限加固定三次重試
「慢等於失敗」寫死成 3 秒硬上限、逼 consumer 走立即 2xx 加背景處理;retry header 讓 consumer 辨識重投 2026-05-18
3.C62 Spotify:Pub/Sub → GCS reliable export
Spotify 用 Oldest Unacknowledged Message metric 判斷 hourly bucket 何時可安全關閉、ack 綁定下游 commit。 2026-07-04
11.C63 Shopify webhooks:ordering 不保證、指定 header 去重、投遞不保證
跨 vendor 佐證 ordering-not-guaranteed 加冪等 header 是通則;甚至連投遞本身都不保證、需 reconciliation 兜底 2026-05-18
3.C63 Mercari Actionable History:ack deadline 是 batch-level
Merpay 支付流水帳用 Pub/Sub、ack deadline 是整批 batch 而非單訊息、acked 訊息會跟同批 expired 一起 redeliver。 2026-07-04
11.C64 RFC 4918 207 Multi-Status:status line 降格為「請讀 body」
一個 status code 裝不下批次結果:WebDAV 把每資源狀態下放到 body、解析責任隨之轉給 consumer 2026-05-18
3.C64 Mercari Item Feed:DLT 防 poison message 阻塞
Mercari 商品 feed 同步、ack 整批 / nack 重送、重試多次仍失敗送 DLT、topic 同時當 load-leveling buffer。 2026-07-04
11.C65 Google AIP 部分成功立場:同步必原子、非同步才准部分成功且要顯式 opt-in
AIP-193 明文「不該支援 partial errors」、批次三部曲給出原子性階梯與 LRO 出口:部分成功要 client 顯式同意 2026-05-18
3.C65 Mercari LINE:Pull subscription 對齊外部 RPS
Mercari LINE webhook 轉 Pub/Sub、worker pull subscription 精確控制 RPS、應 LINE API 限制。 2026-07-04
11.C66 RFC 9110 202 Accepted:接受不等於承諾、HTTP 沒有回傳非同步結果的機制
202 是規範明文的 intentionally noncommittal:一旦回了 202、協定層不再有管道通知最終失敗、通知責任移轉到應用層 2026-05-18
3.C66 Mercari B2C:自建 PubSub gRPC Pusher
Mercari 全球商品同步、原生 HTTP push 在「長 job + 高吞吐 + 動態 RPS」場景受限、自建 gRPC 版 push。 2026-07-04
11.C67 RFC 9110 502/504:gateway 只回報自己的觀察、不回報上游的執行狀態
502/504 定義只說 gateway 沒收到有效或及時回應、沒有欄位區分「請求沒送到」與「執行了但回應丟了」— retry 安全性相反的兩種情況拿到同一個 code 2026-05-18
3.C67 Niantic Pokémon GO:Pub/Sub 當 telemetry ingest
Pokémon GO frontend publish 玩家事件、~1M TPS、Pub/Sub elastic buffer、下游 BigQuery streaming。 2026-07-04
11.C68 Exponential Backoff And Jitter:無 jitter 的退避是明確輸家
N 個 client 同時競爭時總工作量隨 N² 成長;三種 jitter 公式實測、Full Jitter 總工作量最少 — consumer 之間的隱性同步要主動打散 2026-05-18
3.C68 Wix:Pub/Sub decouple + Dataflow + BQ archive
Wix App Engine 收 clickstream 進 Pub/Sub、Dataflow 進 Datastore < 100ms、BigQuery 並行存 raw recovery。 2026-07-04
11.C69 Google SRE Book:retry 放大與跨層疊乘、per-request 上限與 retry budget
retry 放大讓有效工作遞減;三層各 retry 3 次在底層變 64 次;建議 per-request 上限 + server-wide retry budget、provider 要用不同 code 分開可重試與不可重試 2026-05-18
3.C69 Twitter Ad Engagement:把 stream 切成多 topic 做 partition
Twitter 把 80K msg/s stream 切成 6 個 topic 做 partition、Avro schema、Beam/Dataflow → Bigtable/BQ。 2026-07-04
11.C70 AWS DynamoDB 2015 事故:內部元件的 retry 自保把錯誤率推到 55%(反例)
反例:metadata 服務過載後 storage server 逾時自我下線再重試、風暴成形後系統不自癒、要人工暫停請求才能喘息;事後修正同時動兩端 2026-06-02
CockroachDB Multi-region Table 配置:三種 table locality 的選擇與 latency / 一致性取捨
CockroachDB 把 multi-region table 抽象成 REGIONAL BY TABLE / REGIONAL BY ROW / GLOBAL 三種 locality、每種對 read / write latency 跟一致性付不同成本。本文走三種 locality 的判讀軸、survival goal 怎麼跟 locality 一起決定副本拓樸(機制本身 cross-link survival-goals)、配置與驗證流程、選錯要重配的高代價回退、容量觀測訊號 2026-05-27
Cosmos DB 5 Consistency Levels:Session 預設、Bounded staleness、Strong 邊界跟跨 collection 分流策略
Cosmos DB 5 個 consistency level 的工程選擇邏輯、Session 為何是 production 預設、per-request override 跟跨 collection 分流的進階策略、Strong + multi-region 互斥的 cross-link — 從 Minecraft Earth + ASOS 切入 2026-05-27
從自管 PostgreSQL / MySQL 遷到 Aurora:operational redesign migration playbook
PostgreSQL / MySQL → Aurora 的 Type C operational redesign hybrid playbook、6 規格面(Driver / Diff audit / Phase plan / Evidence / Cutover / Cleanup)、Standard Chartered 合規 lead time 模型、Netflix 非 all-purpose store 邊界 2026-09-24
資安與資料保護模組從章節走到實作的路徑:控制機制的知識卡與下游模組的交接路由
資安模組各章交付的問題節點、判讀訊號與控制面連結,沿機制說明與交接路由走到實作的方式,以及控制面交付完整的完成條件 2026-07-04
11.C71 Slack 2021-01-04 事故:復原期 retry 加 circuit breaking 是藥方
retry 的反向平衡:網路恢復後正是 retry 與 circuit breaking 讓系統爬回服務狀態 — retry 是否有害取決於 provider 處於過載中還是恢復中 2026-06-02
Cosmos DB Change Feed (CDC):persistent change log、Azure Functions trigger、latest-version vs all-versions-and-deletes 與跟 DynamoDB Streams 對照
Cosmos DB Change Feed 的工程展開:partition-scoped 持久變更 log、change feed processor 的 lease / continuation token、latest-version 與 all-versions-and-deletes 兩種模式的取捨、Azure Functions trigger 整合、跟 DynamoDB Streams 的語義差 — 從 ASOS catalog 寫入投影切入 2026-05-07
Microsoft 365:套件級身分驗證事故
企業套件在身份依賴失效時,如何同步處理跨產品影響與對外揭露。 2026-05-07
Spotify:平台工程與可靠性契約
用平台契約統一服務團隊的可靠性最低標準,降低跨團隊變更造成的隱性風險。 2026-07-04
11.C72 AWS retry 指南:retry storm 的官方定義與分層限制
Well-Architected 逐字定義 retry storm、建議低層服務 retry 上限 0-1 次、把 retry 委派給上層;Builders' Library 的 token bucket 路線 2026-06-02
Cosmos DB Stored Procedure / Trigger(JavaScript):partition-scoped 交易、server-side 邏輯邊界、何時用何時讓 application 層處理
Cosmos DB 用 JavaScript 寫的 stored procedure、pre/post trigger 與 UDF 的工程展開:single-partition transaction 語義、bounded execution 與 continuation 模式、何時值得用 server-side 邏輯、為何多數邏輯應留在 application 層 — 跟 Change Feed 的非同步路徑對照 2026-04-24
7.2 身分與授權邊界
以問題驅動方式整理身分、授權、會話與供應商身分鏈 2026-07-04
11.C73 gRPC 兩層錯誤模型:status code 是保證層、richer detail 是選配層
標準模型全語言保證、richer error model 走 trailing metadata — proxy 與 logger 看不到、中間節點對錯誤細節是盲的 2026-06-22
Consumer Group
說明一組 consumer 如何共同分攤 stream 或 topic 的處理責任 2026-06-02
從 MongoDB / Cassandra 遷入 Cosmos DB:protocol-compat API drop-in vs native API paradigm shift、相容性邊界與 dual-write cutover
MongoDB / Cassandra 遷入 Azure Cosmos DB 的 migration playbook:用 Cosmos 的 MongoDB API / Cassandra API 做 wire-protocol drop-in(Type B)vs 換 native SQL API 的 paradigm shift(Type E)兩條路徑的取捨、6 維 diff audit、相容性邊界、dual-write 與 cutover — 從 Microsoft 365 / Forbes 遷移對照切入 2026-04-24
7.3 入口治理與伺服器防護
以問題驅動方式整理對外入口、管理平面與伺服器邊界 2026-07-04
11.C74 gRPC status code 產生者歧義:收到的 code 不一定來自 server 應用層
17 個 code 裡只有 7 個保證來自 user code;UNAVAILABLE / INTERNAL 可能是 library 或 channel 自產 — consumer 對錯誤來源的信任判讀有一手依據 2026-06-22
Partition
說明事件流如何切分成多個可並行處理的有序片段 2026-06-02
Cosmos DB for PostgreSQL:基於 Citus 的分散式 PostgreSQL、跟核心 Cosmos DB 是不同產品、何時選它而非核心 Cosmos 或一般 PG
Cosmos DB for PostgreSQL(2022、Citus-based distributed PG)的定位釐清:它是分散式 PostgreSQL、不是 NoSQL Cosmos DB;distribution column / coordinator-worker 架構、何時選它而非核心 Cosmos DB、何時夠用一般 Azure Database for PostgreSQL — 命名混淆的選型陷阱 2026-04-24
7.4 資料保護與遮罩治理
以問題驅動方式整理資料分級、遮罩、匯出與備份治理 2026-07-04
11.C75 AIP-193 錯誤內容規範:三層受眾與「不假設使用者懂內部實作」
機器可讀的 (reason, domain) 契約、developer-facing message、LocalizedMessage 三層分工;message 穩定性規則反向揭露 Hyrum's Law 2026-06-22
Offset
說明 consumer 在事件流中的讀取位置與重放基準 2026-06-02
Cosmos DB ↔ Azure Synapse Link:analytical store、HTAP federation、何時把分析 workload 從 OLTP 分出去
Cosmos DB Azure Synapse Link 的工程展開:column-oriented analytical store 自動同步、HTAP federation 讓分析 query 不打 OLTP transactional store、no-ETL 對 RU 的隔離、何時把分析 workload 從 Cosmos OLTP 分出去 vs 何時 federate 到專用 OLAP — 從 Microsoft 365 analytics 切入 2026-04-24
7.5 傳輸信任與憑證生命週期
以問題驅動方式整理傳輸信任鏈、會話完整性與數位憑證節奏 2026-07-04
11.C76 W3C Trace Context:traceparent 的傳播義務與 security boundary 重開機制
跨 vendor trace 關聯的標準鉤子:每一跳 MUST 傳播、security boundary 可 restart trace、無效 id MUST ignore — 信任邊界寫進規範 2026-06-22
Retention
說明資料或事件保留多久,以及保留期限如何影響重放與成本 2026-04-24
7.6 秘密管理與機器憑證治理
以問題驅動方式整理 secret、token、key 與機器身份治理 2026-07-04
11.C77 OWASP error handling:錯誤訊息是攻擊者的偵察面
非預期錯誤回 generic response、細節只留 server side log — provider 少暴露的安全端論證、跟 AIP-193 的機器可讀路線形成張力 2026-04-24
7.7 稽核追蹤與責任邊界
以問題驅動方式整理高風險操作追蹤、可回查與責任切分 2026-04-24
7.8 模組路由:問題到服務實作
一份資安交接單要填哪些欄位,以及一個問題該交給部署、可靠性還是事故處理 2026-04-24
7.9 服務生命週期的資安風險節奏
定義設計、上線、變更、事故、復盤五段中的資安問題節點 2026-06-02
CockroachDB Cloud Serverless 適用判斷:按用量 vs dedicated 的取捨與 RU 計費結構
CockroachDB Cloud 的 serverless(按用量 RU 計費、自動 scale-to-zero)跟 dedicated(固定 cluster、自管容量)解不同的容量壓力。本文走 serverless 的 RU 計費結構與冷啟動 / scale 行為、何時 serverless 何時 dedicated 的判讀軸、用量暴衝的成本失控回退、跟 self-managed(Netflix Platform Team / Hard Rock 賽季擴縮)的責任對照 2026-04-24
7.10 Workload Identity 與聯邦信任邊界
定義非人類身份、跨平台信任與短效存取憑證治理問題 2026-04-24
7.11 資料駐留、刪除與證據鏈
定義跨區資料駐留、刪除請求與可驗證證據鏈問題 2026-04-24
7.12 供應鏈完整性與 Artifact 信任
定義 build provenance、artifact 信任與交付鏈風險問題 2026-04-24
7.13 偵測覆蓋率與訊號治理
定義偵測覆蓋、訊號品質與誤報成本的治理問題 2026-04-24
7.14 資安治理例外與 Tripwire
定義例外管理、風險接受與重新評估觸發器 2026-04-24
8.8 事故報告轉 workflow:從案例到日常流程
把事故報告拆成可執行流程,並與 red-team 案例庫建立雙向引用 2026-05-20
資料庫 Vendor 文章撰寫規格
把 PostgreSQL 與 MySQL 兩組文章的正文經驗整理成資料庫 vendor overview、deep article 與 migration playbook 的撰寫規格 2026-05-08
7.27 Credential Rotation with Scoped Evidence 實作示範
以 webhook/API credential 輪替示範 scope map、證據欄位與回退窗口如何一起設計。 2026-05-12
LLM Deployment 供應鏈完整性
把 LLM 模型權重、推論伺服器、第三方 plugin 三條 production 供應鏈納入既有 artifact trust 框架的判讀 2026-06-22
Histogram
說明 histogram 如何用分桶統計延遲、大小與分布 2026-05-12
LLM 多租戶推論隔離
production LLM 服務的多租戶隔離:KV cache 不共享、log / model artifact 隔離、跨用戶 prompt 洩漏面 2026-05-27
CockroachDB vs Aurora DSQL vs Spanner:撞牆訊號分型 + 選型決策樹
Distributed SQL 三選一決策樹。先用撞牆訊號分型識別 driver path(DoorDash 單主寫入撞牆 / Netflix Cassandra 缺口 / Hard Rock 合規驅動)、再走跨雲、雲商生態、風險預算、PG 相容、管理負擔、team size、vendor sizing barrier 各題。含 PostgreSQL 相容性 audit checklist、Spanner 100 pu sizing barrier、Hard Rock 「省 10-20 工程師」機會成本警示、Netflix Database Platform Team 規模 2026-05-12
LLM Agent Prompt Injection 後果治理
production LLM agent 場景的 prompt injection 後果:tool spec 設計、agent loop 限制、review checkpoint、跟 incident workflow 的接合 2026-06-22
Percentile
說明 p95 與 p99 如何描述長尾延遲與使用者體驗 2026-05-12
LLM Log 與 PII 治理
production LLM 服務的 prompt log 累積、PII 偵測與過濾、保留期限與合規對齊 2026-06-22
Error Budget
說明 SLO 允許的失敗額度如何影響發版與可靠性投入 2026-05-12
LLM Service 偵測訊號覆蓋
production LLM 服務的 detection 訊號設計:tool call 異常模式、prompt injection 觸發徵兆、abuse 跟濫用模式、跟既有 detection-coverage 框架的接合 2026-07-27
7.28 密碼學原語選型:金鑰位置決定威脅模型
決定用加密、簽章、編碼還是單向轉換保護一段資料時,用來判斷各原語的保護範圍與失效條件 2026-06-22
Burn Rate
說明 error budget 消耗速度如何支援告警與事故分級 2026-07-27
7.29 API 認證的信任邊界分層
一個請求同時牽涉人、呼叫系統與跨系統身分對應時,用來判斷各層的撤銷粒度差在哪、混層後會失去什麼、以及規模不足時哪幾層可以合併 2026-07-29
7.30 使用者密碼儲存:參數會過期的那一類原語
決定密碼用哪種雜湊與 work factor、或懷疑既有參數已經失效時,用來定參數、判斷合規要求有沒有鎖死選項、排複查節奏與規劃升級路徑 2026-06-22
Correlation ID
說明跨事件或跨服務的關聯識別碼如何支援排障 2026-07-29
7.31 認證方式選型:可離線猜測的材料最後落在哪裡
要做登入功能、在自建帳號與委派身分與 passkey 之間決定時,用來定位每一種做法把可離線猜測的材料移到了哪裡 2026-07-29
7.32 機器憑證的配發:這個交付動作能不能免掉
要把一把機器憑證交到另一個團隊或另一個組織手上時,用來判斷這次交付能不能免掉、免不掉時核發與交付各要滿足什麼 2026-06-22
Trace ID
說明分散式追蹤中同一條呼叫路徑的識別碼 2026-07-29
7.33 委任型憑證:關係寫進憑證,還是留給驗證方拼湊
一個系統要代表特定使用者呼叫下游時,用來判斷這層關係該由發行方寫進存取憑證還是由各驗證方各自認定、以及換過去之後撤銷粒度實際落在哪裡 2026-06-22
Span
說明 trace 中一段工作如何記錄耗時、狀態與關聯 2026-07-29
7.34 機器憑證的機制選型:秘密要不要在每次呼叫裡送出去
系統層確定要有獨立的機器身分之後,用來判斷秘密放進網址參數或 header 會落在哪幾跳的紀錄裡、撤銷一次影響誰、以及選定的機制要什麼配套才跑得起來 2026-06-22
Symptom-Based Alert
說明告警應優先偵測使用者可感知症狀 2026-07-29
7.35 簽章對接的驗證收斂:驗簽通過之後還缺哪一塊
接收外部推送或用共享密鑰簽章對接時,用來判斷進入計算的素材要怎麼定義、時間戳窗口要開多寬才擋得住重放、以及比對方式怎麼抵銷機制強度 2026-07-31
7.36 存取憑證在請求中怎麼帶:附上的決定由誰做
登入之後要決定存取憑證放 cookie 還是每次寫進 header 時,用來判斷兩種帶法各自要求攻擊者先做到什麼 2026-06-22
Alert Fatigue
說明過多低品質告警如何降低 on-call 反應品質 2026-07-31
7.37 密碼外洩之後:範圍判不出來的時候怎麼定處置
帳號憑證外洩而查不出哪些帳號被讀走時,用來分層定重設範圍、排撤銷順序與判斷通知門檻 2026-07-31
7.38 外部身分與本地紀錄:兩條生命週期在哪裡分岔
登入交給外部身分提供者之後,用來處理對方停用不同步、使用者離開後的資料歸屬與多來源帳號對應 2026-07-31
7.39 使用者持有型憑證:那把存取憑證能不能離開它的載體
要導入 passkey、安全金鑰或智慧卡時,用來判斷存取憑證離不離得開它的載體、以及註冊與補發這兩條路徑各自把上限訂在哪 2026-07-31
7.40 B2B 多租戶的身分接入:這個人屬於哪個租戶由誰說了算
每個客戶要帶自己的身分提供者進來時,用來判斷租戶歸屬的主張憑什麼可信、以及每租戶一組設定之後多出哪些責任 2026-07-31
7.41 單一帳號被接管:求助的人是誰本身待證
有人說自己的帳號被盜、或系統偵測到單一帳號異常時,用來排處置順序、定核身要求,以及找出攻擊者留下的持久存取 2026-07-31
7.42 密碼重設流程:與登入平行的另一道入口
要設計或檢視忘記密碼的路徑時,用來判斷它要求的證據攻擊者拿不拿得到、以及重設完成之後還缺哪幾個動作 2026-10-14
7.43 兩個網路之間的連線安全:可達範圍、連線方向與流入的資料、被入侵端改不到的限制、應用層認證、監控主機的位置、金鑰與控制平面、異地備份的寫入憑證與連線紀錄
地端主機與雲端主機、或兩個雲端業者的主機以 VPN 或存取金鑰接起來之後的安全設計與評估:連線清單上各台連得到什麼、每一台各假設一次被入侵、限制要放在被入侵端沒有寫入路徑的地方、連線的發起方向與流入的資料、VPN 之內的應用層認證、監控主機與管理者裝置的位置、WireGuard 與 Tailscale 的金鑰與控制平面、異地備份的寫入憑證,以及連線本身的紀錄 2026-10-22
7.44 多租戶平台的隔離層級:資料存放、建置管線、營運後台、資料庫管理與備份的權限範圍,跨租戶資料整合,以及事故報告要交代的隔離資訊
一個平台把多個客戶放上同一套系統之後,資料存放可以分到多細、建置管線與營運後台這類共用元件的權限怎麼限縮,每一種做法的成本與一個元件被入侵時碰得到的租戶數,跨租戶的資料整合有哪些形態,以及出事之後報告要交代哪幾道隔離有沒有擋住 2026-11-03
7.45 加密備份的密碼、key 檔與主金鑰:換密碼與換主金鑰的差別、密碼外洩與遺失的處置,以 restic 為例
加密備份工具把資料交給一把隨機產生的主金鑰加密、密碼只用來解開包著主金鑰的 key 檔:這個分層換到的多份 key 檔與不重新加密的換密碼、換密碼之後舊副本與外流的 key 檔還解得開什麼、什麼條件下要建新 repository 換掉主金鑰,以及密碼遺失時沒有任何找回的路 2026-07-06
Container-per-Service(一容器一職責)
第一次發現一個 web app 要開好幾個 container、不懂為什麼不塞一個大 container、或不確定什麼該獨立成一個 container 時回來讀 — 一容器一職責的理由與邊界 2026-07-06
QEMU binfmt Emulation(跨架構模擬)
docker 跑非原生架構的 image 報 exec format error、mysql:5.7 在 Apple Silicon 要 platform: linux/amd64、或跨平台 build 特別慢時回來讀 — 非原生 image 怎麼被模擬跑起來 2026-06-22
Queue
說明 queue 如何保存等待處理的工作並形成容量邊界 2026-07-06
Immutable Image(不可變映像)
想「修改 / 升級一個已經 build 好的 image」、或搞不懂為什麼同一個 tag 隔天內容變了時回來讀 — image 是不可變的 build 產物、改了就是新 image 2026-06-22
Consumer
說明 consumer 如何取得等待處理的工作並產生業務結果 2026-06-22
Topic
說明 topic 如何把事件依主題分流給不同訂閱者 2026-06-22
Trace
說明 trace 如何重建跨服務請求的路徑、耗時與依賴關係 2026-06-22
Dashboard
說明 dashboard 如何把關鍵訊號組成可判讀的服務狀態畫面 2026-06-22
Fan-out
說明單一事件同時分發給多個下游的訊息拓撲 2026-05-11
Validation Query
說明遷移、回填與修復期間如何用查詢證明資料語意是否一致 2026-06-22
Alert
說明 alert 如何把需要處理的服務症狀轉成可行動通知 2026-05-11
Read Compatibility
說明資料或服務演進期間讀取路徑如何同時支援新舊語意 2026-06-22
Runbook
說明 runbook 如何把事故判斷與操作步驟標準化 2026-05-11
Fallback Read
說明讀取路徑切換失敗時如何暫時回到舊資料語意或舊讀取來源 2026-05-11
Cutover Window
說明正式切換發生的觀察窗口、停止條件與回退判讀範圍 2026-06-22
Event Log
說明事件歷史如何保存、重播與支援跨服務資料重建 2026-05-11
Mapping Table
說明遷移或轉換期間如何把舊語意明確對應到新語意 2026-06-22
Search Index
說明搜尋索引如何承擔全文檢索、排序與查詢體驗 2026-06-22
Read Model
說明為查詢場景建立的讀取模型,與正式狀態的責任分離 2026-06-22
Incident Timeline
說明事故時間線如何支援判斷、溝通與復盤 2026-05-11
Rollback Window
說明變更進入 production 後還能用哪種方式回退或改路線的時間與條件 2026-05-11
Fail-forward
說明無法回到舊狀態時如何用受控前進完成修復 2026-05-11
Stop Condition
說明變更、實驗或事故處理何時必須暫停、回退或改路線 2026-05-11
Gate Decision
說明 release gate 如何把證據轉成放行、暫停、回退或補證據的決策 2026-06-22
Projection
說明從事件流或資料變更推算出查詢用讀取視圖的轉換機制 2026-05-11
Rollback Condition
說明決策執行後出現哪些訊號時要撤回、回退或改路線 2026-06-22
On-Call
說明值班制度如何承接告警、事故分級與升級流程 2026-06-22
Ownership
說明 ownership 如何把問題、決策與交接責任固定到可執行角色 2026-06-22
Continuous Profiling
在 production 持續取得低 overhead profile 的觀察方法 2026-06-22
Action Item Closure
說明事故行動項如何被驗證完成,而不是只停留在待辦清單 2026-05-11
Time Range
說明證據、查詢與事故判讀如何用時間窗保留可回放上下文 2026-05-11
Query Link
說明證據包如何保存可重跑查詢入口,而不是只保留截圖或口頭結論 2026-05-11
Data Quality
說明證據欄位如何標示 completeness、freshness、sampling 與資料限制 2026-05-11
Confidence
要在證據包、事故候選紀錄或決策紀錄上標示證據可信到什麼程度,或遇到 needs follow-up 與 external-only 兩種值不知道怎麼對應時,查各等級的意思與兩套值域的關係 2026-05-11
Known Gap
說明證據包如何明確保存已知缺口,避免下游高估證據完整性 2026-06-22
Recording Rule
說明把 query-time 聚合計算推到寫入時的 pre-aggregation 機制 2026-06-22
Rollup / Downsampling
說明時間序列資料隨時間降低精度以控制儲存成本與查詢效能的機制 2026-06-22
Storage Tiering
說明按資料熱度分層儲存以平衡查詢速度、儲存成本與保留完整性的機制 2026-06-22
Materialized View
說明預先計算並儲存查詢結果以加速讀取的資料結構 2026-06-22
CQRS
說明讀寫不對稱時為何需要分離查詢與寫入責任、分離的判斷標準與代價 2026-06-22
Event Sourcing
說明用 append-only 事件流取代 mutable state 作為正式紀錄的設計模式、需求判斷標準與代價 2026-06-18
Outbound Tunnel
反向隧道把出站連線轉成可達入口、與傳統 port-forward 的責任倒轉 2026-07-20
Data Repair
對帳抓到差異之後、要把錯誤資料改回正式狀態時——dry-run、稽核與可逆設計決定這次修復是收斂還是擴大污染 2026-07-20
Freshness Window
每類資料能容忍多久的不新鮮?依欄位風險分級定義過時窗口、取代單一全域 TTL 2026-07-20
Origin Protection
快取失效或冷啟動時、miss 流量集中打回正式來源會不會壓垮它——回源保護的手段組合與監控面 2026-07-20
Cache Key Versioning
說明快取 key 結構本身版本化如何讓新舊值格式共存,用漸進收斂取代一次性替換 2026-07-20
Cache Serialization Migration
說明快取 value 編碼格式演進時如何用雙軌解碼避免舊資料變成無法讀取的錯誤 2026-07-31
Same-Origin Policy
前端送得出請求卻拿不到回應、或要判斷跨站防護的前提還在不在時,用來定位瀏覽器隔離的是讀取而非送出 2026-07-31
Cross-Site Request Forgery
存取憑證靠瀏覽器自動附上時,用來判斷攻擊者不必讀到憑證就能做到什麼、以及各層防護的缺口分別落在哪 2026-07-31
Cross-Site Scripting
要判斷存取憑證放在 JavaScript 讀得到的位置有多大代價、或哪些防護以「攻擊者讀不到」為前提時,用來定位這個攻擊面取得的是整個來源的能力 2026-07-31
Passkey
要用金鑰對取代密碼、或判斷已導入的 passkey 實際擋掉了什麼時,用來定位它的保護落在哪一段、上限由哪條路徑決定 2026-07-31
Registrable Domain
判斷兩個主機名算不算同一方、或某個跨站防護的信任邊界實際涵蓋誰時,用來定位「站」的切點在哪一層 2026-07-31
Identity Provider
登入要交給外部系統時,用來定位對方承擔了什麼、沒承擔什麼,以及這邊還剩下哪些責任 2026-07-31
Pepper
威脅模型含「資料庫被拿走而伺服器沒有」時,用來判斷這一層值不值得加、以及它的輪替成本由什麼決定 2026-07-31
Memory-Hard Function
要解釋為什麼某個密碼雜湊比另一個抗硬體、或判斷沒見過的構造落在哪裡時,用來定位它向攻擊者收的是哪一種費 2026-07-31
Content Security Policy
要限制注入成立之後那段程式碼能做什麼、或判斷既有政策實際擋住了誰時,用來定位它承擔哪一層而不承擔哪一層 2026-08-11
Go/No-Go
說明在不可逆變更前的固定時點,由各職能分持一票宣告放行或停止的決策制度 2026-08-17
Threat Model
說明系統如何被攤成資產、邊界與攻擊者能力,讓風險的位置可以逐項列舉 2026-08-17
Coverage vs Completion Rate(覆蓋率與完成率)
說明同一個百分比的分母由誰列舉,決定它衡量的是全體的覆蓋率還是管理範圍內的完成率 2026-08-18
Security Control Domain(資安控制面)
說明一條資安風險的防守責任歸給哪一類控制,以及這個「控制面」與基礎設施的 control plane 同名不同義 2026-09-01
ORM(Object-Relational Mapping)
看到程式用類別與方法描述查詢時,查它交出去的是什麼、以及哪些行為在程式碼上讀不出來 2026-10-02
Cache-Control(快取控制標頭)
看到回應帶 Cache-Control、或要決定某個回應能被誰保存、保存多久、使用前要不要先問 origin 時,查這個標頭各指令的分工 2026-10-02
Vary(快取鍵變體標頭)
同一個網址會依請求標頭回不同內容、或快取命中率異常低時,查這個回應標頭怎麼把請求標頭加進快取鍵 2026-10-02
Heuristic Freshness(啟發式新鮮度期限)
回應沒寫任何快取期限卻仍被瀏覽器或 CDN 保存、改了內容使用者卻還拿到舊版時,查快取自己估期限的規則 2026-10-02
Admission Control(准入控制)
要決定湧入的使用者誰能進入、什麼時候進入時,例如開賣的虛擬等候室、waitlist、事前註冊與抽籤;和負載卸除、限流的分工,以及和 Kubernetes admission controller 的區分 2026-10-05
Minimum Supported Version(最低支援版本)
要讓舊版行動 App 停止使用時:服務方保存的版本下限、客戶端啟動檢查與伺服器端拒絕兩層各自涵蓋哪些版本,以及提高它之前要查的使用者數與作業系統下限 2026-10-05
Remote Config(遠端設定)
要讓已安裝的行動 App 不經更新就改變行為時:設定值由裝置向服務方讀取、有讀取間隔與快取、讀不到時用內建預設值、同一個值會被多個 App 版本讀到 2026-10-05
Pod
在 Kubernetes 的輸出或設定裡看到 Pod,要知道它和容器的關係、為什麼它的 IP 與名稱會變、以及誰負責替補它時 2026-10-05
Kubernetes Service
在 Kubernetes 裡要讓其他服務連到一組會換 IP 的 Pod、或排查請求為什麼沒有送到 Pod 時:Service 如何用標籤選 Pod、ClusterIP 與 DNS 名稱、EndpointSlice 與 ready 狀態 2026-10-05
Ingress
要讓叢集外的 HTTP 請求依網域與路徑進到 Kubernetes 裡不同的服務、Ingress 建立了卻連不進去、或 ingress-nginx 結束維護後要換 controller 時:Ingress 物件與 Ingress controller 的分工、IngressClass,以及 Gateway API 的關係 2026-10-05
Control Loop(控制迴圈)
讀到「期望狀態」「reconcile」,或 Kubernetes 的 apply 成功了服務卻沒起來時:控制迴圈如何持續比對期望狀態與實際狀態並修正落差,以及它和只在下指令時比對一次的宣告式工具差在哪 2026-10-05
Namespace(命名空間)
看到 kubectl 的 -n、kube-system、default,或跨 namespace 的 Service 名稱連不到時:namespace 劃分物件名稱的範圍、預設用哪一個、對 DNS 名稱與權限的影響 2026-10-05
Taint 與 Toleration
節點故障後 Pod 等了幾分鐘才搬走、Pod 排不上某些節點、或看到 node.kubernetes.io/not-ready 這類鍵名時:taint 如何把 Pod 擋在節點外或趕出節點、toleration 如何讓 Pod 容忍它 2026-10-23
Kubernetes RBAC(角色型存取控制)
要決定誰能對叢集裡的哪些物件做什麼、或查某個帳號為什麼被拒絕或為什麼權限過大時,查 Kubernetes RBAC 的 Role、ClusterRole、binding 與動詞資源的組成 2026-10-06
Cursor(游標、查詢結果的讀取物件、接續標記)
在程式碼、API 或文件裡看到 cursor 這個字,要分辨它指的是畫面上的游標、資料庫逐筆讀取查詢結果的物件,還是分頁回應裡記錄從哪裡接續的標記時 2026-10-23
Pod Security Admission(Pod 安全准入)
Pod 因為安全設定被拒絕建立、要限制某個 namespace 不能跑 privileged 或掛載主機目錄的 Pod,或評估 kubectl debug 這類需要高權限的工具在叢集裡能不能用時,查 Pod Security Admission 的三個等級與 namespace label 2026-10-06
SQL Injection(SQL 注入)
看到程式把變數拼進 SQL 字串、或在審查資料存取的程式碼時,查它的值是用佔位符傳給資料庫,還是成了 SQL 文字的一部分 2026-10-23
Privileged Container(特權容器)
在 Pod 設定裡看到 securityContext.privileged=true、要判斷某個除錯或系統元件為什麼需要它,或評估誰能建這種 Pod 等於持有節點 root 權限時,查特權容器能做什麼與它的權限邊界 2026-10-06
Prepared Statement(預先解析的查詢)
在資料庫的語句記錄裡看到 stmtcache_、pdo_stmt_ 這類具名的查詢被重複執行,或應用程式接上 PgBouncer 交易模式後出現 prepared statement already exists、does not exist 的錯誤時,查它在哪一條連線上建立、存在多久 2026-10-06
Soft Delete(軟刪除)
資料表有 deleted_at 欄位、ORM 的刪除改成 UPDATE,或刪掉的資料再建一次卻撞唯一約束、報表數字和頁面對不上時,查軟刪除的過濾條件由誰加、哪些路徑沒有加 2026-10-06
Connection Leak(連線洩漏)
請求越來越慢、最後在等連線時逾時,而資料庫本身負載不高,或連線池使用中的數量一直停在上限時,查哪一段程式借了連線沒有還 2026-10-06
Transaction Propagation(交易傳遞)
多個 repository 的寫入要在同一個交易裡完成,或一段程式在交易失敗後仍留下部分寫入、交易裡的某個查詢卡住直到逾時時,查交易物件怎麼傳到每一個資料存取呼叫 2026-10-06
Query Log(SQL 語句記錄)
要確認 ORM 或資料存取函式庫實際送出了哪些 SQL、交易的 begin 與 commit 有沒有送出,或在正式環境追查慢查詢與某一筆資料被誰改過時,查應用程式端與資料庫端的語句記錄各記了什麼 2026-10-06
Advisory Lock(建議鎖)
多個服務實例的排程要確保同一時間只有一份在跑,或排程每一輪都跳過、PostgreSQL 的伺服器日誌出現 you don't own a lock 時,查建議鎖持有在哪一條連線、哪一個交易上,以及 session 層級與交易層級(pg_try_advisory_xact_lock)的差別 2026-10-06
Lambda Architecture(批次層與即時層)
統計數字要即時看得到、又要能依原始事件重算成正確值時,查兩份計算各自負責哪一段時間、即時數字與報表對不上時以哪一份為準,以及即時層遺失資料的影響範圍 2026-10-06
Partial Index(部分索引)
列表或查詢只看表裡的一小類列、而其餘大宗資料讓索引又大又讀得慢時,查部分索引的寫法、查詢要帶什麼條件規劃器才會用它,以及排除條件要放在哪張表 2026-10-06
Table Bloat(表膨脹與 VACUUM)
大量更新或刪除之後表的檔案沒有變小、autovacuum 越跑越久、或查詢讀的頁數比資料量該有的多時,查舊版本的列怎麼累積、VACUUM 與 VACUUM FULL 各拿回什麼,以及大表要量的清理指標 2026-10-12
Prometheus Exporter(指標轉接程式)
要監控一個不會自己輸出 Prometheus 指標的系統(主機、容器、資料庫、快取、Nginx)時,查 exporter 做什麼、它和應用程式自己開的 /metrics 差在哪,以及 exporter 讀得到資料卻缺標籤、或者讀不到它所在層以外的機器時怎麼發現 2026-10-12
Noisy Neighbor(共用資源的鄰居干擾)
服務沒有改動、自己的用量也不高卻整體變慢,或者同一台主機、同一台實體機上的其他工作負載一忙就跟著慢時,查共用資源的競爭從哪裡來、為什麼服務自己的監控看不到,以及隔離由淺到深有哪些做法 2026-10-12
Load Average(負載平均)
看到 uptime 或 node_load1 的數字、要判斷主機是不是在排隊時,查 load average 算的是什麼、除以核心數怎麼讀、Linux 為什麼把等磁碟的行程也算進去,以及在虛擬機與容器裡量到的值代表誰 2026-10-12
CPU Steal Time(被虛擬化層拿走的 CPU 時間)
雲端虛擬機的服務沒有改動、CPU 用量也不高卻變慢時,查 steal time 記的是什麼、怎麼從 node_exporter 算出比例、什麼環境量不到它,以及升高時的處置 2026-10-12
cgroup(控制群組)
設定容器的 CPU 與記憶體上限、讀 cAdvisor 的指標、或查容器為什麼被暫停與結束時,查 cgroup 是什麼、v1 與 v2 的差別,以及 Docker 與 Kubernetes 的參數各自對應到它的哪個控制檔 2026-10-13
Alert Inhibition(告警抑制)
同一個原因觸發一串症狀告警、值班人員被淹沒,或要在 Alertmanager 寫 inhibit_rules 時,查抑制做什麼、它和分組與靜音的差別、哪些症狀適合被抑制,以及它安靜失效的幾種條件 2026-10-13
Relabeling(標籤改寫)
Prometheus 的讀取對象少了、多了、帶錯標籤,或想在寫入前丟掉某些指標時,查 relabel 規則在哪幾個時間點執行、各自讀得到哪些標籤,以及規則沒有生效時怎麼逐條看出是哪一條規則丟掉或改寫了它 2026-10-14
Failure Domain(失效域)
判斷兩個元件會不會因為同一件事一起停掉、備援或監控是否獨立於被保護的對象時,查它們共用了哪些會失效的依賴 2026-10-14
Dead Man's Switch(心跳監看)
需要知道監控或排程工作自己停掉了、而它停掉時發不出任何告警時,以「時限內沒收到訊號就通知」反過來判斷 2026-10-14
Shared Responsibility Model(責任分擔模型)
把服務放上雲端之後,要分清哪些故障與攻擊由業者處理、哪些仍然是自己的工作時,查業者與使用者之間的責任分界 2026-10-14
Lateral Movement(橫向移動)
評估一台主機被入侵之後攻擊者還連得到哪些機器、內網或 VPN 裡的可達範圍要收到多窄時,查攻擊者以已經拿下的機器為起點往內擴散的方式 2026-10-14
Zero Trust(零信任)
判斷內網或 VPN 裡的服務能不能因為連線來自內部就省掉認證、或要評估一條連線該放行到什麼範圍時,查「每一次連線各自通過身分與授權」這個原則的內容與導入代價 2026-10-14
WORM Storage(不可變儲存)
要讓備份或稽核紀錄在寫入它的存取憑證外洩之後仍然刪不掉、改不了時,查一次寫入多次讀取的儲存怎麼做到、物件鎖定的兩種模式差在哪裡,以及版本保留與它的差別 2026-10-14
Synthetic Monitoring(合成監控)
要知道使用者從外面連不連得到服務、或分不清某個「外部探測」從哪裡發出時,查合成監控以排程的請求模擬使用者的做法、探測端的位置怎麼決定它量得到什麼,以及它與真實使用者監測的差別 2026-10-14
White-box and Black-box Monitoring(白箱與黑箱監控)
分不清一個監控是從外部行為判斷還是讀取內部狀態、或把「黑箱探測」當成一定站在服務以外的觀察者時,查白箱與黑箱監控各回答什麼問題、各自看不到什麼,以及黑箱為什麼不等於在失效域以外 2026-10-14
Tiered Support(分層支援)
要決定使用者回報由誰處理、什麼時候往上轉,或客服一再把同一類問題轉給工程時,查分層支援怎麼切分各層、決定一則回報停在哪一層的因素,以及它與值班升級策略的差別 2026-10-14
Known Error(已知錯誤)
已經確認、還沒修好、影響小到不必開事故的問題要讓客服與值班知道時,查 ITIL 的已知錯誤與已知錯誤資料庫(KEDB)記錄什麼、它與事故在 ITIL 裡的關係、本站流程裡清單與事故的分流,以及清單沒有維護時的失效 2026-10-14
Knowledge-Centered Service(KCS)
客服或工程查完一則回報之後答案沒有留下、同一類問題每次都重查,或要決定知識文章由誰在什麼時候寫時,查 KCS 在處理回報的當下寫入與修正知識的做法 2026-10-14
Alert Silence(告警靜音)
維護期間要暫停某些告警的通知、或懷疑告警該響而沒響時,查 Alertmanager 的 silence 做什麼、它與抑制及週期性靜音時段的差別、它過期之前會藏住什麼,以及怎麼列出與監看還沒過期的靜音 2026-10-14
Metastable Failure(負載退去後仍停在失效狀態)
流量已經回到平常的量而服務仍然大量逾時或出錯、或要判斷一次過載為什麼沒有自己恢復時,查 metastable failure 的定義、讓它停在失效狀態的持續效應、偵測它要比對的訊號與脫離它的做法 2026-10-22
Eradication(根除)
資安事故止血之後、要決定什麼時候可以把服務帶回來時,查攻擊者留在環境裡的存取憑證、後門與被改過的產物要移除到什麼程度 2026-10-22
Indicator of Compromise(入侵指標)
要從日誌與流量判斷某個攻擊者是否活動過、或根除之後是否回來時,查哪些可觀察的特徵能把同一個攻擊者的活動認出來 2026-10-22
Pseudonymization(假名化)
要把含個人資料的明細交給分析、跨租戶彙整或測試環境使用,判斷換成代碼之後還算不算個人資料、代碼會不會被回推時,查假名化與匿名化的差別與金鑰的保管方式 2026-10-23
Data Controller and Data Processor(控制者與處理者)
替別的組織保管或處理個人資料時,要判斷外洩之後誰通報主管機關、誰通知誰、契約要先訂哪些通知義務,先查兩方在資料處理裡各是哪一個角色 2026-10-23
Sub-processor(子處理者)
平台把客戶的個人資料再交給物流、金流、雲端或其他供應商處理時,要判斷那家供應商外洩算誰的責任、委託前要先取得什麼授權 2026-10-23
Dwell Time(攻擊者駐留時間)
資安事故要估攻擊者在被發現之前待了多久、清查與鑑識要往回追溯到哪一天,或要解讀入侵報告裡的駐留時間中位數時,查這段時間從哪一刻算到哪一刻、它怎麼決定清查範圍 2026-10-23
Digital Forensics(數位鑑識)
資安事故要決定被入侵主機關機或重建之前先保全什麼、內部紀錄不夠時何時委託外部鑑識,或要判斷一份調查結論是否足以作為對外說明的依據時,查數位鑑識保全哪些證據、證據的保管鏈要記什麼 2026-10-23
Certificate(數位憑證)
文件裡的「憑證」要分辨指的是數位憑證還是存取憑證,或要判斷 TLS、mTLS、程式碼簽章用的憑證外洩之後要撤銷什麼時,查數位憑證由哪些部分組成、哪一部分是秘密 2026-10-23
Internal Admin Tool(客服後台)
設計讓客服以帳號或訂單編號查使用者資料的內部頁面、決定它顯示哪些欄位與留下什麼紀錄,或讀到 support tooling、admin tool、back office 這些名稱要確認它們是否指同一種工具時,查客服後台的讀寫範圍、權限與稽核責任,以及它與管理端點、代登入的分界 2026-10-26
Step Change(步階變化)
判斷一個指標或一項設定的改變能不能從量測的趨勢預測、要用趨勢外推還是跟基準比對才偵測得到時,區分步階變化與逐步累積的變化 2026-10-27
Open and Closed Workload Model(開放與封閉負載模型)
設計壓測的注入方式、要在固定到達率與固定同時在線人數之間選一種,或壓測量到的延遲低於 production、懷疑負載工具少送了請求時讀 2026-10-27
Load Generator Saturation(施壓端飽和)
壓測的吞吐量停在某個值、延遲上升,要確認瓶頸在受測服務還是在執行負載工具的那幾台機器時讀 2026-10-28
TLS Handshake(TLS 握手)的成本與連線重用
壓測量到的上限落在負載平衡器或反向代理的 CPU、Connect Time 隨負載上升,或要判斷負載工具該不該在每一輪重建連線時讀 2026-10-28
Gevent Monkey Patching(gevent 的猴子補丁)
Locust 的吞吐量從加壓一開始就不隨使用者數增加而 worker 的 CPU 很低、一個 worker 程序的 CPU 到頂,或要判斷某個 Python 函式庫是否會卡住 Locust 的 worker 時讀 2026-04-24
7.R0 紅隊基礎:攻擊流程作為服務判讀語言
建立紅隊共同詞彙與流程視角,讓案例分析回到服務環節的決策判讀 2026-04-24
7.R1 攻擊面與信任邊界
從紅隊角度盤點系統暴露面,以及信任假設在哪裡開始失效 2026-04-24
7.R2 入口濫用與權限突破
說明合法功能如何被惡意組合成權限突破或流程濫用 2026-04-24
7.R3 資料暴露與外洩路徑
說明敏感資料會從哪些回應、紀錄或工具中流出 2026-04-24
7.R4 資源濫用與可用性破壞
說明攻擊者如何把合法操作放大成容量壓力或服務退化 2026-04-24
7.R5 設定錯誤與隱藏入口
說明 debug、預設值與環境差異如何意外暴露能力 2026-04-24
7.R6 事故故事重構:服務環節問題與注意事項
以統一模板整理案例:服務環節問題地圖、案例對照表與跨模組交接邊界 2026-04-24
7.R8 控制面失效樣式
把常見攻擊結果回推成控制面失效樣式 2026-04-24
7.R9 攻擊者成本與行動節奏
用攻擊者成本模型判讀哪些環節最容易被優先利用 2026-04-24
7.R10 偵測迴避與觀測缺口
從攻擊者角度盤點偵測盲區與觀測資料缺口 2026-04-24
7.R7.M 案例引用地圖(服務主題 -> 案例 -> workflow)
把服務主題連到完整案例體系,再連回 incident workflow 檢查點 2026-04-24
7.R11.1 邀請流程濫用
說明邀請流程為何容易形成身份擴散與越權入口 2026-04-24
7.R11.2 審核流程濫用
說明審核節點為何會變成形式審核,進而放大高風險操作 2026-04-24
7.R11.3 代理操作濫用
說明代理操作為何容易形成責任鏈斷點與高權限濫用 2026-04-24
7.R11.4 帳號切換濫用
說明多帳號切換為何容易形成會話混層與身份擴散 2026-04-24
7.R11.5 密碼重設流程濫用
說明密碼重設流程為何常成為身份接管入口 2026-04-24
7.R11.6 權限提升流程濫用
說明權限提升流程為何容易把局部存取轉成全域控制 2026-04-24
7.R11.7 方案升降級流程濫用
說明方案切換流程為何容易成為權限與資源邊界繞過點 2026-04-24
7.R11.8 匯出流程濫用
說明匯出流程為何常被放大為資料外送主路徑 2026-04-24
7.R11.9 分享流程濫用
說明分享流程為何容易把內部資料邊界轉成外部可達邊界 2026-04-24
7.R11.10 批次操作濫用
說明批次操作為何容易放大單次權限失效的影響半徑 2026-04-24
7.R11.11 跨租戶協作濫用
說明跨租戶協作為何容易形成租戶邊界滲漏 2026-04-24
7.R11.12 第三方授權濫用
說明第三方授權流程為何容易成為供應商事件傳導節點 2026-04-24
7.R11.P1 可重放邀請連結
說明邀請連結重放如何把一次性流程轉成持續可利用入口 2026-04-24
7.R11.P2 提交與審核責任重疊
說明提交與審核責任重疊如何讓審核退化為形式流程 2026-04-24
7.R11.P3 代理會話上下文混層
說明代理會話與原始會話混層如何放大高權限濫用風險 2026-04-24
7.R11.P4 帳號切換後沿用高權限 token
說明帳號切換後權限 token 殘留如何造成身份邊界漂移 2026-04-24
7.R11.P5 密碼重設 token 可重放且有效期過長
說明密碼重設用的存取憑證可重放與長時效如何形成身份接管窗口 2026-04-24
7.R11.P6 權限提升缺乏時效綁定
說明權限提升缺乏時效綁定如何把例外能力轉成常態能力 2026-04-24
7.R11.P7 降級後能力回收延遲
說明方案降級後能力回收延遲如何造成授權邊界漂移 2026-04-24
7.R11.P8 匯出檔案長時間可重複下載
說明匯出產物長時效與可重複下載如何放大資料外送風險 2026-04-24
7.R11.P9 分享連結缺少到期語意
說明分享連結缺少到期語意如何把協作路徑轉成長尾暴露路徑 2026-04-24
7.R11.P10 批次流程缺少中止檢查點
說明批次流程缺少中止檢查點如何放大單次失效衝擊 2026-04-24
7.R11.P11 跨租戶上下文快取殘留
說明跨租戶上下文快取殘留如何造成租戶邊界滲漏 2026-04-24
7.R11.P12 第三方 token 授權範圍過寬
說明第三方 token 授權範圍過寬如何放大供應商事件傳導 2026-04-24
7.R7.1.1 Uber 2022:MFA 疲勞與內部工具擴散
從社交工程到內部工具存取,拆解身分流程與權限邊界的失效點 2026-04-24
7.R7.1.2 Okta + Cloudflare 2023:支援流程與身分供應鏈
支援工單與第三方身份供應商路徑如何變成入侵鏈的一部分 2026-04-24
7.R7.1.3 Twilio 2022:社交工程與員工帳號路徑
社交工程如何穿透員工身分流程,並影響下游客戶與供應鏈 2026-04-24
7.R7.1.4 MGM 2023:身分流程被打穿後的營運中斷
社交工程造成身分邊界失守後,如何演變成可用性與營運衝擊 2026-04-24
7.R7.1.5 Microsoft Storm-0558 2023:簽章金鑰鏈與郵件存取
從簽章金鑰保護失效到雲端郵件存取,拆解身分信任鏈的關鍵控制點 2026-04-24
7.R7.1.6 Cloudflare 2023:供應商事件後的身分收斂
同一條供應商事件鏈,如何在客戶端變成 session 與 token 的收斂壓力 2026-04-24
7.R7.1.7 Slack 2022:企業 token 與程式碼資產路徑
員工帳號被社交工程利用後,企業 token 與私有程式碼資產的防線如何運作 2026-04-24
7.R7.1.8 Dropbox 2022:釣魚入侵與程式碼倉儲風險
從員工釣魚事件到私有程式碼資產保護,建立身分與研發資產的聯防流程 2026-04-24
7.R7.2.1 SolarWinds 2020:更新鏈被濫用
合法更新流程遭植入後,攻擊者如何長期潛伏與橫向擴散 2026-04-24
7.R7.2.2 GitHub OAuth 2022:第三方 token 供應鏈風險
第三方整合 token 被竊後,如何形成跨組織存取風險 2026-04-24
7.R7.2.3 CircleCI 2023:CI secrets 輪替壓力
工程端點入侵後,CI 平台 secrets 如何成為高風險擴散點 2026-04-24
7.R7.2.4 XZ Backdoor 2024:開源供應鏈長期滲透
開源維護鏈遭滲透後,為何會直接影響廣泛 Linux 發行流程 2026-04-24
7.R7.2.5 TeamCity 2023:CI 入口漏洞與交付鏈風險
CI 平台入口被利用後,如何沿著建置與發佈流程擴散供應鏈風險 2026-04-24
7.R7.2.6 ScreenConnect 2024:RMM 平台入口與下游擴散
遠端管理平台入口被利用後,服務商與客戶環境會同步承壓 2026-04-24
7.R7.2.7 Log4Shell 2021:共用元件風險與修補鏈
共用元件漏洞如何同步影響多服務,並迫使團隊建立依賴治理 workflow 2026-04-24
7.R7.2.8 3CX 2023:桌面軟體更新鏈攻擊
合法更新流程被植入後,桌面端供應鏈事件如何傳到企業端點 2026-04-24
7.R7.2.9 Kaseya VSA 2021:MSP 供應鏈擴散路徑
管理平台事件透過 MSP 模型向多客戶擴散時,workflow 應如何分層應對 2026-04-24
7.R7.3.1 MOVEit 2023:外網檔案服務批量外送
MFT 對外入口在零時差事件中如何被批量利用 2026-04-24
7.R7.3.2 Ivanti 2024:CVE-2023-46805/2024-21887 VPN 邊界漏洞鏈
多漏洞串接下,邊界設備事件如何轉為持續控制風險 2026-04-24
7.R7.3.3 Citrix Bleed 2023:會話被劫持與重放風險
邊界設備會話資料外洩後,如何演變成帳號與服務風險 2026-04-24
7.R7.3.4 PAN-OS 2024:邊界設備遠端命令執行
邊界設備 RCE 事件如何迫使團隊在修補與營運可用性間快速取捨 2026-04-24
7.R7.3.5 PaperCut 2023:認證繞過與入口執行風險
管理平台入口若被認證繞過,內部列印與服務節點會暴露在遠端控制風險 2026-04-24
7.R7.3.6 Confluence 2022:網站入口 RCE 與知識系統風險
協作平台外網入口被打穿時,內部知識與存取憑證線索會同步外露 2026-04-24
7.R7.3.7 Cisco IOS XE 2023:Web UI 管理面風險
網通設備管理介面暴露時,攻擊可直接穿透邊界控制平面 2026-04-24
7.R7.3.8 Fortinet SSL-VPN 2024:邊界 VPN 高風險窗口
VPN 邊界漏洞發生時,入口隔離與修補節奏需要同時啟動 2026-04-24
7.R7.3.9 SysAid 2023:ITSM 入口與維運流程風險
ITSM 服務入口被利用後,維運流程會成為擴散加速器 2026-04-24
7.R7.4.1 LastPass 2022:備份路徑與鏈式入侵
開發環境資訊外流如何沿著備份路徑擴大成資料風險 2026-04-24
7.R7.4.2 Snowflake 2024:存取憑證濫用與資料竊取
外洩存取憑證與 MFA 缺口如何在資料平台形成高風險外送事件 2026-04-24
7.R7.4.3 Change Healthcare 2024:資料事件轉為營運中斷
醫療支付中樞事件如何同時衝擊資料安全與業務連續性 2026-04-24
7.R7.4.4 Mailchimp 2023:支援工具路徑與客戶資料風險
社交工程進入客服工具後,如何形成特定客戶資料存取風險 2026-04-24
7.R7.4.5 VMware ESXiArgs 2023:虛擬化平台勒索回復壓力
虛擬化平台漏洞被利用後,回復策略與營運連續性會面臨同步壓力 2026-04-24
7.R7.4.6 Progress WS_FTP 2023:檔案服務入口與資料外送
對外檔案服務漏洞在企業環境常直接轉為資料外送風險 2026-04-24
7.R7.4.7 GoAnywhere MFT 2023:傳輸中樞被利用的外送鏈
MFT 中樞服務漏洞會把檔案交換流程直接轉成資料外送風險 2026-04-24
7.R7.2.10 TeamCity 2024:CVE-2024-27198/27199 入口鏈
TeamCity 連續漏洞揭示 CI 平台入口繞過與路徑穿越的供應鏈風險 2026-04-24
7.R7.3.10 Juniper 2023:網通設備鏈式漏洞窗口
鏈式漏洞出現在核心網通設備時,修補與流量穩定性需要同步決策 2026-04-24
7.R7.3.11 ServiceNow 2024:企業平台入口風險
企業核心平台漏洞出現時,服務流程與資料流程都需要同步收斂 2026-04-24
7.R7.3.12 Check Point 2024:VPN 資訊外洩與會話風險
邊界設備資訊外洩漏洞可快速轉為存取憑證與會話濫用風險 2026-04-24
7.R7.3.13 ProxyLogon 2021:CVE-2021-26855/27065 入口鏈式失效
郵件系統入口漏洞被串接利用時,事件會迅速擴大到內部服務邊界 2026-04-24
7.R7.3.14 ProxyShell 2021:CVE-2021-34473/34523/31207 後續鏈式攻擊
同類入口平台在後續漏洞波次中,如何建立持續修補與驗證機制 2026-04-24
7.R7.3.15 FortiOS 2022:VPN 零時差事件節奏
邊界設備零時差事件需要隔離、輪替、復測的完整鏈條 2026-04-24
7.R7.3.16 Citrix ADC 後續事件:Session 重放延伸
同一波邊界事件在後續通報階段,重點轉為會話與存取憑證收斂 2026-04-24
7.R7.3.17 Confluence 2023:CVE-2023-22515/22518 權限控制鏈
Confluence 權限控制弱點在連續漏洞波次中如何擴大入口風險 2026-04-24
7.R7.3.18 Citrix 2023:CVE-2023-3519 邊界代碼注入
NetScaler 邊界入口代碼注入事件揭示管理平面快速失守風險 2026-04-24
7.R7.3.19 F5 BIG-IP 2023:CVE-2023-46747 認證繞過
BIG-IP 組態管理入口認證繞過如何放大邊界設備治理壓力 2026-04-24
7.R7.3.20 Fortinet 2022:CVE-2022-40684 認證繞過
Fortinet 多產品認證繞過事件反映邊界與管理面共享風險 2026-04-24
7.R7.3.21 Fortinet 2023:CVE-2023-27997 SSL-VPN 溢位
SSL-VPN 漏洞在邊界設備上會放大大規模掃描與利用速度 2026-04-24
7.R7.3.22 FortiClient EMS 2023:CVE-2023-48788 SQL 注入
端點管理平台 SQL 注入事件揭示管理平面資料與權限風險 2026-04-24
7.R7.3.23 ManageEngine 2021:CVE-2021-40539 認證繞過
身分服務入口認證繞過會把帳號管理流程直接暴露在攻擊鏈上 2026-04-24
7.R7.3.24 USAHERDS 2021:CVE-2021-44207 硬編碼存取憑證
硬編碼存取憑證事件展示供應商系統配置治理與存取控制的共同風險 2026-11-03
restic sidecar 容器的密碼操作:啟動腳本依 exit code 判斷、換密碼、外洩後搬到新 repository 與唯讀還原演練
restic 以 Docker Compose 的 sidecar 容器做自架備份、要換密碼或密碼可能外洩時:啟動腳本怎麼分辨 repository 不存在與密碼錯誤、只改 .env 為什麼讓備份停擺、容器還在跑時換密碼的步驟、外洩後建新 repository 並用 restic copy 搬快照,以及唯讀掛載時 restore 重試十幾分鐘才失敗的成因 2026-11-03
SQLite 換機搬遷演練:Litestream restore、UID 對齊與停用舊主機的複製
家用主機要換新機、SQLite 資料庫由 Litestream 持續備份時,從 replica 把資料還原到新主機的步驟、只複製資料庫主檔會少掉的資料、還原後容器寫入時出現 attempt to write a readonly database 的成因,以及舊主機的複製沒停掉時 replica 裡會少掉哪些寫入 2026-06-16
Firestore Distributed Counter Lab
在 emulator 上實作 distributed counter:建立 N 個 shard、隨機分片寫入、觀察 shard 分佈是否均勻、讀取彙總驗證總和正確,並說明 contention 本身是 emulator 不模擬的 production 特性 2026-06-16
Firestore Local Emulator Quickstart
用 Firebase CLI 啟動 Firestore emulator、寫 firestore.rules、用 admin SDK seed 資料、跑 query baseline 與 cleanup,建立後續 Security Rules 與 distributed counter lab 共用的本地環境 2026-06-16
Firestore Security Rules Test Lab
用 @firebase/rules-unit-testing 在 emulator 上把 Security Rules 寫成自動化測試:放行 / 越權拒絕 / 未登入拒絕 / 欄位竄改拒絕四類斷言、firebase emulators:exec 在 CI 跑、把規則測試接進 release gate 2026-05-22
MySQL Backup Restore Drill
MySQL logical dump、physical backup frame、binlog position、restore validation 與 RPO / RTO evidence 2026-05-22
MySQL Local Lab Quickstart
MySQL local lab 的 Docker Compose、schema seed、sample workload、basic metric 與 teardown 2026-05-22
MySQL Online Schema Change Lab
MySQL ALTER TABLE、metadata lock、gh-ost / pt-osc frame、cutover evidence 與 rollback note 2026-05-22
MySQL ProxySQL Routing Lab
MySQL ProxySQL hostgroup、read/write split、query rule、backend health 與 routing evidence 2026-05-22
MySQL Replication Failover Lab
MySQL source / replica、replication lag、promotion、client route、Orchestrator frame 與 validation evidence 2026-05-22
MySQL Vitess Sandbox Route
Vitess sandbox、keyspace、shard、VSchema、query routing、resharding preview 與 MySQL migration evidence 2026-05-22
PostgreSQL Connection Pool Lab
PostgreSQL application pool、PgBouncer、backend connection、pool exhaustion 與 failover reconnect 的操作說明 2026-05-22
PostgreSQL HA Failover Drill
PostgreSQL Patroni 或 managed failover 的 promotion、client reconnect、pooler behavior 與 incident timeline 2026-05-22
PostgreSQL Local Lab Quickstart
PostgreSQL local lab 的 Docker Compose、schema seed、sample workload、basic metric 與 teardown 2026-05-22
PostgreSQL PITR Restore Drill
PostgreSQL base backup、WAL archive、target time restore、validation query 與 RPO / RTO evidence 的操作說明 2026-05-22
PostgreSQL Schema Migration Evidence Lab
PostgreSQL expand / contract migration、validation query、rollback condition 與 release gate evidence 的操作說明 2026-05-21
PostgreSQL to SQLite Simplification
PostgreSQL 降低操作成本轉向 SQLite 的適用條件、資料責任縮小、export/import、runbook 與 no-go condition 2026-05-21
SQLite Backup Restore Drill
SQLite .backup、VACUUM INTO、restore validation、sidecar file handling 與 RPO / RTO note 的操作說明 2026-05-21
SQLite D1 / Turso / libSQL Comparison
Cloudflare D1、Turso、libSQL 與 local SQLite 在 edge、replication、consistency、migration 與 vendor boundary 的比較 2026-05-21
SQLite D1 / Turso Preview Lab
SQLite local DB 匯出到 Cloudflare D1 或 Turso preview environment 的 compatibility、latency 與 rollback 操作說明 2026-05-21
SQLite file lifecycle 與 backup boundary
把 SQLite 單檔案正式狀態拆成 WAL、backup API、restore drill、corruption recovery 與操作責任邊界 2026-05-21
SQLite Litestream / LiteFS Replication
Litestream、LiteFS、SQLite backup replication、read replica、failover 與 restore route 2026-05-21
SQLite Local File Quickstart
SQLite local .db file、schema、seed data、PRAGMA baseline、query sample 與 cleanup 的操作說明 2026-05-21
SQLite Local-first Sync Boundary
SQLite local-first app、multi-device sync、server authority、拉取變更的接續標記(updated_at 漏列與 server 版本號)、第一次同步的分批、tombstone 保留期限與全量重新同步、conflict resolution、delete propagation 與 offline-first trade-off 2026-05-21
SQLite Migration Fixture Lab
SQLite user_version、table rebuild migration、fixture snapshot、rollback note 與 CI evidence 的操作說明 2026-05-21
SQLite Mobile / Desktop Embedded Store
SQLite 在 mobile、desktop、CLI、browser profile 與 embedded device 中承擔 local formal state 的資料責任、backup、privacy 與 sync boundary 2026-05-21
SQLite Observability and Runbook
SQLite production runbook、backup evidence、WAL growth、busy errors、disk usage、restore drill 與 incident route 2026-05-21
SQLite PRAGMA Tuning and Performance
SQLite journal_mode、synchronous、busy_timeout、wal_autocheckpoint、cache_size、mmap_size、auto_vacuum 與 performance evidence 的操作判斷標準 2026-05-21
SQLite Schema Migration and Versioning
SQLite schema migration、user_version、table rebuild、ALTER TABLE 限制、app release compatibility 與 migration evidence 2026-05-21
SQLite SQL Dialect and Index Limits
SQLite type affinity、NULL / date handling、constraint、index、query planner 與 PostgreSQL / MySQL 差異 2026-05-21
SQLite Test Fixture Best Practice
SQLite 作為 test fixture、repository contract test、production dialect gap、seed data、fixture snapshot 與 CI evidence 的操作判斷標準 2026-05-21
SQLite to D1 / Turso Migration
SQLite 轉向 Cloudflare D1、Turso / libSQL 的 edge driver、compatibility audit、data movement 與 rollback 2026-05-21
SQLite to PostgreSQL Migration
SQLite 升級到 PostgreSQL 的 driver、schema diff、data copy、dual run、cutover、rollback 與 cleanup 2026-05-21
SQLite WAL Busy Reproduction
SQLite long transaction、SQLITE_BUSY、busy_timeout、checkpoint growth 與 writer queue 的操作說明 2026-05-21
SQLite WAL Concurrency and Locking
SQLite WAL mode 如何降低 reader / writer 衝突、保留 single writer boundary,並用 SQLITE_BUSY、WAL growth、checkpoint 訊號判斷 production 上限 2026-05-19
Atlassian Statuspage → Instatus:status page 成本下降、但 compatibility audit 不能跳
Atlassian Statuspage → Instatus 是 Type B drop-in migration、6 維 audit 全 Low;典型情境是從 Statuspage Business / Enterprise 降到 Instatus Pro / Business、但 savings 取決於 subscriber、SSO、audit 與 SLA report 需求。本文走 compatibility audit prefix(subscriber channel 完整度 / SAML SSO / audit log / metrics integration / SLA report / API parity)、4 階段 cutover(DNS TTL + parallel run)、5 個 production 踩雷(SSO tier 選錯、metrics 來源整合斷、subscriber import format / SLA report 缺、custom CSS 不完全相容)、何時不要切(enterprise compliance / 強 Atlassian 整合) 2026-05-19
JMeter → k6:k6 不是 JMeter 的「script 版本」、是 VU model 取代 thread model
JMeter → k6 是 Type E paradigm shift、不是把 .jmx XML 翻成 JavaScript — VU (virtual user) model 跟 thread group model 是兩種對「使用者行為」不同的建模方式。本文走 6 維 audit(Schema High / Paradigm High / Operational Medium)、釐清反向定義、4-phase partial migration(多數 org 停 Phase 2-3 hybrid)、5 production 踩雷(thread group 翻譯失真 / arrival rate vs concurrent VU 混淆 / protocol gap / 結果 schema 改 / CI integration 重做)、protocol gap(JDBC / JMS / LDAP 在 k6 沒原生對應)、何時不要切 2026-05-19
PagerDuty → incident.io:「On-call」是個 retconned word、同名不同 contract
PagerDuty → incident.io 不是 schema translation — 兩家的「on-call」字面相同、contract 不同(alert routing vs IR coordination + Slack-native + retrospective)。本文走 Type E paradigm shift、6 維 audit 顯示 paradigm / schema / operational 三軸 High、用 4-phase partial migration(不收斂、Phase 1-2 多數 org 停留)、5 個 production 踩雷(雙系統 state drift / severity 翻譯失真 / schedule layer 漏 / Slack channel 過載 / retrospective 斷層)、跟 PagerDuty Process Automation / AIOps 沒對應的 capability gap 2026-05-19
PagerDuty → Opsgenie:Atlassian 全家桶整合 vs Opsgenie 2027 EOL 的 vendor consolidation 取捨
PagerDuty → Opsgenie 是 Type A phased schema translation、但 Atlassian 已宣布 Opsgenie 2027-04 EOL — 這條 migration 只在 Atlassian-heavy org + 明確 JSM unification roadmap 下成立、本質是 PD → Opsgenie → JSM Cloud 的雙 hop migration。本文走 6 維 audit(Schema Medium-High 其他 Low)、PagerDuty ↔ Opsgenie ↔ JSM field mapping 對照、5 production 踩雷(escalation step / Heartbeat 缺對應 / integration key dedup 重設 / schedule 時區 / Atlassian Identity SSO 整合)、何時直接走 PD → JSM 跳過 Opsgenie 2026-05-19
Pyroscope → Datadog Continuous Profiler:profiling deployment lifecycle 各階段 operational ownership 轉手
Pyroscope → Datadog Continuous Profiler 是 Type C operational hybrid migration — pprof data model 接近、profile lifecycle 五階段(install / instrument / ingest / query / cost)的 ops ownership 從 self-host 轉到 SaaS。本文走 6 維 audit(Operational High 其他 Low)、4-phase migration(operational audit + agent parallel + tag reconcile + cutover)、5 production 踩雷(agent 重複 overhead / tag schema 不一致 / trace_id correlation 斷 / cost 突增 / retention 政策變動)、何時保留 Pyroscope(資料主權 / 內網 / OSS-first / cost sensitive) 2026-05-18
API 認證的三層信任邊界:使用者、系統、跨系統 Provisioning
API 認證的信任邊界分層(Bearer Token / Shared Secret / Provisioning):各層的洩漏後果與撤銷方式,以及混用造成的設計失效模式。 2026-05-18
Shared Secret 安全輪替設計:雙密過渡期、自動化與緊急流程
系統間 Shared Secret 輪替的核心機制:dual-secret rollover、自動化工具比較(AWS Secrets Manager / Vault / GCP)、緊急 rotation 流程與多 client 環境的失敗模式。 Tarragon (CC BY 4.0) | 使用 hugo 製作