鎖定成本

2019 年 3 月 5 日

在我最近的客戶參與中,我預見無伺服器架構是一個完美的契合。然而,採用無伺服器架構的想法並未受到我們客戶的歡迎,因為他們擔心供應商鎖定。對零售商來說,這是一個有趣的時機,因為留在 AWS 可能意味著亞馬遜作為另一家零售業務,將獲得競爭優勢。基於不支援競爭對手的想法,我的客戶有興趣確保我們選擇的解決方案可以完全移植到其他雲端供應商。

從技術角度來看,確保我們有能力將系統從一個平台移轉到另一個平台絕對是理想的。隨著容器化的出現,為什麼有人會想要被鎖定在特定平台上?當我們決定移轉到另一個平台時,高鎖定成本並非我們希望向業務展示的。因此,我們需要確保在這種情況發生時,移轉成本盡可能低。如果我要根據我們目前的理解為鎖定成本制定一個簡單的公式,它看起來會像這樣

鎖定成本 = 移轉成本 (?)

當我們僅從技術角度來看時,這個公式是正確的。然而,不應忽視業務觀點。請記住,我們提供的技術解決方案總是旨在解決業務問題。大多數時候,當採用特定技術時,企業會獲得好處。其中一個顯著的好處是縮短上市時間。縮短上市時間可以轉化為機會收益

鎖定成本 = 移轉成本 - 機會收益

機會收益非常難以衡量,因為你正在處理未知的未知數。移轉成本可以分析和推理。相比之下,機會收益並不容易分析。你可以理論化並分析如何從一個平台移轉到另一個平台,但是你如何計算奪取競爭對手市場機會的收益?透過從整體觀點審視你的決策制定過程,結合技術和業務觀點,你做出的鎖定決策可能會產生利潤。

讓我們來看看建構事件驅動架構的範例。您需要在架構中選擇一個分散式訊息系統。如果您已經選擇 AWS 作為您的平台,您將有供應商特定服務的選項,例如 Kinesis。這些服務是完全受控的,您可以在短時間內讓它執行,因此讓您有機會獲利。與 Kafka 等供應商非特定系統相比,這些供應商特定服務會產生較高的遷移成本。然而,設定您自己的分散式訊息系統需要更多時間才能強化,並讓它準備好生產,特別是當您在建構此類平台方面尚未有經驗時。不要只從遷移成本來看您的決定,請專注於如何透過讓您的系統更具適應性來降低遷移成本。特別是在這個使用雲端的範例中,這是一個與我們建議避免通用雲端使用做法的原因類似。

致謝

感謝 Chris Ford、Matt Newman、Luciano Ramalho、Tobias Vogel、Zhamak Dehghani、Kitson Kelly 和 Peter Gillard-Moss 提供他們的意見。

特別感謝 Martin Fowler,感謝他對內容的支持、建議和花費的時間,以及在出版方面的協助。