宕機,是開發和運維人員最為敏感的事情,服務器一旦宕機會給服務商和訪客造成不可預估的影響,降低訪客對訪問網站品牌的信任度。最近的GitHub出現了一次比較大規模的故障,服務中斷的時間達到24小時。由于80%以上的工程師平時工作依賴于GitHub, 所以,24小時的故障導致絕大部分互聯網企業的技術人員無法正常工作,影響很大。像微信、微博等應用的宕機事件也時有發生,但是由于僅僅影響的是生活的體驗,所以還不算很嚴重。但是在金融行業,比如銀行業務如果中斷,產生的后果將不堪設想。
由此可以看出,服務的穩定性和持續性無論是在互聯網行業,還是在傳統行業都非常重要,跟我們的生活息息相關。但是宕機并不能完全消除,所以增強系統可靠性、提升業務連續性、使業務運行不受故障和災難影響,就成了解決宕機的唯一辦法,此時,多活應運而生。
多活:為解決宕機而生
多活的兩個重要技術指標是RTO(業務恢復時間)和RPO(數據的丟失量)。對于互聯網企業來說,更關注業務恢復時間。而對于銀行、保險等跟民生相關的企業,則更關注數據的丟失量。最好的方式是兩個都趨近于0,使業務可以7*24小時在線,并且是可用服務。
當然,并不是所有的業務都需要多活,需要多活的業務,一是這個業務很重要,如果發生故障會影響公司業務,導致客戶受損;二是這個業務面向廣泛的客戶,影響面比較大。
多活的架構一直存在,但是,以往的多活架構存在諸多問題。首先是成本高,比如銀行兩地三中心的業務至少需要找兩個城市,投入三個機房。這三個機房需要有網絡連接,在每個機房里要投入大規模的硬件,業務在兩個機房都要有部署。之前做多活依賴IBM、EMC等昂貴的硬件,花費巨額的成本。第二是當業務上線后需要有能夠運維這些復雜多活系統的人,這就需要在人員投入上花費很多成本。第三是時間成本,包括挑選機房、鋪設光纖和網絡。一個兩地三中心的架構的建設至少需要一到兩年的時間。
青云:從三個層面助力企業部署多活
那么,究竟什么樣的多活基礎架構才能讓客戶以更低的成本、更低的門檻部署自己的多活業務?青云QingCloud運營副總裁林源指出,應該從基礎設施、基礎架構(IaaS)、分布式應用三個層面來考慮。在基礎設施層,兩地三中心的架構至少需要有城市、機房、光纖、網絡。青云目前有三個大區提供Region服務:北京3區、廣東2區、上海1區。
在基礎架構(IaaS)層,則要給用戶提供足夠多的通用組件,如負載均衡器、網絡、公網帶寬等。青云提供的負載均衡、網絡和公網本身就是多活的。負載均衡器用來承接用戶外部的訪問,本身是多機房部署,在北京區的三個數據中心都有部署。極端情況下,任意一個數據中心宕機,都不會影響給用戶提供負載均衡器的服務。網絡連通是一件相對比較難的事情,用戶想做多活,就一定會在多個數據中心之間部署業務。這時候就需要通過簡單的方式提供多個數據中心之間的網絡互聯,包括VPC、三層網絡、二層網絡、私有網絡、彈性公網IP(外網)。無論哪個數據中心宕機,外網都不會受影響,流量可以從多個數據中心進來。
用戶的業務主要有前端、中間件、數據庫,要想在應用層或者PaaS層給用戶提供很好的支撐,最難做的是數據庫。青云的數據庫本身是多活的,任何一個數據中心的宕機都不會影響數據庫。這樣一來,用戶部署業務會變得更簡單。
上圖是在北京大區建立多活架構的展示。用戶想構建多活的業務,只需要做最簡單的應用層部分和中間件的部分。這部分的業務絕大部分情況下不會涉及數據,或者說不會涉及很復雜的數據一致性的問題,客戶可以自己解決。其他的負載均衡器、Redis、MySQL以及多個數據中心之間的互聯,都是由青云提供。所以通過這種方式,用戶想部署一個多活的應用或者多活的業務,會變得很簡單,而且很便宜。因為用戶只需要付出他部署業務的資源,和他使用青云的PaaS資源就可以了。
全方位一體化的交付能力
青云不光提供公有云服務,同時也在做混合云和私有云的交付。在公有云上,可以交付多活的基礎設施。如果客戶的業務不是完全在公有云上,而是混合云的架構,在此情況下客戶能否使用多活?青云的回答是可以的!利用青云的SD-WAN智能廣域網服務,加上私有云和公有云統一架構,就可以給客戶提供一個混合云架構下的多活基礎設施。銀行客戶、保險客戶大多屬于這種情況。
總之,何為青云的真正多活?首先是高效、便捷很重要。站在用戶的角度,提供一個門檻低的產品,幫助他們構建多活的服務。可靠也是至關重要的一環,包括數據中心的選擇、帶寬的連接以及組件等,都要經過考驗。最后是全面,青云的多活架構不光可以在公有云上使用,在混合云、私有云方面,青云都有全面的交付能力。