玩转ECS第6讲 | 弹性计算Region化部署和跨可用区容灾介绍
關鍵詞:彈性計算、單元化、跨可用區(qū)容災
演講嘉賓簡介:李鐘(謝頓),阿里云智能彈性計算高級技術專家。2015年7月加入阿里云彈性計算團隊,目前負責阿里云彈性計算管控架構團隊,主導彈性計算管控系統架構的優(yōu)化和演進。
以下內容根據演講視頻以及PPT整理而成。觀看回放
更多課程請進入“玩轉ECS詳情頁”了解
本次分享主要圍繞以下三個方面:
一、Region和可用區(qū)介紹
二、Endpoints和資源作用域
三、多可用區(qū)容災和Region化部署
彈性計算Region化部署和跨可用區(qū)容災本身是非常復雜的課題,本次分享由阿里云彈性計算架構負責人李鐘(謝頓)為大家介紹如何選擇Region,同時結合阿里云在Region化部署和跨可用區(qū)容災的實踐經驗,分享多region部署場景中如何使用阿里云彈性計算的最佳實踐,并結合彈性計算的實踐經驗探討如何基于阿里云多可用區(qū)實現跨地域容災。
一、Region和可用區(qū)介紹
該部分主要介紹Region和可用區(qū),包括阿里云建設Region和可用區(qū)的原因、劃分等。
1.Region(地域)與Available Zone(可用區(qū))
Region(地域):根據定義,Region是相互獨立的地理區(qū)域,Region中包含多個Available Zone。可通過阿里云Region和可用區(qū)分布圖直觀了解。
Available Zone(可用區(qū)):Available Zone是Region內網絡和電力相互獨立的區(qū)域,具有兩個主要特點。第一,Available Zone網絡和電力相互獨立,具有故障隔離能力。當一個可用區(qū)內部網絡、電力出現問題時,不會影響其他可用區(qū)。第二,相同Region內的可用區(qū)之間內網互通,通過高速網絡連接,網絡延遲低(ms級)。
即可用區(qū)之間有故障隔離,同時相同Region內的可用區(qū)之間網絡延遲較低,可以將多個可用區(qū)視為整體提供服務,也為后續(xù)做跨可用區(qū)容災提供了基礎。
此處需要指明,并不是先規(guī)定了地域和可用區(qū)后才發(fā)現可支持高可用服務建設,而是在有高可用服務需求的基礎上通過Region與可用區(qū)方式進行了資源劃分。
2.如何選擇Region?
選擇一個Region有以下三點重要影響因素:
第一,地域選擇需要符合相應政策和法律合規(guī)性需要。例如向美國提供服務,要求對應數據與服務器資源必須在該國家內部,那么根據下方Region與可用區(qū)分布,只能申請美西、美東兩處資源。
第二,需要根據所需云產品在各個地域的功能開通情況和SLA選擇合適區(qū)域。
第三,一般選擇距離用戶更近且網絡延遲更低的地域,保證用戶快速接入。
雖然Region的選擇看似條款化,但是實際選擇時是更為簡單直觀的,較易得到最優(yōu)選擇。
3.阿里云Region與可用區(qū)分布
目前為止,阿里云公共云在全球建設21個地域63個可用區(qū),資源正在快速增長中,未來將支持更多形態(tài)。
下圖所示體現了阿里云在全球多個地理位置提供服務的能力,可見Region是一個地理概念。例如當用戶在華北2(北京)Region購買資源時,對應的ECS、RDS產品的確是在該地域范圍內。
目前Region與可用區(qū)分布較集中在中國,其他國家地區(qū)也有分布,在南美與非洲缺少Region建設,是后續(xù)的發(fā)展方向。
而Region的使用稍顯復雜。與各個Region交會并不直接使用其名字,而是通過REGION_ID。REGION_ID看似雜亂,其實具有一定特點,可大致分為以下三種:
中國REGION_ID為cn-(城市名),如cn-hangzhou。
大面積國家REGION_ID為(國家代碼)-(方位)-(編號),如USA-EAST-2。
其他地區(qū)REGION_ID為(地區(qū))-(方位)-(編號)。
二、Endpoints和資源作用域
該部分介紹使用Region與可用區(qū)時需要關注的兩個關鍵點:Endpoints和資源作用域。
1. Endpoints
Endpoints是調用ECS API的接入地址。
調用ECS API首先需要獲取Endpoints,即需要知道需要調用的地域的域名,才能調用到相應服務。第二需要有AK,通過某種阿里云特定的算法對調用串做一些加簽。如此便可以完成一次請求。
如下表所示,根據不同Region類型,Endpoints接入方式有如下三種:
第一種類型是中心域名Region,其接入點域名地址是ecs.aliyuns.com。此類老地域使用兼容模式只能通過中心域名接入,如cn-beijing。
第二種類型是Region化域名,其接入點為Region化域名地址ecs.${REGION_ID}.aliyuns.com。此類Region使用Region化域名調用,兼容中心域名接入,如cn-zhangjiakou。
第三種類型開始考慮不兼容中心域名接入的Region化域名,只能通過Region化域名地址ecs.${REGION_ID}.aliyuns.com接入,如cn-heyuan。
針對以上三種類型Region的接入得到了最佳實踐。非中心域名的地域,建議使用Region化域名地址ecs.${REGION_ID}.aliyuns.com。部分Region只能使用中心域名訪問,后續(xù)會之間切換為Region化域名。
2.資源作用域
使用ECS過程中會有多種資源,每一種資源有其特定的作用域。
下表羅列了部分資源。如賬號、角色、AK此類為全局性信息,所有Region共享。實例、云盤為可用區(qū)級別的概念,創(chuàng)建實例、云盤都需要選擇一個特定的可用區(qū),但是實例只能掛載相同可用區(qū)的云盤。快照、鏡像資源、keypair、安全組的作用域均為Region,在Region內各個可用區(qū)均可訪問。當需要跨Region使用快照、鏡像資源時,需要先進行資源復制操作,在另一個Region上形成新資源才可以使用。
資源作用域并非規(guī)定成章,有時會存在變化,大部分時期是上述情況。
三、多可用區(qū)容災和Region化部署
該部分介紹如何利用Region與可用區(qū)地域分布以及可用區(qū)電力、網絡故障隔離和低延遲的特點實現多可用區(qū)容災和Region化部署。
1.跨可用區(qū)容災——冷備方式
冷備方式指兩個可用區(qū),一個主可用區(qū)運行,一個不運行作為備份。一旦運行中的可用區(qū)服務故障,部署并運行備份可用區(qū)。冷備方式較易實現,其缺點為主備切換耗時大(分鐘級)。
單可用區(qū)提供服務:如下圖所示,可用區(qū)a和可用區(qū)b同時提供兩套服務,由單可用區(qū)提供服務。正常情況下可用區(qū)a提供服務,可用區(qū)b的ECS服務不進行部署和運行,對應的SLB沒有流量。流量從DNS解析到可用區(qū)a的SLB,接入請求后SLB會分發(fā)到某個ECS。
RDS主備架構:兩個ECS訪問同一個RDS,RDS采用主備結構,主RDS提供讀寫服務,同時有一條路徑自動同步數據到備RDS,保證兩個可用區(qū)的數據一致性與及時性,為容災切換提供基礎。
無狀態(tài)服務:ECS部署無狀態(tài)服務,所有業(yè)務狀態(tài)存儲在數據庫中或可從數據庫恢復。如此才能在可用區(qū)a故障時將整個業(yè)務切換到可用區(qū)b。
故障恢復方案:可用區(qū)a、b存在電力、網絡的物理隔離,延遲低,發(fā)生可用區(qū)級別故障時可切換可用區(qū)提供服務。可用區(qū)a發(fā)生問題時,部署并運行可用區(qū)b服務,RDS主備切換,可用區(qū)a恢復后可繼續(xù)進行數據同步。切換DNS,可用區(qū)b SLB接收流量開始提供服務。
劣勢:冷備方式比單純的單個可用區(qū)提供服務有更強的容災能力,但是其缺點是切換可用區(qū)啟動ECS、啟動服務等、運行SLB等等操作耗費一定時間,屬于分鐘級別的容災。
2.跨可用區(qū)容災——雙活方式
雙活容災方式與冷備方式區(qū)別在于兩個可用區(qū)同時運行,數據同步。一旦某一可用區(qū)服務故障,另一可用區(qū)繼續(xù)提供服務。雙活方式同樣易于實現,且主備切換耗時低(s級)。
雙可用區(qū)同時提供服務:如下圖所示,有可用區(qū)a和可用區(qū)b同時提供兩套服務。SLB同時掛載兩個可用區(qū)的ECS服務,每個可用區(qū)的SLB需要將請求分發(fā)給兩個可用區(qū)的ECS。
RDS主備架構:自動同步數據,保證兩個可用區(qū)的數據一致性與及時性。正常情況下兩可用區(qū)服務均訪問RDS主節(jié)點。
無狀態(tài)服務:ECS部署無狀態(tài)服務,所有業(yè)務狀態(tài)存儲在數據庫中或可從數據庫恢復。
故障恢復方案:當一個可用區(qū)發(fā)生問題時,RDS可自動主備切換。DNS定時檢測SLB狀態(tài),屏蔽故障可用區(qū),SLB定時檢測ECS服務狀態(tài),屏蔽故障服務。該場景下大部分檢測自動實現,部分復雜場景下可能需要手動確認故障,但是該切換過程迅速,可實現秒級切換。
以上兩種跨可用區(qū)容災方式較為實用、常見,實現條件均是可用區(qū)之間具備網絡、電力的物理隔離以及低延遲特點。
3.跨Region部署
此處僅介紹較為簡單的跨Region部署模式。
首先進行地域劃分。Region化部署完成后,每個Region中由可用區(qū)容災的集群保證高可用性。但是客戶端調用地域時一個Region不能支持所有用戶與資源訪問。因此首先需要根據用戶或者資源所屬地域進行劃分,通過DNS服務獲取Region化地址。該DNS可能是阿里云提供的服務或其他服務,DNS根據用戶或資源返回相應的Region化地址。
例如某用戶訪問Region 1,則調用Region 1的服務提供相應支持,某用戶訪問Region 2,則調用Region 2的服務提供相應支持。
Region內雙可用區(qū)容災。地域劃分完成后,當可用區(qū)級別問題擴大到Region級別問題場景下,并未提供Region級別容災能力,但是提供了隔離能力。例如當Region1發(fā)生問題,無法切換到Region2進行容災,但是可以實現隔離,當Region 1出現問題時Region 2不受影響,即能夠保存一部分工作服務的能力。
若需要提供Region級別容災能力,需要實現跨Region的數據同步或復制,將一個Region的數據、用戶狀態(tài)等復制到另一個Region,即可實現Region切換。如此將更加復雜。Region級別容災等復雜方案此處不做介紹,有興趣者可自行查閱資料。
故障影響和恢復。用戶最終選擇的容災方式、故障隔離級別、故障恢復方案等需要根據自身業(yè)務需求、實現難度與故障概率等進行判斷,選擇最適合自身業(yè)務的方案。
綜上所述,本次分享介紹了Region、可用區(qū)的定義、故障隔離與低延遲特性、關鍵點以及跨可用區(qū)容災等基本概念。大家可以利用阿里云的基礎架構以及業(yè)務相應支持提高服務可用性,在一定級別實現容災,提供更好的服務。
感興趣的同學可通過學習更加具體的場景下不同跨可用區(qū)容災方案,更加深入了解跨Region容災。
關注百曉生,笑談云計算
原文鏈接:https://developer.aliyun.com/article/777714?
版權聲明:本文內容由阿里云實名注冊用戶自發(fā)貢獻,版權歸原作者所有,阿里云開發(fā)者社區(qū)不擁有其著作權,亦不承擔相應法律責任。具體規(guī)則請查看《阿里云開發(fā)者社區(qū)用戶服務協議》和《阿里云開發(fā)者社區(qū)知識產權保護指引》。如果您發(fā)現本社區(qū)中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區(qū)將立刻刪除涉嫌侵權內容。總結
以上是生活随笔為你收集整理的玩转ECS第6讲 | 弹性计算Region化部署和跨可用区容灾介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大促场景系统稳定性保障实践经验分享
- 下一篇: 前沿实践:垃圾回收器是如何演进的?