逢當機必談起,多雲是真火還是假熱?

weixin_33807284發表於2019-03-12

每逢雲平臺發生當機,多雲這個話題都會被溜一遍,輿論之下的實際應用狀況到底如何?多雲到底是規避安全風險還是增加新的潛在危機?業內專家如何看待這一話題?

話題背景

近兩年,因為雲端計算的快速發展以及各大雲廠商的幾起當機事故,將多雲這一概念推向高潮,幾乎每次當機過後的接連幾場雲端計算相關活動都會出現“多雲”相關探討。當然,這不代表本地自建機房時期的安全性有多高,只是雲一旦出現問題,很容易產生共振效應,進而造成大範圍影響。

根據國外雲端計算的應用步伐來看,多雲似乎已經被提上議程。前不久,分析公司 Kentik曾釋出一份雲相關的調查報告,該報告調查了 310 位技術和業務主管。令人尋味的是,AWS 和 Azure 似乎是兩個最激烈的雲競爭對手,但企業更傾向於同時部署兩大雲服務,也就是所謂的多雲配對。

調查顯示多雲部署正在快速發展,可能會逐漸超過混合雲,並且最常見的雲組合是 AWS 和 Azure,但也有客戶選擇 Google Cloud Platform。根據 Kentik 的調查,97%的受訪者表示所在公司使用 AWS,35%的受訪者表示也在積極使用 Azure,24% 的受訪者同時使用 AWS 和 Google Cloud Platform。

但是,也有不少使用者發出質疑:單雲都沒用好,如何Hold住多雲?作為雲平臺的直接使用者到底應該如何選擇?InfoQ就此問題採訪了數位業內專家、企業使用者,並彙總了普通開發者的聲音,我們來看看多雲到底靠不靠譜。

多雲探討

在不少與當機相關的文章中,都能看到與“多雲”相關的評論,筆者隨機截了幾位相關評論,如下:
\"\"\"\"

不難看出,大多數使用者認為多雲可以解決供應商鎖定問題,並降低安全風險,因此推薦企業部署多雲。對此,專家認為,避免廠商鎖定是大多數企業的IT策略,其中一個重要考量是成本優化,大多數規模較大的企業都擔心與雲提供商建立單一供應關係,進而喪失議價能力,但多雲是否會降低成本,需要看整體擁有成本的構成。當然,也有使用者對多雲提出質疑,認為如果上升到實踐層面,不少企業恐怕無法應對成本、安全性、域名等相關政策帶來的挑戰。

在知乎上,也有不少與多雲相關的探討:

\"\"

對此,業內專家在接受InfoQ採訪時表示,作為雲服務的採用者,企業首先需要仔細考慮清楚自己的戰略,同時瞭解這些挑戰最終可能帶來的複雜性、成本和陷阱。在多雲部署中,成本可能會成倍增加,這不僅僅是雲訂單的價格,還有運維成本。雖然一開始通過利用多個雲端計算提供商來實現成本效率似乎是合理的,但長遠來看,缺乏工具和標準以及其他低效率培訓和跟蹤雲平臺使用的成本可能代價高昂。
 
目前,多雲支援能力的供應商成熟度差異非常大。雖然一些供應商是早期採用者和開拓者,但彼此之間存在全方位差異,而這種差異使得采用過程非常複雜和低效。此外,從安全性和合規性角度來看,缺乏整合身份和訪問管理也是一項重要挑戰。

Kubernetes將會促成多雲?

早前,InfoQ曾 對 Kubernetes 專案創始人兼 Heptio 執行長Craig McLuckie進行採訪,其在採訪中談到:

Kubernetes 是一個非常健壯的真正的分散式系統。按照設計,它消除了系統中的單點故障。對於一個恰當配置的叢集(配置了高可用及恰當的基礎設施),你可以在資料中心裡轉轉,拔掉節點,Kubernetes 會把工作負載調整到執行中的節點,把一切恢復到正常狀態。許多使用者在首次看到這個效果時都非常吃驚。我記得有人將其稱為“獵槍證明系統(shotgun proof system)”。其穩定性令人吃驚。

確實,Kubernetes在雲端計算中處於一個恰好的位置,不是特別底層,不會讓開發者受困於特定環境細節,而同時又可以獲得足夠的靈活性。關於這一點,其背後涉及更深層次的兩個論題:一是為什麼需要開放的雲原生技術體系;二是如何在雲端構建高可用IT架構保證業務的連續性。

某網際網路雲端計算廠商的技術專家表示,Kubernetes 一方面幫助使用者遮蔽底層特定執行環境細節,一方面提供了靈活的資源排程和應用編排能力,可以讓容器化應用獲得足夠的靈活性並簡化自動化運維,得到了社群的廣泛支援。CNCF推出Kubernetes一致性驗證專案,各主流雲廠商都通過了相關認證,保證了使用者的容器化應用可以在不同雲廠商之間平滑遷移。

根據過去與客戶的實際交流來看,尤其是金融、零售、製造、醫療衛生等領域,CIO們不希望被某一家廠商鎖定,而是希望雲提供商能夠提供類似標準電力一樣的計算能力,並儘可能價格優惠。雲原生不斷打磨標準,也必將使得企業使用者會從在這個開放標準建立的過程中獲益,獲得基於雲構建IT架構的最佳實踐並可以選擇合適遷雲路徑和雲平臺。

至於第二個問題,使用者上雲需要一個E2E高可靠架構,比如雲基礎設施、應用基礎設施、應用部署和應用架構自身。當然,這也需要綜合考慮成本和效率。跨可用區可以實現同城容災,而且可用區間延遲小(比如阿里雲可用區之間延遲在幾個毫秒以內),同時基礎雲產品基本全部做到了跨可用區容災,使用者使用這些能力提升架構可用性的成本很低。對於容災能力要求更高的業務,業界比較通用的做法有兩地三中心和異地多活等等,能做到地域級容災能力。多雲帶來的收益是防止單個雲產商多個地域同時出現問題,會更加複雜,這之間的網路互聯效能、資料複製策略、管理成本都會非常高。
 
從Kubernetes的設計來說,其自身是一個健壯的分散式系統架構,如果叢集採用了高可用配置,即使某個節點出現故障,原本執行在該節點的應用負載會被Kubernetes調整到其他執行良好的節點上。當然,這也並非高枕無憂。一個完整的高可用架構包括很多層面,從雲基礎設施IaaS、應用基礎設施(如容器叢集)配置,到應用配置(如K8s應用的跨AZ部署約束),再到應用架構自身配置,都息息相關。針對實際情況,可以實現不同級別的高可用,比如多可用區級別,或者跨區域、跨多個雲供應商級別等。

應用現狀

雖然多雲目前備受關注,但就實際使用情況而言,國內在該領域仍處於初期階段,新架構模式和實踐經驗還在探索之中,多雲所帶來的複雜性、潛在安全風險等問題都尚未有成熟的解決方案。
 
相比較而言,跨國企業和大型企業會更傾向於選擇多雲戰略,這是受到安全合規和業務擴充等核心需求驅動。中小企業受限於成本和運維壓力,輕易不會選擇多雲。一些海外500強企業進入中國,一般都會選擇多雲戰略,這可以擴充地域覆蓋並就近服務客戶,因為雲廠商覆蓋的地域不同,企業為了業務擴充需要可能會選擇多個雲供應商。
 
企業在雲遷移過程中所處的階段和自身技術成熟度不盡相同,其中一些已經具備先進的能力,而其他企業才剛剛邁出試探性的腳步,業務需求和技術選型路徑也會有所不同。
 
一般而言,傳統企業會考慮將核心業務和資料放在私有云上,而把網際網路應用等新興業務部署在公有云上。隨著業務的持續發展和IT架構的現代化改造,會逐漸擴大公有云比重將更多核心業務遷雲,這個時間,企業往往會開始考慮多個雲供應商的問題。
 
對於網際網路企業,一開始就是在公有云環境下生長起來的。隨著企業技術能力的成熟,整個IT架構充分利用了雲能力,具備了較好的彈性、健壯性和可移植性。如果一個雲供應商無法滿足其業務擴充的需求,自然也會選擇多個雲供應商。
 
專家認為,使用者對多雲的關注,很大程度是雲端計算被普遍接納的自然結果。但是,當下多雲依然存在很大挑戰,還需要業界一同努力。

結語

就現狀而言,企業部署多雲戰略尤其是中小企業尚存難處。因此,企業不要盲目選擇多雲,首要應該保證單雲架構下業務的安全穩定。雖然雲端計算比本地資料中心可用性高,但不能寄希望於雲端計算的可用性達到百分百,畢竟近兩年主流雲端計算廠商皆發生過多起當機事故。在發生可用區級別故障時,如果使用者合理設定了多可用區支援可以應對故障。

除了在架構上具備容災能力,如何確保業務連續性也是一個重要話題。即便系統容災能力建設完備,還需要確保能力符合預期,不能等真實故障來驗證系統能力,容災能力需要做好提前演練。在容災能力之外,要真正做到業務高可用還有一系列工作,除了應對硬體裝置災難,還需要額外面對非常多其它挑戰,比如流量衝擊、引入不合理依賴、依賴環節不可用或者延遲高等,這些都是上雲企業在網際網路業務快速發展中需要考慮的問題。

相關文章