從IT服務(wù)管理(ITSM)的角度來看2018年6月27日的阿里云故障

2018年6月27日下午,網(wǎng)上陸續(xù)有阿里云出現(xiàn)故障的新聞以及評(píng)論。阿里云在該事件中迅速作出了回應(yīng),確認(rèn)阿里云部分服務(wù)的確出現(xiàn)了故障,并已及時(shí)采取措施恢復(fù)了服務(wù)。

該事件后,在網(wǎng)上出現(xiàn)了兩種不同的觀點(diǎn),一種觀點(diǎn)是:阿里云的故障直接導(dǎo)致用戶系統(tǒng)的中斷,用戶表示“很不開心,阿里云很不靠譜”;另一種觀點(diǎn)是:早就料會(huì)有這一天,早將系統(tǒng)部署在不同的地方,技術(shù)性的度過了6月27日這一天。pstrike想通過本文結(jié)合阿里云故障的事件,從IT服務(wù)管理的角度探討云計(jì)算服務(wù)管理的邏輯以及作為用戶應(yīng)該如何應(yīng)對(duì)。

事故緣由

事故緣由引用至阿里云官方說明。

阿里云故障說明

IT服務(wù)的風(fēng)險(xiǎn)管理

首先我們先把身份調(diào)整一下,假如你是云計(jì)算服務(wù)提供方(例如:阿里云)的負(fù)責(zé)人,你將怎么管理云計(jì)算服務(wù)?你可能首先會(huì)保障服務(wù)的體驗(yàn),為用戶提供100%可用的服務(wù)。因此,用戶的系統(tǒng)可以完全依賴云計(jì)算服務(wù)。但是,你可能立馬會(huì)反應(yīng),這不行!如果要保證服務(wù)的100%可用,需要大量的成本,這樣的投入產(chǎn)出可能難以匹配。嗯,看來做好云計(jì)算服務(wù)的管理不是一個(gè)那么簡(jiǎn)單的話題,那應(yīng)該怎么做呢?

如上文所提到,IT服務(wù)即需要考慮可靠性,同時(shí)又需要考慮經(jīng)濟(jì)性。它是充分考慮了各種條件的折中以及平衡的最終結(jié)果。一個(gè)成熟的IT服務(wù)應(yīng)該考慮以下三個(gè)要素:

IT服務(wù)管理三要素
  • 經(jīng)濟(jì):我們知道要確保服務(wù)可用性主要是通過服務(wù)冗余的策略。簡(jiǎn)單來說,每一個(gè)服務(wù)我們都將提供兩套一樣的服務(wù)(或者更多),當(dāng)其中一個(gè)出現(xiàn)問題的時(shí)候,另一個(gè)服務(wù)還能正常響應(yīng)用戶的請(qǐng)求。當(dāng)我們把服務(wù)的有效性從0%做到90%的時(shí)候,我們打造冗余服務(wù)的成本是呈線性上升的形狀。但是,當(dāng)我們要把服務(wù)的可用性從90%提升到99%,由于需要大量的冗余,而且是異地、全球性的服務(wù)冗余,這將令到成本呈現(xiàn)指數(shù)級(jí)別上升。
  • 可靠:一個(gè)IT服務(wù)總是希望能夠給用戶提供100%可用的服務(wù)。但是,從用戶的角度來說,該服務(wù)是不是最終可用還受到了諸多因素的影響,例如:受到網(wǎng)絡(luò)影響、硬件可用性的影響等等。所以,就算在云計(jì)算服務(wù)提供商能夠把服務(wù)可用性做到100%,但是,對(duì)最終用戶來說,服務(wù)仍然不是100%可用。或者說99.999%與100%的服務(wù)可用性對(duì)用戶最終的使用體驗(yàn)來說,其實(shí)并沒有太大的不同,但是服務(wù)提供方為了保障100%的服務(wù)可用需要花費(fèi)大量的成本。
  • 機(jī)會(huì):每一個(gè)企業(yè)的業(yè)務(wù)都需要不斷地進(jìn)行調(diào)整以滿足市場(chǎng)的需求,云計(jì)算服務(wù)提供商也不例外。為了持續(xù)向用戶提供穩(wěn)定、領(lǐng)先的服務(wù),云計(jì)算服務(wù)會(huì)不斷發(fā)布新的功能、修正已有的Bug、加入自動(dòng)化運(yùn)維等功能。但是,只要進(jìn)行服務(wù)的發(fā)布,就容易引入潛在的風(fēng)險(xiǎn),從而導(dǎo)致服務(wù)的故障。因此,為了保障服務(wù)的高可用性,最好的策略是不進(jìn)行服務(wù)的發(fā)布,不過這樣服務(wù)就無法持續(xù)滿足市場(chǎng)多變的需求。

基于上述三個(gè)要素,我們可以總結(jié)IT服務(wù)管理其實(shí)是針對(duì)這三個(gè)要素間平衡性的綜合考慮,是對(duì)服務(wù)的機(jī)會(huì)成本的風(fēng)險(xiǎn)管理過程。

服務(wù)有效性 Availability

在IT服務(wù)管理的流程中,不可避免的會(huì)涉及到兩個(gè)關(guān)鍵的角色:開發(fā)以及運(yùn)維。這兩個(gè)角色相輔相成,但是又相互沖突。作為運(yùn)維團(tuán)隊(duì),其最主要的目標(biāo)是保證服務(wù)的可靠性;而開發(fā)團(tuán)隊(duì)的主要目標(biāo)是發(fā)布功能以滿足市場(chǎng)的需求。

為了協(xié)調(diào)開發(fā)以及運(yùn)維團(tuán)隊(duì),同時(shí)有效地控制IT服務(wù)的風(fēng)險(xiǎn),IT服務(wù)管理廣泛使用有效性指標(biāo)。有效性指標(biāo)的計(jì)算方式主要有以下兩種:

  • 有效性 = 可用時(shí)間 / (可用時(shí)間 + 故障時(shí)間)
  • 有效性 = 成功服務(wù)次數(shù) / (成功服務(wù)次數(shù) + 失效服務(wù)次數(shù))

使用有效性指標(biāo)的主要原因是開發(fā)團(tuán)隊(duì)以及運(yùn)維團(tuán)隊(duì)可以基于該指標(biāo)構(gòu)建一個(gè)雙方認(rèn)可的工作模式。假設(shè),開發(fā)以及運(yùn)維團(tuán)隊(duì)均同意服務(wù)當(dāng)年的有效性為99%。則若當(dāng)年服務(wù)有效性高于99%時(shí),開發(fā)團(tuán)隊(duì)可以安排服務(wù)的發(fā)布;但是當(dāng)服務(wù)的有效性小于99%時(shí),除非經(jīng)過特殊審批流程,當(dāng)年不可再進(jìn)行服務(wù)的發(fā)布。通過這種方式,在服務(wù)管理的三個(gè)要素間獲得了一個(gè)風(fēng)險(xiǎn)管理的平衡點(diǎn)。

從阿里云6月27日的故障來看,引起故障的主要原因是阿里云需要發(fā)布一項(xiàng)自動(dòng)化運(yùn)維的功能。由于當(dāng)時(shí)的服務(wù)可用性指標(biāo)距離約定的SLA還有比較大的空間,所以開發(fā)、運(yùn)維團(tuán)隊(duì)決定執(zhí)行該功能的發(fā)布。但是,由于測(cè)試出現(xiàn)問題,沒有發(fā)現(xiàn)潛在的Bug,導(dǎo)致了最終的事故。但是從IT服務(wù)管理的角度來看,阿里云的決策以及操作符合IT服務(wù)管理的邏輯(姑且不討論為什么測(cè)試出現(xiàn)了問題)。

成也SLA,敗也SLA

在阿里云的事故中涉及到的服務(wù)有OSS、NAS、MQ。針對(duì)OSS服務(wù),我們可以從OSS的服務(wù)等級(jí)協(xié)議(SLA)中了解到OSS服務(wù)的有效性為99.9%,也就是說在一年當(dāng)中,阿里云OSS承諾用戶請(qǐng)求OSS服務(wù)出現(xiàn)HTTP狀態(tài)碼為5XX(除503外)的故障時(shí)間將小于8.76小時(shí)。而根據(jù)阿里云6月27日的故障說明,其服務(wù)故障時(shí)間為39分鐘。而在2018年,阿里云OSS也并未出現(xiàn)其它故障。因此,從IT服務(wù)管理的角度來說,該次事故應(yīng)屬于正常范圍。

OSS服務(wù)等級(jí)協(xié)議 - 1

OSS服務(wù)等級(jí)協(xié)議 - 2

對(duì)于用戶來說,一個(gè)已經(jīng)定義好SLA的服務(wù)將給用戶提供必要的保障。因?yàn)榉?wù)提供商將盡最大努力保障所約定的服務(wù)可用級(jí)別,如果未能達(dá)到,服務(wù)提供商將按SLA提供賠償。下圖是OSS的賠償條款。

OSS服務(wù)等級(jí)協(xié)議 - 賠償條款

同時(shí),一個(gè)已經(jīng)定義好SLA的服務(wù)也意味著用戶需要考慮那0.1%服務(wù)不可用的情況,而絕大多數(shù)用戶都忘記了這一點(diǎn)。其實(shí),作為IT從業(yè)人員,他們深知一個(gè)服務(wù)是由許多部件組合在一起,一個(gè)部件出現(xiàn)問題將影響到整個(gè)服務(wù)。因此,他們完全能夠理解服務(wù)的可用性難以達(dá)到100%。但是當(dāng)阿里云出現(xiàn)故障時(shí),為什么會(huì)有那么多用戶抱怨呢?

一方面,可能是因?yàn)橛脩魧?duì)高可用服務(wù)設(shè)計(jì)的經(jīng)驗(yàn)不足;但更主要的原因可能是云計(jì)算服務(wù)提供商(不針對(duì)阿里云,其它云產(chǎn)品也類似)為了突出其產(chǎn)品的健壯性,很少主動(dòng)提及那0.1%的服務(wù)故障,并且提醒用戶針對(duì)云服務(wù)所出現(xiàn)的服務(wù)中斷、降級(jí)在應(yīng)用級(jí)別進(jìn)行相應(yīng)的高可用設(shè)計(jì)。因此,用戶盲目地過度相信云計(jì)算服務(wù)的健壯性。

如何應(yīng)對(duì)可用性“僅”99.9%的服務(wù)?

當(dāng)了解云計(jì)算服務(wù)提供商如何進(jìn)行服務(wù)管理后,作為用戶應(yīng)該怎么應(yīng)對(duì)呢?以下一份checklist希望可以幫到你。

  1. 通過云計(jì)算服務(wù)提供商的技術(shù)人員,全面了解將使用到的服務(wù)
  2. 了解云計(jì)算服務(wù)的SLA
  3. 在系統(tǒng)架構(gòu)過程中,考慮云服務(wù)失效的處理方法,多與云計(jì)算服務(wù)提供商的技術(shù)人員溝通,他們有很成熟的解決方案
  4. 通過自動(dòng)化的工具對(duì)服務(wù)進(jìn)行監(jiān)控、通知、失效轉(zhuǎn)移

總結(jié)

從IT服務(wù)管理的角度來看,出于對(duì)服務(wù)可靠、經(jīng)濟(jì)性、服務(wù)更新機(jī)會(huì)這三者的權(quán)衡,云計(jì)算服務(wù)的可用性不可能、也沒有必要達(dá)到100%。所以,用戶在使用云服務(wù)的時(shí)候,需要在業(yè)務(wù)設(shè)計(jì)、系統(tǒng)架構(gòu)上就考慮云計(jì)算服務(wù)失效時(shí)的保障方法。其實(shí),并不針對(duì)云計(jì)算服務(wù),在IT系統(tǒng)中的每一個(gè)部件都有可能出現(xiàn)失效的情況,而“Design for Failure”不失為一個(gè)企業(yè)在架構(gòu)業(yè)務(wù)、系統(tǒng)時(shí)要時(shí)刻謹(jǐn)記的原則之一。

參考文獻(xiàn)


pstrike 2018.07.10 于廣州天河

【尊重版權(quán):轉(zhuǎn)載之前請(qǐng)先聯(lián)系我】

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容