云計算和開源時代的鎖定
我們喜歡討論鎖定問題。什么是供應商鎖定?還有其他類型的鎖定嗎?云能保護你不被鎖定嗎?開源解決方案能否帶來鎖定?
答案是:視情況而定。
每一項技術選擇都是一場零和博弈。學習和部署一種技術所花費的資源,不能用于另一種技術。但鎖定是不同的。
客戶喜歡談論鎖定,因為顧客喜歡談論它,所以供應商也喜歡談論它。好吧,讓我們來討論一下供應商鎖定!
開始
從歷史上看,所有技術都是專有的,所以技術選擇就是供應商選擇,供應商選擇就是技術選擇。你有兩個選擇,一個是自己開發技術,另一個是以許可成本從供應商那里購買技術。
一旦你承擔了許可費用,你就有一個風險,那就是這項技術可能無法正常工作。如果你想換一種不同的技術,可以,但必須支付新供應商的新許可費用以及采用新技術的費用。采用新技術的成本有三個組成部分:許可成本(CapEx)、采用成本(CapEx)和維護成本(OpEx)。
對于大多數專有軟件,一旦用戶購買了許可,他們就可以繼續永久使用它,只要他們能夠忍受缺乏安全更新等情況。
但一些專有許可要嚴厲得多。對于限制最嚴格的專有軟件,沒有許可就無法繼續使用。有些情況下,專有技術的用戶每年都必須為使用該技術的許可付費。
這些成本導致買家采取極端保守的行為。在購買軟件許可之前,客戶確實希望確保該軟件按聲明的方式工作。在技術選擇或供應商選擇上的任何錯誤都可能極其昂貴,因此買家可以使用白皮書、咨詢書面客戶推薦信、與其他買家交談、咨詢Gartner或IDC等分析師以及閱讀貿易雜志來核實潛在的購買。在這個時代,征求建議書(RFP)的概念變得流行起來,迫使供應商在買家承諾購買軟件之前盡可能多地披露信息。
由于許可和技術采用的前期成本比維護成本更高,人們自然傾向于在很長時間內使用相同的技術堆棧并抵制更改。
開源的方式
隨著開源軟件的出現,軟件許可成本減少。有了開源,采用和學習新技術仍有成本,但還有另一個隱藏的優勢。
有了開源軟件,供應商無法鎖定買家。買方保留在任何給定時間選擇不同供應商的權利。即使只有一家供應商銷售對特定開源代碼的支持,買家仍然有選擇。買家可以吸引另一個供應商支持它,自己支持它,支付顧問支持它,甚至在沒有支持的情況下運行它。原始供應商沒有能力強迫買方繼續保持財務關系。從供應商鎖定的角度來看,這改變了游戲規則。
實際上,開源切斷了技術選擇和供應商選擇的聯系。你采用哪種技術以及你選擇從誰那里采用它可能是兩個完全不同的選擇。此外,這些選擇有明顯不同的風險和回報。
最快的采用方式
最近,人們似乎已經忘記了供應商鎖定的歷史。他們不記得這一切是怎么開始的,所以有一種看法認為,幾乎任何令人討厭的技術采用都是鎖定的。并不是。
開源技術仍然存在采用成本,這會產生重力,但重力和鎖定是兩個截然不同的概念。做任何選擇都有重力。做出技術選擇更是如此。但重力并不能阻止你在犯錯時放棄決定。采用成本本身并不是固定不變的。
例如,假設你做出技術決策,使用開源項目來解決數據存儲問題。在項目進行到一半時,你意識到這項技術無法滿足你的需求,所以你必須找到一種替代的開源技術,投入時間學習和部署它,并在采用這個新項目時承擔另一個風險。
這不是鎖定。
鎖定是一件更可怕的事情。鎖定是指只有一家供應商可以提供你采用的技術解決方案。供應商鎖定是指你想保留技術,但擺脫供應商時碰到的。供應商鎖定指的是,如果你不支付新的許可費用或維護費用,明年甚至無法使用該技術。
即使在2021,有時買方也無法避免供應商鎖定。有時,專有解決方案確實是解決問題的唯一可行方案,在這些情況下,供應商鎖定是必要的。但是,在這些情況下,筆者建議使用所有發明的流程來處理這些問題:RFP、分析師、客戶參考等。
開源已經改變了IT基礎設施和網絡,但在制造業等許多行業,供應商鎖定仍然是供應商和買家之間的默認關系。
去云端應該能解決所有問題
云可以分為三層:基礎設施即服務(IaaS)、平臺即服務(PaaS)和軟件即服務(SaaS)。雖然IaaS可以被認為是在云中租用硬件,但PaaS和SaaS需要以完全不同的方式來考慮(硬件1.0和硬件2.0)。在IaaS的服務之間進行遷移相對簡單,買家可以很好地避免被供應商鎖定。更高層次的服務,沒有那么多。云提供商是否真的會在軟件世界中獲勝還有待觀察,但他們肯定會像最初的硬件供應商一樣,不斷攀升,因為他們想為客戶提供更粘人的解決方案。讓我們從供應商鎖定的角度來探討這些較低級別和較高級別服務之間的差異。
通過筆者所說的硬件2.0,服務器、網絡和存儲在云中租用,并通過API進行配置。從一家云提供商遷移虛擬機的轉換成本相當于學習一種新的資源調配API。Ansible和Terraform等工具為買家提供了一個API,可以在每個云提供商的底層API之間進行轉換,從而進一步降低了這些成本。如果架構設計良好,買家只需對配置文件進行一些更改,就可以在云提供商之間移動(盡管存儲仍然有重力)。
這給我們帶來了與采用開源軟件相當的成本。當然,有采用費,但沒有許可費。你從每一家云服務提供商那里得到的最終產品在功能上幾乎相當。對于特定于硬件的東西,比如Arm/x86/Power、GPU等,有一些區別,但這是正常的區別,與硬件供應商多年來所做的類似。
但服務是不同的。Amazon Kinesis、DynamoDB、ElastiCache、Simple Queue Services、TimeStream、OpenSearch、Lambda等云服務,甚至Azure DevOps Pipelines、GitHub Actions和AWS Image Builder等云服務都與租用虛擬機完全不同。
這些服務,尤其是部署單個應用程序通常需要的這些服務的復雜組合,只能從一個供應商處獲得。更糟糕的是,云服務類似于最嚴厲的專有許可。如果不向云提供商付費,你甚至不能使用它們。通過高級專有服務的復雜組合部署,我們將供應商選擇和技術選擇結合在一起。甚至還有一種重構成本,類似于過去專有軟件的許可成本。
總之,這組復雜的服務相當于經典的供應商鎖定。如果你想把技術選擇和供應商選擇這樣內在地聯系起來,筆者鼓勵你找律師、咨詢分析師,并與其他客戶真正做好準備。
許可的問題
這場辯論是在AWS和Redis等供應商之間的爭斗中公開進行的。盡管Redis已經更改了許可,但仍在使用的許可保護了買家。如果你對Redis感到憤怒,你可以自己運行它,也可以付費咨詢公司為你運行它。
另一個容易被忽略的細節是,有了Redis,買家仍然可以自由構建一流的解決方案。他們可以決定從戴爾購買服務器,從紅帽購買操作系統,從Redis購買數據解決方案。或者,如果他們對戴爾、紅帽和Redis感到憤怒,他們可以從谷歌租一臺虛擬機,使用SUSE Linux,并支付咨詢費來管理Redis層。或者,他們可以在本地使用VMware,使用Ubuntu服務器,雇傭程序員來維護Redis 50年。
鐘擺是否會從云向另一個方向擺動?或者,云供應商是否真的在走之前硬件供應商的路,并將被緊隨其后的開源軟件初創公司所取代?
選擇的悖論
錯誤的技術選擇和供應商鎖定是任何采用技術的人都需要了解的兩種截然不同的風險,但它們不是一回事。糟糕的技術選擇是進門的風險,供應商鎖定是走出門的風險。
如果你正在迅速采用技術,試圖通過冒險獲得回報,你會做出一些糟糕的技術選擇。糟糕的技術選擇是一項核心競爭力——快速失敗。你會在這些錯誤的選擇中生存下來,從中學習,并在做出新的選擇時變得更好。這是對軟件驅動公司所需核心競爭力的戰略投資。
糟糕的供應商鎖定選擇不是一項戰略投資。由于絕大多數創新都來自開源,因此采用將你鎖定在單一供應商的技術幾乎沒有風險或回報。