編者按 1d ago

線性壟斷的代價

我們圍繞著直線建立了一個文明。不幸的是,現實從來沒有同意遵循這些直線。

AV Alex VidenovGuest column. The facts are sourced where linked; the conclusions are the author's.
Illustration: AI-generated for Fact Refinery

人類非常擅長將複雜性簡化。我們把時間劃分為行程表,把知識劃分為學科,把組織劃分為部門,把流程劃分為可預測的序列。

這種能力幫助我們建立了現代文明。但在某個時刻,我們開始把簡化後的模型與現實本身混淆了。

宇宙不會執行甘特圖。網路不會等待一個操作完成後才開始另一個。金融市場不理會組織邊界,而複雜系統很少按照預定的序列運作。

然而,我們的許多基礎設施、教育、管理和軟體工程仍然圍繞著這個假設來組織。

我們稱之為線性壟斷。

當線性思維遇上平行現實

考慮一個相對簡單的系統,有十個組件,每個組件可以有三種狀態:在線、降級或離線。

這會產生 3^10 = 59,049 種可能的組合。

如果有二十個組件,這個數字會超過 34 億。

加上網路延遲、並行性、不可預測的人類行為和共享相依性,可能互動的數量會變得非常龐大。

並非每一種組合都是可達到的或危險的。但獨立地理解每個組件,對於整個系統會如何運作,告訴我們的資訊少得驚人。

資料庫操作成功。網路請求成功。身份驗證檢查成功。然而在特定的時間和狀態組合下,整個操作失敗了。

一個系統可以在局部是正確的,但在全域是錯誤的。

這就是線性壟斷的根本弱點:假設正確執行個別步驟就能保證整體結果正確。

隱藏的成本

我們到處都遇到這種矛盾。

  • 軟體工程:應用程式在測試期間運作完美,但在意外的並行性、時間或資源競爭下失敗。競爭條件暴露出順序推理所忽略的互動。
  • 基礎設施:集中式架構簡化了控制,但可能透過共享相依性放大故障。當原本應該獨立的組件依賴相同的脆弱基礎時,冗餘就沒有意義。
  • 風險管理:組織單獨評估威脅,而現實世界的風險會互動、複合,並透過相互連接的系統傳播。
  • 企業管理:專案被表示為可預測的序列,即使其結果取決於不斷變化的人員、資源、市場和外部事件網路。

根本的錯誤是一致的:我們優化孤立的組件,卻低估了它們之間的關係。

局部最佳化並不等於全域韌性。

超越直線

打破線性壟斷並不意味著放棄順序流程。它意味著認識到它們的局限性。

分散式架構、參與者模型、形式化驗證和系統思維提供了推理複雜性的方法,而不是隱藏它。

但還有一個同樣重要的觀點轉變。

我們必須停止混淆系統被指示要做的事與實際發生的事。

發送文件並不能證明已送達。送達並不能證明它被打開。打開並不能證明理解。而資料庫記錄並不會自動構成可信的證據。

在分散式環境中,事件發生在不同的裝置、網路和獨立運作的系統上。要建立它們之間的關係,需要的不只是一連串方便的綠色勾號。

它需要可驗證的證據。

簡化的真正代價

線性思維永遠是必要的。沒有抽象,我們既無法理解也無法管理我們周圍的世界。

當抽象變成教條時,危險就開始了。

現代系統不僅僅是組件的集合。它們的行為是從互動、相依性、時間和不斷變化的條件中湧現出來的。

安全不能簡化為一份清單。韌性不能僅靠讓個別組件可靠來實現。信任不能僅靠宣稱某個流程已完成來建立。

我們需要的系統,不僅要能執行指令,還要能處理不確定性、保存證據,並在事件發展與預期不同時仍然可靠。

可靠技術的未來,不會由系統多麼完美地遵循預期序列來定義,而是由它們如何處理序列之外發生的一切來定義。

Alex Videnov wrote this guest column. It first appeared on GCN.ONE. Corrections →
有帮助吗?

💬 评论

📜 评论政策