多活不易 GitHub標(biāo)志性事件回顧
GitHub在全球擁有2800萬用戶,托管著5700萬個代碼倉庫,Python、Ruby on Rails等絕大多數(shù)開源項(xiàng)目托管于此。被戲稱為“全球最大的同性交友社區(qū)”的GitHub,卻在2018年10月22日時出現(xiàn)了一次大規(guī)模的故障,導(dǎo)致服務(wù)中斷時間24小時,這24小時故障導(dǎo)致絕大部分互聯(lián)網(wǎng)企業(yè)的技術(shù)人員無法正常工作,影響很大。
事實(shí)上,GitHub搭建了自己的多活系統(tǒng),而10月份的故障,正是因?yàn)槠涠嗷钕到y(tǒng)出現(xiàn)故障而導(dǎo)致的。GitHub兩個機(jī)房之間的網(wǎng)絡(luò)出現(xiàn)中斷,服務(wù)發(fā)生切換后,多活系統(tǒng)考慮不全,導(dǎo)致系統(tǒng)發(fā)生腦裂,兩邊數(shù)據(jù)不一致,為了保證用戶數(shù)據(jù)的一致性,只能直接停服,用了24小時時間恢復(fù)數(shù)據(jù),最終導(dǎo)致了服務(wù)中斷。
GitHub這樣一個實(shí)力強(qiáng)勁的技術(shù)網(wǎng)站,多活業(yè)務(wù)也出現(xiàn)了如此大的故障。由此可見,實(shí)現(xiàn)真正的多活并不容易。
什么是真正的多活?
不容易的多活技術(shù),催生的不僅是這個市場,更緣于業(yè)務(wù)對多活的需求。對客戶而言,業(yè)務(wù)的可靠性、連續(xù)性、穩(wěn)定性才是真正的訴求。
無論是設(shè)備還是硬件,便一定會有故障的幾率。電飯煲發(fā)生故障便無法做飯;熱水器發(fā)生故障就沒法洗澡;數(shù)據(jù)中心里需要依賴的硬件也有故障的可能性,服務(wù)器故障時會影響這臺服務(wù)器上運(yùn)行的所有虛擬主機(jī);交換機(jī)故障會影響數(shù)據(jù)中心網(wǎng)絡(luò)。即便是整個數(shù)據(jù)中心,也有可能因?yàn)閿嚯?、起火、雷擊等原因發(fā)生整體故障。
因而,多活應(yīng)該是基于多個數(shù)據(jù)中心的多活,而且最終的多活一定是業(yè)務(wù)的多活,可以7*24小時保證業(yè)務(wù)在線,同時必須規(guī)避任何的單點(diǎn),包括一個數(shù)據(jù)中心內(nèi)部的單點(diǎn)甚至是整個數(shù)據(jù)中心宕機(jī)的單點(diǎn)。
青云QingCloud運(yùn)營副總裁林源在接受企業(yè)網(wǎng)D1Net記者采訪時指出:“部署多活,一定要理解多活的目的是什么?增強(qiáng)系統(tǒng)的可靠性、提升業(yè)務(wù)的連續(xù)性,使業(yè)務(wù)在運(yùn)行過程中不受任何故障和災(zāi)難的影響。這是多活的價值所在,這才是真正的多活。”
多活的兩大技術(shù)指標(biāo):RTO與RPO
多活有兩個重要的技術(shù)指標(biāo):一是RTO(業(yè)務(wù)恢復(fù)時間),二是RPO(數(shù)據(jù)的丟失量)。
這兩個指標(biāo)無論對于互聯(lián)網(wǎng)企業(yè)還是對于銀行等核心業(yè)務(wù),都至關(guān)重要。業(yè)務(wù)恢復(fù)時間決定了客戶體驗(yàn),數(shù)據(jù)的丟失量決定了數(shù)據(jù)的質(zhì)量,因此,這兩個指標(biāo)都必須趨近于0,同時需要保證是7*24小時在線的可用服務(wù)。
多活場景探討
并不是所有的場景都需要多活,因?yàn)槎嗷钚枰冻鲆欢ǖ某杀?。需要多活的業(yè)務(wù),一是這個業(yè)務(wù)很重要,它故障后會影響公司業(yè)務(wù),導(dǎo)致客戶資金受損;二是這個業(yè)務(wù)面向廣泛的客戶,影響較大。一般包括如下幾類:
第一種是大規(guī)模線上運(yùn)營業(yè)務(wù),比如電商網(wǎng)站、微信、微博等,業(yè)務(wù)中斷是不能忍受的,因?yàn)槊刻於加写罅康目蛻粼谑褂眠@個服務(wù)。雙十一的每秒宕機(jī)就可能損失幾十萬筆交易,這樣的業(yè)務(wù)要求零中斷,必須保證業(yè)務(wù)的連續(xù)性。
第二種是銀行、保險、重型制造等場景,銀行IT架構(gòu)需要符合銀監(jiān)會的規(guī)定,需要有兩地三中心。即兩個城市,三個數(shù)據(jù)中心的部署。
多活不易 “不易”的深層原因探討
多活不易,除了我們看到類似GitHub這樣的技術(shù)企業(yè)都很難搞定的表象外,更深層次的原因在于它是一個系統(tǒng)工程,既需要技術(shù),也需要人才儲備,還有各種大額成本投入等等因素。
首先,構(gòu)建多活系統(tǒng)成本極高,比如銀行兩地三中心的業(yè)務(wù)至少需要在兩個城市投入三個機(jī)房,三個機(jī)房需要有網(wǎng)絡(luò)連接,在每個機(jī)房里要投入大規(guī)模的硬件,業(yè)務(wù)在兩個機(jī)房都要部署,成本極高。
其次,多活系統(tǒng)需要招聘和培養(yǎng)專業(yè)人員;
第三,需要花費(fèi)大量的時間,挑機(jī)房、鋪光纖、鋪網(wǎng)絡(luò)。
實(shí)際上,要做好支撐業(yè)務(wù)的多活,首先需要在數(shù)據(jù)中心、網(wǎng)絡(luò)、數(shù)據(jù)、負(fù)載等層面做準(zhǔn)備,其次,作為一個復(fù)雜的系統(tǒng)工程,只要底層任意一個環(huán)節(jié)出現(xiàn)問題,便有可能造成整套多活系統(tǒng)的崩潰。
青云多活以服務(wù)形式交付多活能力
據(jù)林源介紹,青云多活推出的Region服務(wù),可以從基礎(chǔ)設(shè)施、基礎(chǔ)架構(gòu)(IaaS)、分布式應(yīng)用等各個層面提供多活基礎(chǔ)架構(gòu)服務(wù),以服務(wù)形式交付多活能力,從而讓客戶以更低的成本、更低的門檻部署他們自己的多活業(yè)務(wù)。
第一,青云將從基礎(chǔ)設(shè)施層持續(xù)投入,青云現(xiàn)有三個大區(qū)提供多活服務(wù):北京3區(qū)、廣東2區(qū)、上海1區(qū)。北京3區(qū)最早便上線了多活Region架構(gòu)。
第二,青云將在基礎(chǔ)架構(gòu)(IaaS)給用戶提供足夠多的通用組件,當(dāng)用戶部署業(yè)務(wù)時,會需要負(fù)載均衡器、網(wǎng)絡(luò)、公網(wǎng)帶寬等。青云提供的負(fù)載均衡、網(wǎng)絡(luò)和公網(wǎng)本身均是多活架構(gòu)。
第三,青云將在應(yīng)用層或者PaaS層給用戶提供支撐,通過青云的MySQL Plus(基于MySQL的數(shù)據(jù)庫服務(wù))、MongoDB,為客戶提供數(shù)據(jù)庫服務(wù),讓用戶部署業(yè)務(wù)更簡單。
同時,青云擁有全方位一體化的交付能力,不僅提供公有云服務(wù),也可以提供混合云和私有云的交付。在公有云上,青云可以交付多活的基礎(chǔ)設(shè)施;在混合云架構(gòu)下,也可以利用青云的SD-WAN骨干網(wǎng)加上私有云和公有云統(tǒng)一架構(gòu),給客戶提供混合云架構(gòu)下的多活基礎(chǔ)設(shè)施。
寫在最后
事實(shí)上,GitHub事件在前,讓多活解決方案提供商及服務(wù)商驚出一身冷汗的同時,也倒逼各供應(yīng)商從技術(shù)與流程入手,更加努力為客戶提供一個更加穩(wěn)定的服務(wù)。這對行業(yè)而言無疑是從教訓(xùn)中長進(jìn)。
青云QingCloud推出的真正多活Region架構(gòu)服務(wù),是良機(jī)也是挑戰(zhàn)!