Andrew C. Oliver
盡管丹麥乃至整個歐洲,以及亞馬遜都對一些事情保持著沉默,但是似乎有跡象顯示他們遇到了一次黑客攻擊或是一次成功的拒絕服務攻擊。我是在2019年10月知道的,Google自動完成功能也會提示“AWS DDoS攻擊”。這些事情實際上會經常發生。
拒絕服務攻擊的歷史是否與互聯網的歷史一樣悠久我們不得而知,因為數據中心運營商或托管服務提供商缺乏坦率的態度。過去,我們是通過防止整個網絡被癱瘓來保護我們自己,如今我們依然需要保護我們自己,但是方法變成了使用由不同運營商運行的多個數據中心,即多云。

多云戰略以在多個服務提供商的云端上展開部署(或是保持能夠在多個服務提供商的云端上進行的能力)為開端。這意味著用戶要將軟件保留在AWS和Azure上,甚至可能保留在GCP上。用戶需要放棄使用任何可能會阻礙自己進行轉移的提供商服務,追求允許進行跨數據中心擴展的數據架構。
依托單個服務提供商的云,用戶可以享受云提供商提供的服務,有時候這服務的成本很低。通常,用戶可以無縫地添加這些服務。也就是說,如果用戶是AWS客戶,那么他們可以使用Amazon Elasticsearch Service,而不用構建自己的搜索集群。如果用戶使用的是Google,那么他們可以使用庫Google Cloud Datastore文檔數據,而不用自己動手部署。
但是,與所有服務提供商平臺策略一樣,這些也是有代價的,即用戶的自由。這聽起來很沉重,但是請聽我說完。當然,用戶的云服務提供商現在正變得更加便宜,但是情況會一直如此嗎?此外,隨著云服務提供商轉變戰略,價格上的優惠是否有一天會被無理地取消?他們甚至可能永遠不會真正宣布這一消息。如果用戶所在地區的AWS數據中心長時間停機,變慢或變得不可靠怎么辦?用戶能夠承受損失嗎?
在這些服務提供商提供的服務中,某些服務(尤其是亞馬遜的服務)是一些著名開源替代產品的分支,它們應該維護API兼容性。此外,有些還是著名的發行版本。對于緩慢升級的大型企業來說,通常情況下是沒有問題的。但是“通常情況”并不意味著沒有特殊情況。
如果情況需要,即便是規模更大的企業也必須迅速采取行動。如果當前版本中存在無法修復的重大安全漏洞,那么用戶要進行轉移。如果下一版本中有某些功能是大規模擴展所必需的(而用戶也正需要),亦或是用戶自己的下一個版本需要某些其他功能,那么云服務提供商的發展規劃勢必會導致用戶落后于形勢變化。
在使用云服務提供商的服務時,有一個問題很重要,那就是思考一下每個運營者或腳本作者“他們的動機是什么?”當然,他們可能希望在其IaaS產品之上獲得30%的額外加價,但是更有可能的是,他們希望將用戶留在自己的平臺上,并獲得用戶計算支出中的每一分錢。
盡管云服務提供商已經變得越來越可靠,但是他們還沒有變得百分之百的可靠。每年會發生多個區域性,甚至是多區域服務中斷。有些中斷還會持續較長一段時間。如果用戶不能將代碼安裝到其他地方(更好的作法是,將其作為流程的一部分存儲在其中),那么當災難來臨時(確實會發生),用戶將束手無策。
最后,在進行價格談判時,如果用戶得知自己已經離不開某一云服務提供商,那么用戶還會認為云服務提供商具有很高的靈活性嗎?
多云策略不僅需要服務提供商保持中立,還需要更具彈性的架構選擇。這意味著更多的前期復雜性,也意味著用戶要與多家服務提供商進行談判。同時這還意味著要確保談判時能夠綜合考慮到現有技術和當前的安全性。
但是,與使用單個云服務提供商相比,多云策略為用戶提供了更多的自由和安全性。我們在平臺大戰期間學到了這一點,許多企業會先在大型機上進行標準化,然后在DEC、HP和Sun上進行標準化,然后再嘗試在Windows NT上進行標準化。
單一的云服務提供商平臺常常無法兌現他們的承諾。請記住,在20世紀90年代甚至21世紀初期,Microsoft的技術往往集成性良好但并不成熟。然而情況很快就迅速發生了變化。經驗豐富的開發人員想起了數據訪問技術、DAO、RDO、OleDB和ADO(它們都已被陸續發布并被提倡使用)。更不要提.NET過渡和發生的錯誤營銷了(即Windows.NET)。不僅僅是微軟。我的職業生涯開端是編寫OS/2設備驅動程序。后來IBM又發布了Warp 4,然而如今它們都已經不再被使用了。
盡管平臺獨立性會帶來前期成本,但是追求平臺獨立性的公司往往會有更具彈性的架構。這些公司在應用程序之間采用標準接口。他們會為使用的用例選擇最合適的技術,而不是選擇平臺所推動的任何技術。最重要的是,當服務提供商被證明是不可靠的合作伙伴(或抬高價格)時,平臺獨立的公司可以自由退出。
多云策略中最重要的一點是依靠開放標準和行業標準作為關鍵接觸點。以下是其中的一些重點:
·Kubernetes。這一開源容器管理平臺目前已經成為了部署服務的行業標準。如果用戶要創建在筆記本電腦上運行的標準Kubernetes部署,那么它們應在多個云服務提供商上運行。
·開源。用戶的核心架構要使用開源工具和技術。這樣可以確保在平臺策略發生調整時,用戶可以選擇其他路徑。
·開放標準。這并不是說用戶需要參與到應用程序服務器集群當中,而是指與其他軟件的所有接觸點都應遵循開放且服務提供商中立的行業標準(例如JSON)。
·注意品牌服務。如果用戶需要固定IP和各種DNS服務,那么用戶可以選擇亞馬遜推出的一些常用網絡工具。雖然用戶不需要運行自己的分布式DNS,但是他們必須要使用提供商提供的固定IP的方法。不過這并不意味著用戶面臨著廠商鎖定,因為它們只是配置,并且在Azure和GCP上的工作方式是相同的。但是在使用機器學習服務時,用戶應該保持謹慎的態度。
最后,“那就放手做吧!”除了讓服務在兩個或更多的云端上運行之外,沒有其他方法可以確保用戶能夠快速實現轉移。即使出于各種成本或會計原因而選擇主要是將流量引導至一個云端,那么用戶也應該在另一云服務提供商的云端上擁有備用數據庫和文本。當發生不可避免的服務中斷或服務提供商因財務原因而倒閉時,用戶可以實現迅速轉移。
本文作者Andrew C. Oliver為開源NoSQL數據庫產品提供商Couchbase的產品營銷主管兼布道師。
原文網址
https://www.infoworld.com/article/3529476/cloud-outages-show-multicloud-is-essential.html