毫無(wú)疑問(wèn),組織因可能會(huì)被他們的云服務(wù)供應(yīng)商鎖定而倍感擔(dān)憂。畢竟縱覽 IT 歷史,供應(yīng)商倚仗高昂的轉(zhuǎn)換成本實(shí)施限制性許可條款并提高價(jià)格的例子屢見(jiàn)不鮮。但是我認(rèn)為云計(jì)算是不同的——事實(shí)上,它正在使軟件、硬件和 IT 服務(wù)供應(yīng)商越來(lái)越難以利用他們過(guò)去所擁有的優(yōu)勢(shì)。
這是一個(gè)敏感的話題,作為一名 AWS 的員工,我認(rèn)為很多關(guān)于供應(yīng)商鎖定的討論都偏離了主題。因此我希望能夠通過(guò)闡述我在加入 AWS 之前擔(dān)任 CIO 時(shí)的感觸,來(lái)引發(fā)大家對(duì)這一話題的重新思考。
為什么上云?
首先,我非常清楚自己為什么要向云計(jì)算遷移——無(wú)疑是為了提升速度。我們研發(fā)新 IT 功能的時(shí)間過(guò)于漫長(zhǎng),轉(zhuǎn)型不僅是要向云計(jì)算遷移,同時(shí)還將通過(guò) DevOps、通過(guò)簡(jiǎn)化治理和監(jiān)督流程、創(chuàng)建可重復(fù)使用且能快速重組以開(kāi)發(fā)新功能的微服務(wù)來(lái)縮短前置時(shí)間。作為美國(guó)公民及移民服務(wù)局(USCIS)的 CIO,我知道移民政策隨時(shí)可能發(fā)生重大變化,而當(dāng)這些變化發(fā)生時(shí),漫長(zhǎng)的研發(fā)時(shí)間將是不被接受的。我們有理由相信云計(jì)算將顯著降低我們的成本(最終削減了 75% 的基礎(chǔ)架構(gòu)成本),但速度是我首先考慮的要素。
我面臨的難題
員工技能組合是當(dāng)時(shí)面臨的巨大障礙之一。他們中的大多數(shù)人從來(lái)沒(méi)有在云環(huán)境中工作過(guò),而且在 DevOps 和微服務(wù)方面也是新手。
第二個(gè)障礙則是我們的采購(gòu)流程——在完成所有法務(wù)工作和供應(yīng)商選擇流程的情況下,采購(gòu)一項(xiàng)服務(wù)需要耗費(fèi)我們 6 個(gè)月到 3 年的時(shí)間。
另外,還有一個(gè)文化上的障礙 (實(shí)際上還有很多),那就是我們的“例外主義文化” (culture of exceptionalism)——我們政府的 IT 需求十分特殊,因而我們不得不采取與行業(yè)公認(rèn)首選實(shí)踐不同的做法。
為什么放棄多云?
當(dāng)我考慮為基礎(chǔ)架構(gòu)和平臺(tái)使用多個(gè)云供應(yīng)商時(shí),我很快就放棄了這個(gè)想法。我擔(dān)心這會(huì)減緩我們的轉(zhuǎn)型速度,而速度對(duì)我來(lái)說(shuō)是首要的因素。構(gòu)建部署到多云的系統(tǒng)將會(huì)耗費(fèi)我們的時(shí)間,即使是使用容器和與云無(wú)關(guān)的工具。由于我一直在督促我的團(tuán)隊(duì)學(xué)習(xí)如何用基礎(chǔ)架構(gòu)作為代碼,我不希望在不同云中管理基礎(chǔ)架構(gòu)的復(fù)雜性會(huì)降低他們的速度。
使用多云方法還使我無(wú)法使用特定于某個(gè)云供應(yīng)商的服務(wù),而這些服務(wù)原本可能會(huì)加快我們的速度。
另外,技能也是一個(gè)問(wèn)題,我不希望員工花時(shí)間去學(xué)習(xí)不同的云平臺(tái)和跨云兼容性。
最后,為了克服我們的“特殊需求”文化,我希望我的員工從其他組織所使用的簡(jiǎn)單且直接的方法開(kāi)始。
綜合所有這些原因,我知道投注于多個(gè)云供應(yīng)商將在我實(shí)現(xiàn)目標(biāo)的過(guò)程中產(chǎn)生巨大成本。接下來(lái),我要考慮的是選擇單一云供應(yīng)商的風(fēng)險(xiǎn),以及找到減輕這些風(fēng)險(xiǎn)的方法。
從 “鎖定” 到轉(zhuǎn)換成本
我的思路是這樣的:“鎖定”這個(gè)詞具有誤導(dǎo)性,我們真正討論的應(yīng)該是轉(zhuǎn)換成本。轉(zhuǎn)換成本一直存在于整個(gè) IT 歷史中。一旦您開(kāi)始采用某個(gè)平臺(tái)或供應(yīng)商,那么當(dāng)您之后決定更改時(shí)就會(huì)產(chǎn)生轉(zhuǎn)換成本。
如果選擇 Java,然后遷移到 Node.js,那么您將面臨成本問(wèn)題;如果選擇 Maven,然后遷移到 Gradle,同樣也將面臨成本問(wèn)題;如果您決定使用大型機(jī),然后遷移至水平可擴(kuò)展的商用硬件,那么您也需要面臨一定的成本。在這些情況下,您實(shí)際上并沒(méi)有被“鎖定”——只是產(chǎn)生了轉(zhuǎn)換成本。它有可能是大成本,也可能是小成本,這都取決于具體情況。
當(dāng)我們?cè)谧鰶Q定的時(shí)候,總是把這些成本考慮進(jìn)去,至少是隱含在內(nèi)的。比如,我們通常不會(huì)在兩個(gè)不同的云平臺(tái)上構(gòu)建同樣的應(yīng)用來(lái)避免被某個(gè)供應(yīng)商鎖定,因?yàn)槲覀兿嘈艦橥粋€(gè)應(yīng)用采用兩個(gè)可替代的數(shù)據(jù)庫(kù)將導(dǎo)致成本超過(guò)風(fēng)險(xiǎn)管理帶來(lái)的好處。
因此我問(wèn)自己:
1. 如果我需要退出 AWS,轉(zhuǎn)換成本會(huì)是多少?
2. 發(fā)生這種情況的可能性有多大?
3. 如何在符合成本效益的情況下降低風(fēng)險(xiǎn)?
使用云服務(wù),您可以按需付費(fèi) (只有少數(shù)例外,比如預(yù)留實(shí)例),所以當(dāng)您決定更換供應(yīng)商時(shí)不會(huì)產(chǎn)生遺留費(fèi)用。我認(rèn)為在我們的情況下,做一些使應(yīng)用多云化的前期工作是沒(méi)有意義的;正如我之前所說(shuō),這將產(chǎn)生非常巨大的成本,并且我認(rèn)為自己離開(kāi) AWS 的可能性并不高。相反,如果因?yàn)槟撤N原因我們決定離開(kāi) AWS,我會(huì)接受隨之產(chǎn)生的轉(zhuǎn)換成本,并努力減輕它。
降低高額轉(zhuǎn)換成本風(fēng)險(xiǎn)
我們考慮降低高額轉(zhuǎn)換成本風(fēng)險(xiǎn)的第一個(gè)領(lǐng)域是架構(gòu)。我們?cè)褂?Docker 容器以期它可以部署在任何地方,也曾構(gòu)建微服務(wù),其中一部分原因是希望由此能將一些服務(wù)放在一個(gè)平臺(tái)上,并將其他服務(wù)放在另外的平臺(tái)上。我們還知道,可以將因變化而產(chǎn)生的“波及范圍”減小到單個(gè)微服務(wù),并且在我們需要大規(guī)模變化時(shí)對(duì)每個(gè)變更進(jìn)行單獨(dú)測(cè)試。我們積極地將服務(wù)進(jìn)行松散耦合,特別是在使用 AWS 特有的服務(wù)時(shí)——事實(shí)上,我們?yōu)槊總€(gè) AWS 服務(wù)構(gòu)建了一個(gè)外觀模式以便我們盡可能透明地對(duì)其進(jìn)行更換。
有一件事雖然我們還沒(méi)有做,但您或許可以進(jìn)行考慮——制定一個(gè)撤銷計(jì)劃或“可逆性”計(jì)劃。根據(jù)您所感知到的風(fēng)險(xiǎn)級(jí)別,您可以或多或少地制定計(jì)劃細(xì)節(jié)。在這個(gè)計(jì)劃中,您可以詳細(xì)地列出離開(kāi) AWS 而產(chǎn)生的主要轉(zhuǎn)換成本是什么,以及您將采取哪些步驟來(lái)管理這些成本。您還可以為如何進(jìn)行這項(xiàng)工作制定一個(gè)高級(jí)項(xiàng)目計(jì)劃,并估算成本。有了這樣的計(jì)劃,您就可以在使用一個(gè)供應(yīng)商時(shí)對(duì)所面臨的風(fēng)險(xiǎn)做出明智決策。
正如我所提到的,云計(jì)算、DevOps 和其他現(xiàn)代化開(kāi)發(fā)正在瓦解傳統(tǒng)供應(yīng)商對(duì)您的控制。如果您正在做我所描述的事情——松散耦合、創(chuàng)建外觀、使用容器等等,那么您不僅能更輕松地更換云供應(yīng)商,還能輕松更換任何類型平臺(tái)的供應(yīng)商。當(dāng)您考量開(kāi)源的影響、由開(kāi)發(fā)自定義解決方案而產(chǎn)生的成本降低,以及更重要的一點(diǎn)——基于“按需付費(fèi)”可被替代的 AWS 產(chǎn)品 (例如 Amazon Relational Database Service、Amazon DynamoDB 和 Amazon Aurora),您所面臨的風(fēng)險(xiǎn) (也就是說(shuō),您的潛在轉(zhuǎn)換成本以及您想要進(jìn)行轉(zhuǎn)換的可能性)會(huì)迅速下降。而這不僅僅關(guān)乎于風(fēng)險(xiǎn),由于供應(yīng)商不得不圍繞您的業(yè)務(wù)展開(kāi)競(jìng)爭(zhēng),您也將從其帶來(lái)的創(chuàng)新中受益。
別忘了,我還是 AWS 企業(yè)戰(zhàn)略專家
拋開(kāi)作為 CIO 的決策過(guò)程,接下來(lái)我們從 AWS 企業(yè)戰(zhàn)略專家的角度談一談。
當(dāng)您評(píng)估使用 AWS 的風(fēng)險(xiǎn)時(shí),請(qǐng)考慮到我們正有意地基于 Xen、SQL 和 Linux 等開(kāi)放標(biāo)準(zhǔn)來(lái)構(gòu)建我們的云平臺(tái),同時(shí)我們加入到了越來(lái)越多的開(kāi)源項(xiàng)目中。目前,我們已經(jīng)降價(jià) 67 次,主要是因?yàn)椴淮嬖诟?jìng)爭(zhēng)壓力。
我們幫助您遷移到 AWS 的工具也可以反過(guò)來(lái)幫助您從 AWS 中遷移出來(lái)。如果您選擇離開(kāi) AWS,我們已經(jīng)盡力使該過(guò)程盡可能簡(jiǎn)單。坦率地說(shuō),從商業(yè)角度來(lái)看這是有道理的,因?yàn)榻档团c我們合作的風(fēng)險(xiǎn)也符合我們的利益。
我們的創(chuàng)新步伐應(yīng)該會(huì)讓您感到放心,因?yàn)槲覀兇蛩憷^續(xù)贏得您的業(yè)務(wù),與此同時(shí)還清楚地認(rèn)識(shí)到,只要您愿意,您便可以轉(zhuǎn)移到另一個(gè)云供應(yīng)商。我們 90% 到 95% 的路線圖都是由客戶期待來(lái)驅(qū)動(dòng)的。AWS 開(kāi)創(chuàng)了云計(jì)算,也將繼續(xù)推動(dòng)云計(jì)算的發(fā)展。
我的一些建議
最后,作為一名企業(yè)戰(zhàn)略專家,我想提出以下建議。
首先,如果您認(rèn)為使用單個(gè)供應(yīng)商的風(fēng)險(xiǎn)大于使用多個(gè)供應(yīng)商的成本,那么一定要與多個(gè)供應(yīng)商合作。在這種情況下,我建議您通過(guò)將一些工作負(fù)載放在一個(gè)云中,將其他工作負(fù)載放在另外的云中來(lái)降低決策成本,而不是試圖將單個(gè)工作負(fù)載部署到多個(gè)云中。
如果您同意我的理論并決定使用單個(gè)供應(yīng)商,我建議您通過(guò)良好的架構(gòu)、標(biāo)準(zhǔn)部署實(shí)踐和些許預(yù)先計(jì)劃來(lái)降低潛在的轉(zhuǎn)換成本。
當(dāng)您較之一個(gè)平臺(tái)選擇了另一個(gè)平臺(tái)時(shí),就會(huì)產(chǎn)生轉(zhuǎn)換成本,而這種情況一直都有。其實(shí)并沒(méi)有所謂的“鎖定”,除非您簽署了同意合同。但轉(zhuǎn)換成本可能高昂,也可能低廉。通過(guò)良好的設(shè)計(jì)和一些先進(jìn)的思想,您可以降低轉(zhuǎn)換成本 (通過(guò)傳統(tǒng)軟件或云供應(yīng)商)。比起通過(guò)承擔(dān)速度減緩和更高的成本 (轉(zhuǎn)向多云)來(lái)預(yù)先支付這些轉(zhuǎn)換成本,您也許更希望降低潛在的轉(zhuǎn)換成本,并看看您的供應(yīng)商是否能繼續(xù)為您提供良好的服務(wù)。
CIO介紹
Mark Schwartz
Mark Schwartz 是 AWS 企業(yè)戰(zhàn)略專家,前美國(guó)公民及移民服務(wù)局 CIO,玩世不恭的創(chuàng)意制造者,深諳世情的散文作家,同時(shí)也是大大小小的公共、私人和非營(yíng)利性組織的 IT 領(lǐng)導(dǎo)者。
(原標(biāo)題:CIO 必看!一個(gè) AWS 企業(yè)戰(zhàn)略專家的“肺腑之言”)