天天看點

線上教育業務系統雲上高可用部署架構設計

從2010年開始,國内新興的線上教育公司已經越來越多選用公共雲計算做為it基礎設施平台。線上教育公司使用雲計算,一方面可以減少在it基礎設施方面裝置及人力的投入,另一方面可以輕松獲得可擴充的計算能力以及更加可靠的安全防護能力。

通過對多家線上教育公司it部門的交流,由于線上教育公司大多處于業務發展期,it部門的精力主要投入到支撐新業務的拓展,在應用的部署架構上考慮的不多,在高可用架構方面更是欠缺。

衆所周知,雲平台是一個及其複雜的綜合系統,内外部的一些偶然因素可能導緻其發生局部的故障,如果使用者在高可用方面考慮的不夠周全,雲平台局部故障可能會對業務系統産生重要影響,造成使用者的體驗下降甚至使用者流失。

領先的雲服務商在雲平台層面為了盡量減少故障發生,經過過多年的優化,已經在網絡、雲伺服器、雲資料庫等層面支援同城多機房高可用部署,線上教育公司在進行部署架構設計時使用本文介紹的部署方式,就可以快速建構起高可用的應用。

在介紹高可用部署架構之前,先介紹幾個技術術語:

<b>地域</b>:地域指的是雲資源及服務所在的地理位置。使用者可以根據實際需要來選擇不同地域的雲服務,具體選擇哪個地域一般由客戶的地域分布來決定。以阿裡雲為例,目前可供選擇的地域有華東 1、華東 2、華北 1、華北 2、華南 1、香港、新加坡、美西 1、美東 1。如果線上教育系統的客戶主要分布在珠三角,選擇華南1就比較好,如果客戶覆寫全國,選擇華東1或華東2就相對合适一些,因為這兩個區域到全國的網絡延時比較平均。

<b>可用區</b>:可用區是指在同一地域内,電力和網絡互相獨立的實體區域,可以了解不同的可用區是不同的實體機房。在同一地域内可用區與可用區之間内網互通,可用區之間可以做到故障隔離。

<b>負載均衡服務</b>:負載均衡是對多台雲伺服器進行流量分發的服務。負載均衡通過流量分發,可以橫向擴充應用系統對外的服務能力,同時通過消除單點故障提升應用系統的可用性。

<b>雲伺服器</b>:雲伺服器是一種處理能力可彈性伸縮的計算服務,其管理方式比實體伺服器更簡單高效,能夠快速建構業務系統,降低開發運維的難度和整體it成本。雲伺服器整合了計算、存儲與網絡資源等it基礎設施能力。

<b>雲資料庫</b>:關系型雲資料庫服務為使用者提供線上資料庫服務。同時提供了資料庫線上擴容、備份復原、性能監測及分析等功能。

下圖是目前線上教育公司常見的部署架構:

線上教育業務系統雲上高可用部署架構設計

使用者通過網際網路通路部署在雲上的資源,通路會通過負載均衡分發到後端多台雲伺服器上,雲伺服器上的部署的線上教育應用通路雲資料庫進行資料的存取。這個部署架構在一定程度上滿足了應用的高可用性要求,比如,雲伺服器1出現故障時,雲伺服器2可接管全部請求,應用不至于停止服務。另外,由于雲資料庫具備主備容災能力,在主資料庫出現問題,可以切換到備份資料庫,應用也不會受到長時間的影響。

但是由于所有的雲資源都部署在同一個可用區,在極端情況出現時,比如該可用區的對外網絡出現中斷,或者該可用區的雲伺服器出現整體性故障時,應用還是會受到嚴重影響,甚至無法對外提供服務。雖然這種情況發生機率很低,但是對服務品質要求極高的線上教育系統,比如線上考試,線上授課等,還需要更高的可用性部署架構。

為了達到更高的可用性,建議進行多可用區的雲上高可用部署架構,這種部署架構分為三個要點:

線上教育業務系統雲上高可用部署架構設計

第一,負載均衡層。利用了負載均衡服務跨可用區的高可用特性。目前領先的雲計算平台已經具備了此項能力,以阿裡雲為例,在建立負載均衡服務時,可以根據需要選擇負載均衡服務主備可用區,如下圖所示:

線上教育業務系統雲上高可用部署架構設計

該服務建立後将預設工作在主可用區,當主可用區發生故障時可切換到備可用區工作,對外的網際網路ip不發生變化,不需要對dns解析做任何調整。

第二,雲伺服器層。同時在兩個可用區購買并部署雲伺服器,當可用區a出現整體故障時,可以由可用區b的雲伺服器支撐業務。

第三,資料庫層。在資料庫層選擇雲服務供應商提供的多可用區版本的雲資料庫,還是以阿裡雲為例,其提供的rds mysql有多可用區版本,如下圖所示:

線上教育業務系統雲上高可用部署架構設計

選用了多可以區的rds mysql,主備資料庫被部署到不同的可用區,上圖中的資料庫主庫部署在可用區b,備庫部署在可用區c,主備之間的資料保持實時的同步。當主庫的可用區發生嚴重故障時,位于另外一個可用區的備庫提升為主庫。

這個部署方案中需要注意,由于可用區往往位于一個地域的兩個不同地點,互相間有幾十公裡的距離,是以難免會有一定的網絡延時,通常在2ms以内,是以,從負載均衡到另一個可用區的雲伺服器,以及雲伺服器到另外一個可用區的雲資料庫之間的延時,會比同可用區的互相通路有一定的延時增加,在應用部署時要考慮這個延時對應用的影響。

按照上述的高可用架構進行部署後,當可用區a出現災難故障時,應用整體不會受到影響,依舊可以對外提供服務,如下圖所示:

線上教育業務系統雲上高可用部署架構設計

       綜上所述,線上教育公司可以借助雲服務商提供的底層能力,快速的搭建基于多可用區的雲上高可用部署架構,快速、低成本的實作應用系統的“同城雙活”,極大的提高系統的容災能力,持續的服務好使用者。