阿里雲高可用-容災解決方案

goodlife發表於2016-10-27

這兩天,一篇名為《IT之家因無法忍受阿里雲而遷移至XX雲》的文章引起了整個雲端計算行業的熱議。(袋鼠雲CTO江楓還專門寫了一篇熱評:點選閱讀原文。)

從目前得到的資訊看,其應該是在青島區域購買了一臺雲伺服器ECS,基於.net和自建SQL Server,並且應用和資料庫跑在同一臺雲伺服器上

IT之家,所有應用都部署在單臺ECS上,不具備高可用的特性。

即便阿里雲產品本身就有容災、高可用的特徵,但是因為一些使用者對阿里雲產品的不瞭解和自身應用架構不夠合理,也根本無法使其發揮該優勢。

其實,IT之家的事情不是個例,有很多其他企業在這方面很頭疼。

所以,袋鼠雲技術專家結合以往實踐經驗,總結出了一套切實可行的《阿里雲高可用-容災解決方案》,希望能和各位阿里雲上使用者一起探討。


一、阿里雲產品容災-高可用介紹


1、 SLB 容災-高可用介紹

阿里雲SLB產品使用開源軟體LVS+keeplived實現4層的負載均衡。

採用淘寶的Tengine實現7層的負載均衡。所有負載均衡均採用叢集部署,叢集之間實時會話同步,以消除伺服器單點,提升冗餘,保證服務穩定。在各個地域採用多物理機房部署,實現同城容災。

SLB在整體設計上讓其可用性高達99.99%。且能夠根據應用負載進行彈性擴容,在任意一臺SLB故障或流量波動等情況下都能做到不中斷對外服務。


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=
圖一


2、 ECS 容災-高可用介紹


雲伺服器ECS例項是一個虛擬的計算環境,包含了 CPU、記憶體、作業系統、磁碟、頻寬等最基礎的伺服器元件,是ECS提供給每個使用者的操作實體,就如同我們平時使用的虛機。

但需要確認的是,ECS自身是沒有容災和高可用方面的功能。

所以當我們在單臺ECS伺服器上部署各種應用時,特別是對於那些將應用服務,資料庫服務等都打包安裝在單臺ECS伺服器時就更要注意這點了。

那ECS自身沒有容災-高可用這樣的功能,對於在單臺ECS上部署各種服務,一旦ECS故障就只能眼睜睜的看著它down機對外停止服務麼?

此時如果產品自身沒有容災和高可用功能,我們可以從架構上來彌補這個短板。

比如:在應用前端購買SLB產品,後端相同應用部署至少兩臺ECS伺服器,或者是使用阿里雲的彈性伸縮技術,根據自定義ECS自身資源的使用規則來進行彈性擴容。這樣即便其中一臺ECS伺服器down機或者資源利用超負荷,也不會使我們的服務對外終止。

ECS具備的一些優勢:

穩定性: 服務可用性高達 99.95%,資料可靠性高達 99.9999999%。

容災備份: 每份資料多份副本儲存。

彈性擴容:支援線上不停機升級頻寬;5分鐘內停機升級CPU和記憶體。

成本低:無需一次性大投入,按需購買,彈性付費,靈活應對業務變化。

3、OSS 容災-高可用介紹


阿里雲物件儲存服務(簡稱OSS),是阿里雲提供的海量、安全、低成本、高可靠的雲端儲存服務。

OSS底層依託於盤古儲存,採用分散式架構部署,無單點故障存在。檔案以chunk分塊方式儲存,預設每塊存三副本,並分佈在不同機架的ChunkServer節點上。在盤古叢集中Master允許當機1臺,Chunkserver允許同時當機2臺,KVServer與WS允許當機多臺。KV叢集採用CS架構,故障自動恢復, 對應用透明,WS為無狀態接入層,通過SLB實現容錯與負載分擔。


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=
圖二 

4、RDS 容災-高可用介紹


阿里雲關係型資料庫(簡稱RDS):是一種穩定可靠、可彈性伸縮的線上資料庫服務。

RDS預設採用主備架構(備用例項正常情況下對使用者不可見),兩個例項位於不同伺服器,自動同步資料。主例項不可用時,系統會自動將資料庫連線切換至備用例項。切換是分鐘級別,而且不需要人工介入,全部由系統自動完成,應用系統也無需任何變更。這種架構足以滿足90% 使用者的高可用需求。


如下圖:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=
圖三

使用者如果對系統可用性有更高的要求,希望可以做到機房容災,阿里雲RDS可以選擇購買多可用區RDS。多可用區是在單可用區的級別上,將同一地域的多個單可用區組合成的物理區域。相對於單可用區RDS例項,多可用區RDS例可以承受更高階別的災難,如下圖:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

圖四:RDS同城容災架構

除了同城容災之外,對於資料可靠性有強需求使用者,比如是有監管需求的金融業務場景,RDS提供異地災備例項,幫助使用者提升資料可靠性。

RDS通過資料傳輸服務(DTS)實現主例項和異地災備例項之間的實時同步。主例項和災備例項均搭建主備高可用架構,當主例項所在區域發生突發性自然災害等狀況,主節點(Master)和備節點(Slave)均無法連線時,可將異地災備例項切換為主例項,在應用端修改資料庫連結地址後,即可快速恢復應用的業務訪問。


如下圖:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

圖五:RDS異地容災架構



二、容災-高可用架構方案


1、雲上容災-高可用架構–通用架構


在阿里雲平臺上,對於中小型企業,業務量不是特別大,對異地容災要求不是特別強烈,則可採用以下高可用方案(如下圖:圖六),可以在同一地域下選擇購買雲產品。建議在VPC網路環境下,選擇同一可用區或者同地域不同可用區的雲產品。

同時建議ECS伺服器至少兩臺,避免單點故障,在前端購買SLB,提供負載功能,這樣當後端ECS資源使用緊張時可以直接橫向擴充套件,對業務無影響。

另外,資料庫業務儘量不要和應用服務部署在同一臺ECS上。防止不同服務之間資源搶佔,同時方便日常管理和後期擴容。資料庫伺服器推薦直接購買RDS產品,資料安全有保障,同時也不需要花太多精力去運維管理。


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

圖六

2、雲上容災-高可用架構—同城容災


對中大型使用者來說,希望業務系統要求具備同城容災的能力,可以考慮在同城不同可用區之間對原有應用架構做一套完整的備份。如果某個可以去出現像IDC機房斷電或者火災等故障時,可以通過前端切換DNS來及時恢復業務。

如下圖:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=
圖七

 

3、雲上容災-高可用架構—同城異地容災


對於一些大型企業在業務安全全性、服務可用性和資料可靠性方面既要求具備同城容災又要求具備異地容災時,可以採用這種容災架構方式既可以解決單機房故障也可以應對像地震等災難性故障。

不同地域之間可以採用阿里雲的高速通道進行私網通訊,保障資料庫之間的資料實時同步,將資料傳輸延遲降到最低。故障發生時可以通過前端DNS實現秒級切換,及時恢復業務。

如下圖:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=
圖八


想要更多瞭解阿里雲產品及實踐案例

點選以下連結:

阿里雲產品介紹(一):雲伺服器ECS

阿里雲產品介紹(二):雲伺服器ECS的孿生兄弟們

阿里雲產品介紹(三):雲資料庫RDS



相關文章