什麼是Azure Resource Manager?
首先我們看一下官網的介紹:
Azure Resource Manager
(資源管理器) 是 Azure 的部署和管理服務。 它提供一個管理層用於在 Azure 訂閱中創建、更新和刪除資源。 部署後,可以使用訪問控制、鎖和標記等管理功能來保護和組織資源。
其實就是一個計算資源的管家, 我們可以CRUD各種計算資源, 例如數據源(SQL & NoSQL), web程序, 虛擬機, 其他各種中間件, 但是Azure爲我們提供了多樣的訪問方式: 比如命令行(Azure CLI, PowerShell), 比如REST API, 還有Azure portal等等
結果一致的管理層
Azure Resource Manager 從某種意義上講, 也是一個中間件
, 扮演着解耦的功能, 將底層的操作都給屏蔽掉, 封裝成統一的用戶接口, 所以相同的指令, 通過不同的客戶端, 不同的協議, 傳達到Azure Resource Manager, 他們返回的結果總是相同的, 這也是爲什麼官網上強調所有的客戶端都會返回一致的結果和功能
.
來自官網的原文
當用戶從任意 Azure 工具、API 或 SDK 發送請求時,資源管理器將會接收該請求。 它會對該請求進行身份驗證和授權。 資源管理器將請求發送到 Azure 服務,後者將執行請求的操作。 由於所有請求是通過同一個 API 處理的,因此在所有不同的工具中會看到一致的結果和功能。
下圖演示了 Azure 資源管理器在處理 Azure 請求時發揮的作用。
Resource Manager 分爲四個管理級別:
Azure 提供四個級別的範圍:
- 管理組
- 訂閱
- 資源組
- 資源
資源組
定義資源組時,需要考慮以下幾個重要因素:
- 首先創建資源組時有點像
HDFS
的name node
, 需要指定地址保存從節點的元數據, 也就是資源配置信息. - 組中的所有資源應該共享相同的生命週期。 將這些資源一同部署、更新和刪除。 如果某個資源(例如數據庫服務器)需要採用
不同的部署週期
,則它應在另一個
資源組中, 比如數據源如redis和mysql 就應該和 Web app就應該在不同的資源組部署. - 每個資源只能在一個資源組中。
- 隨時可以在資源組添加或刪除資源。
- 可以將資源從一個資源組移到另一個組。
- 資源組可以包含位於不同區域的資源。
- 資源組可用於劃分對管理操作的訪問控制。
- 資源可與其他資源組中的資源進行交互。 如果兩個資源相關,但不共享相同的生命週期,那麼這種交互很常見(例如,Web 應用連接到數據庫)。
使用 Resource Manager 的優勢
使用資源管理器可以:
- 通過聲明性模板而非腳本來管理基礎結構。
- 以
組
的形式部署、管理和監視解決方案的所有資源,而不是單獨處理這些資源。 - 在整個開發生命週期內重複部署解決方案,並確保以一致的狀態部署資源。
- 定義各資源之間的依賴關係,使其按正確的順序進行部署。
- 將訪問控制應用到資源組中的所有服務,因爲基於角色的訪問控制 (RBAC) 已在本機集成到管理平臺。
- 將標記應用到資源,以邏輯方式組織訂閱中的所有資源。
- 通過查看一組共享相同標記的資源的成本來理清組織的帳單。
最後Resource Manager是高可用的, 可能是異地多活(我瞎說的).