多云VS天空計(jì)算,企業(yè)應(yīng)如何選擇云計(jì)算戰(zhàn)略?
如何使用云計(jì)算將是企業(yè)的應(yīng)用程序戰(zhàn)略架構(gòu)和規(guī)劃中的一個(gè)重大決定,而多云正日益成為云架構(gòu)師構(gòu)建高端、以云為中心的企業(yè)應(yīng)用程序的流行選擇。如果已經(jīng)決定了多云策略,則必須確定哪種類型的多云策略最適合自己的應(yīng)用程序。這個(gè)決定可能不像想象中那么明確。
1. 多云策略的類型
一般來說,多云是一種使用多個(gè)云提供商部署單個(gè)應(yīng)用程序的策略。例如,如圖所示,一個(gè)應(yīng)用程序可以同時(shí)部署到 Amazon Web Services (AWS) 和 Google Cloud Platform (GCP),并利用這兩組云服務(wù)。
圖1 部署到多個(gè)云提供商的應(yīng)用程序
但是使用每個(gè)云提供商的應(yīng)用程序是為了什么?這取決于使用多個(gè)提供商的決定是如何做出的。為什么要跨多個(gè)云提供商部署應(yīng)用程序?
通常,沒有做出正式?jīng)Q定,使用多云的選擇是偶然發(fā)生的。這在剛接觸云或缺乏云技術(shù)的公司中尤其常見。例如,一組工程師決定使用 AWS 服務(wù),例如 Amazon S3。另一組在另一天決定使用 GCP 服務(wù)。服務(wù)團(tuán)隊(duì)可能會(huì)決定他們需要在另一個(gè)云提供商的服務(wù)中部署服務(wù)能力,不同的團(tuán)隊(duì)可能會(huì)做出不同的決定。
雖然使用多個(gè)云提供商確實(shí)有優(yōu)勢(shì),但很少像這樣隨機(jī)或隨意使用它們。然而,這卻是一種常見的模式。
2. 使用 polycloud 進(jìn)行云專業(yè)化
幸運(yùn)的是,企業(yè)通常是有計(jì)劃地使用多云。
隨著云的成熟,云提供商正在創(chuàng)建更復(fù)雜的服務(wù)。這些服務(wù)是專門的,旨在與其他云提供商提供的同等服務(wù)競(jìng)爭(zhēng)。
每個(gè)云提供商都有自己的專長,而且他們?cè)谶@些領(lǐng)域提供的服務(wù)通常比其他云提供商的同等服務(wù)更好。根據(jù)要使用的服務(wù),該服務(wù)的最佳版本可能因云提供商而異:
- Microsoft Azure 專門提供 Windows Server 操作系統(tǒng)。
- Microsoft、Google 和 AWS 都擁有出色的人工智能 (AI) 和機(jī)器學(xué)習(xí) (ML) 服務(wù)。
- AWS 擁有同類最佳的對(duì)象存儲(chǔ)服務(wù),價(jià)格低廉且支持超大型數(shù)據(jù)集 (S3)。
- Azure 提供了高質(zhì)量和高度集成的開發(fā)工具。
- GCP 專門從事 Kubernetes 服務(wù)部署。
- AWS 專注于無服務(wù)器功能。
最終結(jié)果是為了使用最好的云服務(wù)——一個(gè)應(yīng)用程序可以跨越多個(gè)云環(huán)境。應(yīng)用程序可能使用 Amazon S3 進(jìn)行對(duì)象存儲(chǔ),使用 Amazon DynamoDB 進(jìn)行數(shù)據(jù)庫,使用 GCP 進(jìn)行 Kubernetes 集群管理,使用 Azure 管理 Microsoft Windows Server 實(shí)例,最后依賴 Google 的 AI 功能。
當(dāng)單個(gè)應(yīng)用程序使用多個(gè)云提供商時(shí),每個(gè)云提供商都有專門的服務(wù)需求,我們稱之為polycloud。使用每個(gè)云提供商是因?yàn)槠渚哂信c應(yīng)用程序的特定需求相匹配的特定優(yōu)勢(shì)。上述多云場(chǎng)景如圖 2 所示。
圖 2 Polycloud 部署
3. 具有天空計(jì)算的通用云
使用多個(gè)云提供商的另一個(gè)常見原因是冗余。在這種情況下,使用多個(gè)云的決定不是隨意做出的,而是戰(zhàn)略性的。我們的想法是,如果一個(gè)云提供商出現(xiàn)故障,擁有第二個(gè)可用的云提供商將使我們的服務(wù)繼續(xù)運(yùn)行。
這種方法的一個(gè)問題是,企業(yè)需要確保其應(yīng)用程序無需修改即可在其使用的每個(gè)云上運(yùn)行。應(yīng)用程序的所有部分都必須能夠在每個(gè)云提供商上運(yùn)行。這是因?yàn)榧榷繕?biāo)——使用一個(gè)云提供商作為另一個(gè)云提供商故障的備份——只有在應(yīng)用程序可以相對(duì)容易地從一個(gè)提供商轉(zhuǎn)移到另一個(gè)提供商的情況下才有效。
這可能會(huì)產(chǎn)生問題,因?yàn)槊總€(gè)云提供商對(duì)其應(yīng)用程序都有不同的接口。企業(yè)需要在應(yīng)用程序的每個(gè)部分支持這些不同的接口中的每一個(gè),并且企業(yè)技術(shù)團(tuán)隊(duì)必須進(jìn)行測(cè)試以確保這些不同的接口在所有組合中都能正常工作。
在這種情況下,一種解決方案是一種越來越流行的新云模型:天空計(jì)算。天空計(jì)算試圖將通用 API 層置于多個(gè)云提供商之上。然后企業(yè)構(gòu)建其應(yīng)用程序以使用此通用 API。因?yàn)橥ㄓ?API 對(duì)所有云提供商都是等效的,所以理論上將應(yīng)用程序從提供商轉(zhuǎn)移到提供商要容易得多,尤其是在緊急情況下,例如在提供商故障期間。
圖 3 使用天空計(jì)算的應(yīng)用程序
上圖顯示了工作原理。此圖類似于圖 1 中的多云,但包括應(yīng)用程序和每個(gè)云提供商提供的特定云服務(wù)之間的通用 API。通用天空 API為應(yīng)用程序提供一組通用功能,這些功能在每個(gè)云提供商上單獨(dú)實(shí)現(xiàn)。天空 API 本身是特定于云的,但應(yīng)用程序的其余部分仍然與云無關(guān)。
4. 多云VS天空計(jì)算
多云和天空計(jì)算都是管理多云部署復(fù)雜性的策略。哪個(gè)方案更好?
Polycloud 最擅長利用每個(gè)單獨(dú)的云提供商的優(yōu)勢(shì)。由于每個(gè)云提供商都是根據(jù)其在特定云專業(yè)領(lǐng)域的實(shí)力來選擇的,因此企業(yè)可以在應(yīng)用程序中充分利用每個(gè)提供商的優(yōu)勢(shì)。這也鼓勵(lì)與每個(gè)提供商提供的云工具和功能進(jìn)行更深入的集成。更深入的集成意味著更好的云利用率和更高效的應(yīng)用程序。
然而,Polycloud 是有代價(jià)的。整個(gè)企業(yè)以及企業(yè)內(nèi)的每個(gè)開發(fā)和運(yùn)營人員都需要更深入地了解每個(gè)正在使用的云提供商。由于應(yīng)用程序使用來自多個(gè)提供商的專業(yè)服務(wù),因此應(yīng)用程序開發(fā)人員需要了解所有云提供商的工具和功能。
天空計(jì)算減輕了應(yīng)用程序開發(fā)人員的這種知識(shí)負(fù)擔(dān)。企業(yè)中的大多數(shù)開發(fā)人員只需要了解和理解天空 API 以及相關(guān)的工具和流程。他們可以避免對(duì)每個(gè)云提供商的細(xì)節(jié)進(jìn)行深入的了解。需要了解每個(gè)云提供商如何運(yùn)作的專業(yè)知識(shí)的員工數(shù)量將大幅減少。
缺點(diǎn)是天空計(jì)算不鼓勵(lì)與給定的云提供商深度集成。天空 API 最終成為“最小公分母”云解決方案,因?yàn)橹挥兴性铺峁┥烫峁┑墓δ茉诮缑嬷锌梢?。這意味著無法獲得更深層次的集成所帶來的優(yōu)勢(shì)。云最終變得更像是一種商品,而不是一種創(chuàng)新工具。
在實(shí)踐中,天空 API 并不能完全消除個(gè)別開發(fā)人員所需的特定于云的理解。毫無疑問,當(dāng)深入診斷和調(diào)試周期,試圖解決基于云的應(yīng)用程序的問題時(shí),缺乏底層云平臺(tái)知識(shí)的開發(fā)人員將處于劣勢(shì)。實(shí)際上,開發(fā)人員會(huì)發(fā)現(xiàn)他們需要多個(gè)云提供商的詳細(xì)知識(shí)。
5. 單一云是真正的最佳答案嗎?
本文是假設(shè)企業(yè)已經(jīng)決定遷移到多云環(huán)境。如果企業(yè)管理者還沒有做出這個(gè)決定,那么建議管理人員考慮其選擇。是否真的需要多云環(huán)境,還是選擇單一云提供商對(duì)企業(yè)來說是更好的選擇?
無論采用何種多云策略,在多云環(huán)境中運(yùn)行應(yīng)用程序都比在單一云環(huán)境中運(yùn)行更復(fù)雜,因此風(fēng)險(xiǎn)也更大。此外,還有與多云環(huán)境相關(guān)的額外成本,例如跨云數(shù)據(jù)傳輸費(fèi)用。
企業(yè)應(yīng)首先考慮一下為什么對(duì)多云環(huán)境感興趣。
是因?yàn)椴恍湃螁蝹€(gè)云提供商的可靠性嗎?多云似乎可以通過添加冗余來提高其整體耐用性,但企業(yè)可以添加適當(dāng)?shù)娜哂喽鵁o需添加云提供商。
是出于經(jīng)濟(jì)原因嗎?在大多數(shù)情況下,多云部署比單云部署成本更高。
是因?yàn)閾碛卸喾N選擇對(duì)企業(yè)而言很有價(jià)值嗎?如果是這樣,請(qǐng)意識(shí)到這種靈活性確實(shí)是有代價(jià)的,并且應(yīng)該了解該成本對(duì)于企業(yè)而言是否負(fù)擔(dān)過重。
最后,無論企業(yè)使用單云策略還是多云策略,無論使用多云還是天空計(jì)算,甚至是使用云原生、混合云或其他任何云策略,請(qǐng)確保企業(yè)管理者了解成本和這樣選擇的好處,并確保它最適合企業(yè)的發(fā)展。