很遺憾,因您的浏覽器版本過低導緻無法獲得最佳浏覽體驗,推薦下載安裝谷歌浏覽器!

雲計算老司機手把手帶你搭建業務永續的高可用架構

2016-08-23  來自: Linux中國 浏覽次數:748

一、不管你願意還是不願意,雲計算的時代已經到來



不管是對公有雲發展持懷疑态度,還是對公有雲供應商頗有微詞,絕大多數 IT 從業者将不得不承認如下兩個事實:


  1. 公有雲正在各種故障、懷疑聲音中一步步向前發展,而且發展速度還在加速。作為IT用戶,不管你願不願意,你都得面對公有雲成為您日常工作中一部分(甚至是主要部分)的現實。

  2. 企業 IT 對于公有雲的期待和目前公有雲提供的服務能力還是有差距的。這個差距需要公有雲供應商持續努力改進,但更要企業IT用戶更好理解公有雲的設計原則,正确看待公有雲産品及服務并基于此設計符合自己業務的架構。


客觀來說,公有雲服務的可用性比傳統 IT 和私有數據中心已經有了很大的提升,基本都能夠提供三到四個九的可用性 SLA,但也肯定無法做到 100% 高可用保障。


如果希望自己業務有更好的高可用表現,就需要考慮企業業務架構的高可用性設計。幸運的是現實生産中已經有這方面的成功案例。2015 年 9 月,AWS 全球最大區域(AWS-US-EAST1)出現 20 多個服務長達幾個小時不可用,Netflix 利用其業務架構上的高可用設計成功保障了業務基本不受影響。


二、在談業務永續之前,先捋順公共雲兩大概念



為了支持雲上用戶更好使用和部署業務,也為了雲廠商能夠更加标準化自身服務。公有雲供應商在基礎設施層面普遍會提供如下幾個關鍵抽象設計:


  1. Region(區域):Region 是公有雲廠商為一個區域最終用戶提供服務的抽象能力。它設計的初衷主要是為了:1降低雲上業務到達最終用戶的網絡延時;2)符合不同區域的數據及業務服務法規。

  2. Avaliable Zone(AZ、可用區):可用區是一個物理上相互隔離,網絡、電力等供應相互獨立的基礎設施區域,可以簡單理解為雲基礎設施可用性保障的最小單元。不同可用區之間的可用性是相互完全獨立,互不影響。需要注意的是可用區同樣是一個抽象概念,它并不等同于我們日常所述的數據中心(或者機房)。一個可用區可以由多個物理數據中心組成。


一般來說,公有雲的一個 Region 都會包括多個可用區,以方便用戶把自身的業務跨可用區部署,實現高可用架構。


雲基礎設施供應商需要保障的是每個 Region 内多個可用區之間可用性做到完全獨立,不相互影響(但确實無法保障每個可用區都不會出現服務中斷)。


當然,為讓用戶業務在多個可用區部署後能流暢運行,公有雲供應商都會保障一個 Region 内的多個可用區之間網絡延時極短(一般小于 5ms)。這點也給可用區選址提出限制,要求一個 Region 不同可用區之間物理距離不可以太長。


由上可見,可用區是公有雲供應商提供高可用架構的基礎,而跨多個可用區部署業務也成為雲上業務高可用性設計的核心所在。


因此,能否在一個 Region 内提供多可用區服務成為對雲供應商最基本的需求。目前,如 AWS、Azure、阿裡雲等公有雲供應商都基本實現 Region 有多可用區的布局。對企業來說,盡量選擇有多個可用區的公有雲 Region 部署業務,是實現雲上業務高可用的前提條件!


老司機的經驗之談:


跨 Region 實現業務的高可用是一種可能的選擇。但是 Region 設計的初衷是為了讓基礎設施服務盡可能靠近雲上業務的最終用戶,解決業務延時和合規問題。所以,Region 之間的網絡延時很多時候不能保障,并不容易用于設計在線業務的高可用。當然,用戶數據備份或者容災處理,跨 Region 設計是一個可能選擇。但是,無論如何,跨 Region 設計不是雲上業務高可用架構的第一要務(優先考慮一個 Region 内的跨可用區高可用設計)。



三、公有雲服務的可用區支持



即使公有雲服務上在基礎設施建設階段提供了一個 Region 内部多可用區設計的支持,但是如果不能夠把這個能力通過公有雲的各種服務展現出來,雲上用戶仍然無法使用到這個能力。


一般來說,雲服務供應商提供的服務主要包括「計算」、「存儲」和「網絡」三大類。


  • 計算服務可用區支持:  一般來說,企業可以完全自己控制計算資源跨可用區的均衡部署,但徐桂林建議還是盡可能使用雲供應商提供的内建服務。它們會讓這個過程變得非常簡單,而且可靠。

  • 存儲服務可用區支持:數據存儲服務是一個業務的關鍵所在,也是很多雲上架構比較難處理的部分。越來越多的數據存儲類服務希望向用戶隐藏掉可用區設計的概念,并希望在服務内部解決多高可用問題。例如,典型的對象存儲服務一般會把數據複制三份,其中兩份在一個可用區内,而另外一份則分配到另外一個可用區。這是一個好的趨勢

  • 網絡服務可用區支持:類似與計算和存儲,網絡服務也需要提供對于可用區的支持,以方便用戶在網絡規劃階段實現跨可用區的高可用設計。


為一個應用在不同可用區中創建均衡的子網(包括數目和子網包含的虛拟IP空間)是一個推薦的實踐。這樣一方面可以實現網絡的高可用,另外一方面也方便計算資源和存儲資源能夠均衡落到不同的可用區。


四、用戶業務架構的高可用設計



這是一個和用戶業務場景相關性非常大的話題,很難像前面那樣給出一些普遍性的具體建議。但是,如下幾個設計準則仍然是值得廣泛借鑒。


  1. 實現業務處理節點的無狀态(stateless)化。這是用戶業務邏輯實現水平擴展,利用好雲平台彈性伸縮的基礎性要求。對于業務中需要保持的各種狀态數據建議集中存放到雲平台提供的高可用緩存或者持久化存儲服務中。

  2. 保持業務處理節點的對等性,不存在單點依賴。用戶傳統架構中普遍存在中心化節點,這些節點不可擴展且業務服務強依賴于此。這種中心化節點的存在導緻整個業務系統的高可用性完全依賴于中心化節點的可用性,也無法利用到雲上服務提供的可用區設計。


如上兩條設計準則可以大體保證用戶業務是一個“雲友好”的業務架構,也可以比較容易的使用上可用區設計,實現業務的彈性伸縮。當然,如果能夠更向前推進一步,充分解耦業務模塊,讓其中的任意模塊角色足夠“小”。這樣将讓整個業務架構向“微服務”架構靠近,并最終實現“雲原生”應用。當然,這個解耦過程帶來的服務角色增加和服務狀态快速變化也引入新的挑戰(例如服務發現、負載均衡和質量保障等)。


寫在最後



業務高可用是所有 IT 生産系統設計都必須考慮的重要指标。雲平台(尤其公有雲)提出以“可用區”為核心的基礎設施可用性保障新模型,并通過其上層服務提供給雲上業務。所以,雲上業務高可用設計要以“可用區”為基礎進行業務部署架構和邏輯架構的設計,并遵循常見的可水平擴展分布式架構設計準則,以實現“雲友好”的高可用設計目标。


規模運營的雲服務幾乎無法避免部分可用區服務中斷的事故。對雲服務供應商來說,非常有必要在業務架構層面實現跨可用區的架構來應對這種“黑天鵝”事故的發生,并為用戶高可用架構設計提供産品和服務上的支持。


雲唯IT實訓 一家對結果負責的IT定崗實訓機構  專注雲計算培訓、大數據培訓的高新IT人才培訓基地

【0基礎 0費用 IT培訓 名企名師 高薪就業】隻專注在IT雲計算培訓,大數據培訓領域。


版權所有Copyright 2014 - 2019

技術支持:北京IT雲計算培訓 網站地圖 XML

本站關鍵字: IT培訓 雲計算培訓 大數據培訓 Web前端培訓 大數據營銷培訓


掃一掃訪問移動端