對(duì)于大多數(shù)來(lái)說(shuō),云計(jì)算是把雙刃劍。一方面,我們受益云計(jì)算帶來(lái)的好處,因其可以隨時(shí)隨地訪問(wèn)服務(wù)和數(shù)據(jù),被廣大用戶高度認(rèn)可。但是,另一方面,云計(jì)算也隱藏著巨大風(fēng)險(xiǎn),一旦服務(wù)宕機(jī),企業(yè)將承受無(wú)法預(yù)估的損失。
為了將損失降到最小,企業(yè)將一部分業(yè)務(wù)部署到公有云。另外,還要將關(guān)鍵業(yè)務(wù)的底層基礎(chǔ)設(shè)施,以兩地雙活,或者多地多中心的形式,做異地災(zāi)備。這種部署模式,極大地確保了企業(yè)數(shù)據(jù)和服務(wù)的持久性、安全性和可用性,避免因?yàn)榉?wù)中斷給企業(yè)帶來(lái)?yè)p失。為了進(jìn)一步防止企業(yè)業(yè)務(wù)宕機(jī),許多公司甚至將他們的服務(wù)分散到多個(gè)供應(yīng)商。
但是,這樣就足夠了嗎?多云部署真的就是高可用方案了嗎?
2017年2月,美國(guó)頂級(jí)云服務(wù)供應(yīng)商亞馬遜AWS旗下的Simple Storage Service (簡(jiǎn)單存儲(chǔ)服務(wù)),簡(jiǎn)稱S3,因?yàn)橐幻こ處熓只艟€了5個(gè)小時(shí)。此次宕機(jī)事件,導(dǎo)致北美東部地區(qū)的服務(wù)中斷,許多依賴S3的客戶的網(wǎng)站和服務(wù)受到影響。
總的來(lái)看,受S3中斷影響的工作負(fù)載分為兩類:一類是那些被認(rèn)為“不是關(guān)鍵任務(wù)”的工作負(fù)載,即那些缺乏足夠的體系架構(gòu),用來(lái)做探索性業(yè)務(wù)的工作負(fù)載。另一類是,缺乏足夠健壯的體系架構(gòu),但是已經(jīng)有關(guān)鍵業(yè)務(wù)在上面做嘗試性應(yīng)用,這類公司感受到了最強(qiáng)烈的沖擊。在這種情況下,如果你在另一個(gè)云服務(wù)商的云上有副本,可減輕S3服務(wù)中斷產(chǎn)生的影響。但是,跨云復(fù)制也會(huì)增加更多的復(fù)雜性,如果采用專有的跨區(qū)復(fù)制解決方案,會(huì)是另外一種體驗(yàn),可大大減少企業(yè)云運(yùn)維成本。
從應(yīng)用部署角度看,如果你想讓不同云提供商之間實(shí)現(xiàn)相同功能的高可用性,就必須抽象出特定的功能。這意味著用戶的云端整合能力,僅限于多個(gè)平臺(tái)的共有屬性。即使是差異服務(wù)能抽離,但是在單個(gè)級(jí)別的服務(wù)上,抽離出不同提供商實(shí)現(xiàn)的差異性,也會(huì)產(chǎn)生大量的額外工作。
另外,從容器級(jí)別的程序?qū)崿F(xiàn)看,由于不同提供商擁有不同的IaaS,用戶需要在多個(gè)平臺(tái)上運(yùn)行相同的容器協(xié)調(diào)器,并限制底層功能的使用(或通過(guò)公共接口訪問(wèn)底層功能)。雖然在不同的云服務(wù)中使用容器運(yùn)行相同的程序,在理論上是可行的;但是,實(shí)現(xiàn)條件是,這種想法根本不切合實(shí)際,容易人為產(chǎn)生錯(cuò)誤,并且更容易宕機(jī)。數(shù)據(jù)復(fù)制方式和IaaS產(chǎn)品本身的差異性,會(huì)極大地增加機(jī)器宕機(jī)的可能。
再者,從數(shù)據(jù)安全性和服務(wù)遵從性的角度來(lái)看,管理多云環(huán)境存在著巨大挑戰(zhàn)。我們需要做很多工作,包括提供虛擬網(wǎng)絡(luò)、防火墻規(guī)則、監(jiān)視規(guī)則、日志記錄以及身份驗(yàn)證和訪問(wèn)權(quán)限管理等,整個(gè)過(guò)程既困難又耗時(shí)。并且,不同云服務(wù)更新迭代的速度特別快,我們需要用額外的工具、體系,以及過(guò)程管理、培訓(xùn)服務(wù)等,確??缙脚_(tái)的一致性和服務(wù)的遵從性。
所以,選擇不同的云,不一定就已經(jīng)是高可用方案了。我們還要添加新的工具或者過(guò)程管理方案,用來(lái)解決實(shí)際業(yè)務(wù)問(wèn)題。比如:多云解決方案,可能會(huì)擁有更多更具體的最佳實(shí)踐經(jīng)驗(yàn)。