於全球部屬雲端資料中心的基礎設施,盡可能地拉近與客戶的距離來降低網路延遲,並於這樣的基礎設施上,將其依地理區域來劃分,以達到容災、高可用的目的。Oracle Cloud Infrastructure,關於雲端運算的定義請參考 (Cloud-Computing-Definition)
雲端基礎設施全球足跡
於2020年2月為止於全球有21個區域(regions),當中包含商務用途與政府單位,在供應商基礎設施的合作上,本來在許多業務都為競爭關係的微軟與甲骨文,也宣佈雲端平台互通的合作協議,讓彼此的客戶可以在兩種雲端環境下,輕鬆搬移資料與作業,也能應用不同成即在兩家供應商的雲端平台上,例如將Oracle ERP及底層Oracle 資料庫分別跑在Azure及Oracle Cloud上,給使用客戶更多的選項可以選擇連結Azure的區域,如若將環境同時運行於OCI與Azure便能真正達到多雲(Multi-Cloud)的部屬。
實體架構
在雲端全球部屬下,以實體與邏輯劃分設計雲端基礎設施架構,以做到不同程度的保護,此章節研究各劃分區域含意與如何規劃的準則。
區域
區域(Region) 是一個大都會等級的地理區域,區域內包含一個以上的可用區域(Availability Domains, AD),譬如北美洲US East (Ashburn)或是US West (Phoenix) 等…,登入控制台後可以在管理區域裡看到訂閱的區域,並可以設置家區域(Home Region) 作為預設區域
可用區
在一個區域內,具有可用性區(Availability Domains)的概念,簡稱AD。這些可用區是透過低延遲與高頻寬的網路,互相連接於一個區域內,在有些大區域內,具有三個可用性區相互連接,透過完全隔離的數據中心(Data Center)來達到容錯,彼此間不共享任何硬體設備,例如電源與內部網路。如圖,當一個可用區可能因為天災,例如淹水與地震,造成大規模的故障導致AD1停擺,這時候還有AD2和AD3來接手服務。
故障區
在可用區域當中,則具有多個稱為故障區(Fault Domains, FD)的構造,這是以一組硬體設備搭建而成的基礎結構,做到防止於可用區域內單點故障的功能,也稱其為可用區域中的邏輯數據中心,與實體數據中心(AD)做搭配以達到不同層級的保護,如圖。
基礎設施高可用設計
為了快速的將資料中心(Data center)部屬全世界,雲端基礎設施於全球部屬上某些國家,是以一個區域內含一個可用區開始,但為了達到備援,一個國家內目標上則會有一對的區域,舉例日本(東京)與日本(大阪),並有針對可用性、可管理性、效能有則服務品質協議(Service Level Agreement, SLA)的保證。
小結:
雲端實體架構為區域(Regions) → 可用區(AD) →故障區(FD),那當我們要部屬我們的雲端環境,該如何做選擇呢?以下提供三個面向做思考:
- 延遲與效能 : 選擇靠近的數據中心,拉近距離減少網路延遲與提高存取效能。
- 合規性要求 : 某些國家對資料的存放處有嚴格的要求,不允許資料離開國家。
- 服務可用性 : 基於避免地區型災難、硬體或人為造成的故障來設計風險分散。
邏輯架構
有別於前一節我們研究實體架構的數據中心,當我們註冊雲服務所得到的帳戶,這就是租戶(Tenancy),為一個邏輯的架構,而租戶也等同於最高層級的根區間(Root Compartment)。
區間
區間(Compartment)是一群資源(Resources)集合的邏輯概念,雲端資源包含有運算(Compute)、儲存(Storage)、網路(Network)等等,在後面章節研究,使用上可以創建不同的區間,作用就是為了要隔離資源,以達到資源的控管,例如只有網管人員可以更改網路的設定,如果是資料庫管理員則無相關網路管理的權限。區間對區間也有包含與繼承的概念,最多可以包含六層,見下圖。
條件與限制:
1. 每一個資源隸屬於一個區間,不能同時存在多個區間內。
2. 資源與資源之間可以相互連接構成服務,即使在不同區間內。
3. 可以針對區間隨時新增刪除資源,或是移動至其他區間。
4. 區間是跨區域性的,不同區域的資源可以放置於同一個區間,只要有註冊此區域。
5. 區間可以是巢狀的,可向下包含六層,如圖4-5。
6. 應用尚可撰寫權限規則(Policy)給群組(Group)於區間的權限(4.2節)。
7. 可以針對區間做資源花費的統計,來控管預算並設定閾值。
搬移區間
在同一租戶內可以搬移區間到不同的父區間下,遷移區間時該區間下的所有內含物都會跟著一同遷移,包含子區間與資源,搬移時有些限制如下:
- 若搬移目的地的父區間下已有一同名區間則無法搬移。
- 若搬移來源與目的端的父區間名稱不能相同。
- 搬移時位於祖先區間內的權限規則需明定路徑才不會遺失該原則。
如圖,於ORACLE 區間內有一個權限規則為”Allow group DBA to manage buckets in compartment IT:Kxodia” 若將Kxodia區間遷移至Finance父區間底下,權限規則則會自動從IT:Kxodia改至Finance:Kxodia,DBA 群組將不會遺失權限。
如圖,若於IT父區間內有權限規則為”Allow group DBA to manage buckets in compartment Kxodia” ,那麼當搬遷Kxodia區間至Finance底下時,DBA group將會失去於Kxodia區間的權限,該權限規則也會變無效,需要手動移除
為什麼要有這樣的架構?我們當然也可以將全部的都塞入根區間 (租戶),但這並不是一個良好的設計,區間最主要的目的就是隔離資源,做到權限控管,當身為一名雲端架構師時,就必須釐清這些架構與資源,才能分配給不同的IT人員。