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