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