中央控制器看得見儀表,不一定知道現場

假設一套部署平台負責多個服務的分批更新。中央控制器能檢查簽章、版本、全域錯誤率和同時更新的服務數;但某個服務的維護者才知道資料回填正在進行、上游供應商剛改了流量窗口,或客戶正在完成不可中斷的批次作業。這些資訊若沒有可靠訊號進入控制器,控制器就只能依照不完整的畫面繼續或停下。

把所有決定集中到控制器,可能讓有用的現場知識必須先被格式化、上傳、理解,再等候中央指令。把全部權限交給服務團隊,則可能讓各自合理的部署同時耗盡共用容量,或違反跨服務的安全限制。設計問題不是選中央或分散,而是:哪一類決定需要全域一致,哪一類決定仰賴快速變動的在地資訊?

Hayek 問的是知識如何被使用

Hayek 在 1945 年的〈The Use of Knowledge in Society〉討論經濟協調時指出,與決策有關的知識不會完整集中於單一心智;許多知識零散、暫時而且和特定時間地點有關。若重要變化需要即時反應,決策安排就必須讓熟悉那些情境的人能運用其知識,同時仍要讓局部決定連接到更大範圍的資訊。原文第三至第五節,頁 522–525

這篇文章的主題是經濟秩序,不是軟體部署。Bowles、Kirman 與 Sethi 對 Hayek 的回顧也提醒,承認分散知識的重要性,並不代表他的自由市場政治主張就必然成立;資訊處理論點與政策立場之間仍有推論距離。〈Retrospectives: Friedrich Hayek and the Market Algorithm〉

把這個知識問題帶進部署平台,是本文的工程推論:要設計的不是「中央或在地誰比較聰明」,而是哪個決策者能及時取得足以作決定的資訊、又會把哪些成本加到其他服務或使用者身上。分散的資訊不會自己變成可靠的決策;系統仍要設計訊號、權限、限制與回報路徑。

把全域規則和服務現場的停點拆開

對多服務部署,可以先採用三層責任:

  • 平台集中守住共同限制。 例如產物簽章、最低驗收項目、全域並行上限與高嚴重度安全封鎖。這些限制涉及跨服務的外部影響,單一服務不應自行取消。
  • 服務 owner 判斷本地是否可開始或繼續。 維護窗口、尚未完成的資料遷移、局部依賴風險等資訊,由熟悉服務的人提供。服務可以在共同規則內暫停自己的 rollout。
  • 平台與服務共同處理全域異常。 若多服務的錯誤率同時升高,平台可暫停整個批次;若只有單一服務的健康訊號惡化,先停該服務並保留證據,不必立刻凍結所有部署。

這種分工並不要求每項現場知識都傳到中央。應由訊號契約說明「誰能宣告就緒、誰能暫停、誰能恢復,以及哪些觀察會擴大停點」。例如,服務 owner 可以回報維護窗口已開、資料遷移已完成,並在本地依賴出現新錯誤時暫停;平台仍驗證簽章、守住並行上限,且能依全域事故訊號停住後續批次。

在地暫停只能縮小風險範圍,不能讓服務繞過共同安全條件。 每個可自訂訊號都要有來源、有效時間、owner 和過期行為;缺少或過期的關鍵訊號應讓 rollout 停在可恢復狀態,而不是被解讀成「沒有問題」。

用決策延遲與影響範圍選擇權限位置

遇到新決策時,可以問四個問題:

  1. 資訊在哪裡產生? 若狀態依賴短暫的維護安排或尚未自動化的依賴觀察,強迫它先到中央再等回覆,可能使訊號過期。
  2. 錯誤會影響誰? 跨服務容量、憑證或資料一致性規則,需要中央限制;單一服務的局部健康問題,通常可由服務先暫停自身變更。
  3. 誰能採取可回復動作? 若服務 owner 只能觀察、不能停止 rollout,平台就把現場知識與行動權拆開;若中央不能重啟或撤銷全域批次,則缺少整體恢復手段。
  4. 訊號失效時怎麼做? 定義資料逾時、觀測缺失和控制器失聯時的明確狀態,避免把「不知道」當成通過。

可以用下列驗收條件檢查這個邊界:服務 owner 在全域政策允許下暫停自己的 rollout;任何服務都不能略過簽章與最低驗收;全域錯誤條件能停止後續批次;過期或缺漏的就緒訊號不會自動放行;每次暫停與恢復都留下決策者、依據和時間。這些條件可用狀態機測試與部署演練驗證,而不是只看架構圖上控制器位於何處。

分散知識不代表分散一切

Hayek 沒有提出服務所有權模型,也沒有告訴我們該怎麼做部署控制面。局部團隊可能缺少全域視野,甚至把成本轉嫁給其他服務;集中控制器也可能靠良好 telemetry、清楚的訊號契約及快速回饋,取得足夠資料作出許多決定。資訊越能可靠傳遞,決策權的選擇就越不必綁定在物理位置上。

因此,這個哲學視角給的是一個分析問題,而不是預設架構:**若中央必須先知道某個局部變化,才有辦法安全決定,系統是否能及時把它轉成可用訊號?若不能,誰需要在地停點,才能避免等待造成更大風險?**最終的切分還要以延遲、錯誤範圍、權限責任、可觀測性和回復能力驗證。

下次檢視自動部署流程時,列出每個「繼續/暫停」決策,標明資訊來源、決策 owner、跨服務約束和失聯時的行為。前篇以 benchmark 條件限制效能結論談證據能走多遠;本篇則追問資訊應在哪裡轉成行動。另可回看亞里斯多德的例外責任設計與共享資源的共同治理。

延伸閱讀

  • Friedrich A. Hayek, “The Use of Knowledge in Society,” American Economic Review 35(4) (1945), pp. 519–530. American Economic Association PDF
  • Samuel Bowles, Alan Kirman, and Rajiv Sethi, “Retrospectives: Friedrich Hayek and the Market Algorithm,” Journal of Economic Perspectives 31(3) (2017), pp. 215–230. American Economic Association