Azure 新的管理模式 —— Resource Manager
Azure 新的管理模式 —— Resource Manager¶
警告
您当前查看的页面是未经授权的转载!
如果当前版本排版错误,请前往查看最新版本:http://www.cnblogs.com/qin-nz/p/azrue-resource-manager-introduction.html
提示
更新时间:2016年01月02日。
Azure 资源管理器 ( Azure Resource Manager ) 是微软新提供的一种管理Azure资源的一种模式。
这种管理的思想不仅出现在命令行和PowerShell中,也出现在新版的 Azure Portal 中。
与传统的Service Management模式面向服务不同,资源组模型提供了更好的抽象。
在最新版Azure中,不同的资源将在逻辑上划分成不同的资源组(Resource Group)。
每个订阅可以包含多个资源组。
注解
Azure 资源管理器同样适用于由世纪互联运营的 Windows Azure,但不是支持所有内容。
为什么使用资源管理器¶
在使用命令行(Powershell)进行自动化管理的时候,可以使用传统的面向功能的命令,也可以使用面向资源的命令。
使用资源管理器模型有如下的优点:
- 将不同的资源抽象成一个资源组,方便对其进行整体管理
- 可以同步调整一个资源组内资源是使用情况
- 使用声明式的语法(json)来创建资源
- 使用 OAuth 2.0 或基于角色进行权限分配
- 账单可以安装资源组进行整合(只是方便查看,付费仍需按照订阅来)
在资源管理器模型下,虚拟机已经不需要再依赖于云服务了。
虚拟机的网卡也不再只有一块,我们可以根据需要来方便的管理虚拟机了。
提示
讲个历史,早期的Azure是不提供虚拟机的,也就是说在设计之出没有考虑到IaaS层。
后来根据客户的要求,硬生生添加上去了,是嵌套进云服务中的,有点不和逻辑。
同时导致存储服务不太能跟上大量IOPS的要求, 而后又搞出一套高级存储服务来提供支持。
资源管理模型¶
在使用资源组(Resource Group)之前, 首先应该了解Azure的管理模型。
- 订阅
先从我们最熟悉订阅开始,无论是通过MSDN,还是自己花钱,我们都会首先创建一个订阅。
订阅是计费的单位,我们需要为每个订阅指定付款方式(信用卡、MSDN权益预付等),
随后我们就可以在这个订阅下面创建虚拟机等资源啦。
提示
如果你真的只是把Azure当作一个虚拟机平台,那就太浪费了。(而且价格也比阿里云等的贵,尤其是由世纪互联运营的)
- 资源组
当我们使用管理Portal创建一个虚拟机的时候,默认会创建一个资源组,并把虚拟机放入其中。
当我们为此虚拟机创建了虚拟IP(VIP)/公用IP(PIP)时,这个IP地址也会加入虚拟机所在的资源组。
对虚拟机附加的磁盘也会放到相同的资源组内。
这就方便了我们对这个虚拟机的管理,比如删除时只要删除资源组即可,而不用像以前一样需要逐个服务地删除。
如果你启用了负载均衡,
还会涉及到故障域的概念(确保位于不同物理机架)和更新域(依次完成应用的升级),
而这些都要求在相同的资源组中。
- Azure活动目录(Azure Active Directory)
其实,在创建订阅之前,是先创建了一个活动目录的。
如果你使用微软账号创建的订阅,会被分配一个类似 @<youraccuont>live.onmicrosoft.com
的域名作为活动目录的域名。
如果你使用世纪互联的服务,会被分配一个类似 @<yourdomain>.partner.onmschina.cn
的域名作为活动目录的域名。
被分配的域名不可更改,但我们可以使用自己的域名作为主域名。
活动目录是微软管理用户、用户组和计算机的手段,现在利用Azure活动目录来进行Azure订阅的管理。
如果你的企业(或者你自己)有了一个活动目录,可以把它与Azure同步,这样就可以同步用户了(甚至可以使用单点登录,不过配置起来不容易)。
- 角色
引入活动目录的目的就是为了给用户(用户组、应用程序)一个角色。
我们可以对一个角色进行权限的定制,这样就有了基于角色的访问控制。
- 管理
当你(或者你的程序)需要管理Azure资源的时候,
使用自己的用户名/密码(或者用户名/证书)来登录,
随后可以使用不同的管理工具进行管理。
注解
对于一个用户而言,用户名类似与 admin@qin.nz
,而对于应用程序而已,用户名类似与 C97C267B-698B-44B0-8A7F-F0F3CCADE557
。
如何使用¶
- 如果你和我一样,在Windows平台上使用 Azure PowerShell,
那么可以使用包含-AzureRm
的 Cmdlet,可以使用如下命令查找可用的命令。
Get-Command -Name *-AzureRm*
- 如果你在需要在不同平台上使用 Azure CLI ,默认使用的是面向功能的命令模式,需要切换到 Azure Resource Manager (arm) 模式。
azure config mode arm
警告
本文暂时仅使用 Azure PowerShell 做介绍
登录¶
- 对于使用Microsoft Azure的,直接运行命令并在网页中登录。
Login-AzureRmAccount
- 对于使用世纪互联的Azure,请使用下面的命令:
Login-AzureRmAccount -EnvironmentName AzureChinaCloud
- 对于想尝试登录美国政府用的Azure,可以试试下面的命令:
Login-AzureRmAccount -EnvironmentName AzureUSGovernment
选择订阅¶
如果你的账号可以管理多个订阅,而你需要操作的又不是默认订阅,使用下面的命令切换。
(我踩过这个坑,还浪费了一次全球Azure的技术支持)
Select-AzureRmSubscription -SubscriptionId <your-subscription-id>
资源组¶
在新的 Azure Portal 中,当我们创建一个新的资源的时候都需要选择或新建一个资源组。
以前的门户中没有明确的给出资源组的概念,如果在同一数据中心创建了很多个免费的Web应用(以前称为网站),当需要升级其中一个的时候,
不得不通过Powershell先更改资源组后才能实现仅升级一个Web应用。
注意
请谨慎选择资源组,虽然大部分资源在随后可以更改资源组(使用命令行或Powershell),但并不是所有的资源在选定资源组后都可以更改。
使用下面的命令可以查看现有的资源组。
Get-AzureRmResourceGroup
Resource providers (资源提供商)¶
资源管理器的方式是对资源进行了抽象;
Get-AzureRmResourceProvider
同时,把不同的Azure功能抽象成不同的资源提供商,以我的账号为例,我注册了以下提供商的资源(未完整列出)。
注意到,其中不仅有Microsoft开头的,还有第三方的资源,如 Sendgrid 和 ClearDB 。
注解
由世纪互联运营的 Windows Azure 目前只有10种资源提供商,数量远低于 Microsoft Azure 提供的。
- Microsoft.ApiManagement
- Microsoft.AppService
- Microsoft.ClassicStorage
- Microsoft.Compute
- Microsoft.OperationalInsights
- Microsoft.Network
- Sendgrid.Email
- SuccessBricks.ClearDB
- microsoft.support
不同的资源提供商不一定在所有数据中心都提供服务,如 Microsoft.OperationalInsights
仅在 East US 和 West Europe 提供。
某一个提供商可以提供多种类型的资源,每种资源类型也可能在不同数据中心提供。
如 Microsoft.Network
可以提供如下的资源类型(未完整列出):
- virtualNetworks 虚拟网络(可用于私有云和公有云对接)
- publicIPAddresses 公有IP
- loadBalancers 负载均衡
- dnszones DNS托管
- dnszones/A DNS托管(IPv4地址解析)
- dnszones/CNAME DNS托管(别名解析)
每一种资源都是可以通过 REST API 来进行管理的。
Azure 作为边开发边商用的东西,API 是经常变的!版本号都是根据年月来命名的。
权限控制¶
细粒度的权限控制是我想要研究一下资源管理器的根本原因。
角色(Role)¶
Microsoft Azure 内置了以下几种角色(世纪互联提供其中23种),可以使用 Get-AzureRmRoleDefinition
查看最新角色。
- API Management Service Contributor
- Application Insights Component Contributor
- Automation Operator
- BizTalk Contributor
- Classic Network Contributor
- Classic Storage Account Contributor
- Classic Virtual Machine Contributor
- ClearDB MySQL DB Contributor
- Contributor
- Data Factory Contributor
- Data Lake Analytics Developer
- DevTest Labs User
- DNS Zone Contributor
- DocumentDB Account Contributor
- Intelligent Systems Account Contributor
- Network Contributor
- New Relic APM Account Contributor
- Owner
- Reader
- Redis Cache Contributor
- Scheduler Job Collections Contributor
- Search Service Contributor
- Security Manager
- SQL DB Contributor
- SQL Security Manager
- SQL Server Contributor
- Storage Account Contributor
- Traffic Manager Contributor
- User Access Administrator
- Virtual Machine Contributor
- Web Plan Contributor
- Website Contributor
操作 (Action / Operation)¶
截至2015年底,Microsoft Azure支持的操作类型多达970种(世纪互联支持316种),
某一种角色包含了多种类型的操作。
可以使用以下命令查看全部操作。
Get-AzureRmProviderOperation -OperationSearchString *
例如,”读取当前订阅包含的资源列表”
Operation : Microsoft.Resources/subscriptions/resources/read
OperationName : Get Subscription Resources
ProviderNamespace : Microsoft Resources
ResourceName : Subscription Resource
Description : Gets resources of a subscription.
角色与操作¶
对于内置的角色而已,每一中角色都包含了允许的一组操作。
例如 Reader 角色可以访问所有以 read
结尾的操作。
Name : Reader
Id : acdd72a7-3385-48ef-bd42-f606fba81ae7
IsCustom : False
Description : Lets you view everything, but not make any changes.
Actions : {*/read}
NotActions : {}
AssignableScopes : {/}
DNS Zone Contributor 除了可以管理DNS记录外,
还有登录验证的读取,资源组的读取,Insights提醒管理的权限,
还可以像微软提出技术支持请求。
Name : DNS Zone Contributor
Id : befefa01-2a29-4197-83a8-272ff33ce314
IsCustom : False
Description : Lets you manage DNS zones and record sets in Azure DNS, but does not let you
control who has access to them.
Actions : {Microsoft.Authorization/*/read, Microsoft.Insights/alertRules/*,
Microsoft.Network/dnsZones/*, Microsoft.Resources/deployments/*,
Microsoft.Resources/subscriptions/resourceGroups/read,Microsoft.Support/*}
NotActions : {}
AssignableScopes : {/}
授予权限¶
用户/用户组/应用程序可以被授予多个角色,而每个角色具有一些操作的权限,从而使用户/用户组/应用程序有权操作Azure。
例如:授予用户(要求AD中已存在) user@qin.nz 全局读取权限(由角色 Reader
定义)
New-AzureRmRoleAssignment -RoleDefinitionName Reader -SignInName user@qin.nz
到此为止,我已经把 Azure 中的资源管理器模型的设计思想和简单的使用思路做了介绍。
但并没有对其中细节的技术问题给出解决方案,请各位参考下面的更多资源。
声明
Azure 新的管理模式 —— Resource Manager 由 勤奋的小孩 创作,采用 知识共享 署名-相同方式共享 4.0 国际 许可协议进行许可。
本许可协议授权之外的使用权限可以从 http://space.cnblogs.com/msg/send/qin-nz 处获得。
Azure 新的管理模式 —— Resource Manager的更多相关文章
- Azure Resource Manager 概述
应用程序的基础结构通常由许多组件构成:可能有虚拟机.存储帐户和虚拟网络,或 Web 应用.数据库.数据库服务器和第三方服务. 这些组件不会以独立的实体出现,而是以单个实体的相关部件和依赖部件出现. 如 ...
- SQL Server 2014 虚拟机的自动备份 (Resource Manager)
自动备份将在运行 SQL Server 2014 Standard 或 Enterprise 的 Azure VM 上自动为所有现有数据库和新数据库配置托管备份到 Azure. 这样,便可以配置使用持 ...
- 排查在 Azure 中创建新 Linux 虚拟机时遇到的 Resource Manager 部署问题
本文内容 常见问题 收集活动日志 问题:自定义映像:预配错误 问题:自定义/库/应用商店映像:分配失败 后续步骤 尝试创建新的 Azure 虚拟机 (VM) 时,遇到的常见错误是预配失败或分配失败. ...
- 规划将 IaaS 资源从经典部署模型迁移到 Azure Resource Manager
尽管 Azure 资源管理器提供了许多精彩功能,但请务必计划迁移,以确保一切顺利进行. 花时间进行规划可确保执行迁移活动时不会遇到问题. Note 以下指导的主要参与者为 Azure 客户顾问团队,以 ...
- 有关平台支持的从经典部署模型到 Azure Resource Manager 的迁移的技术深入探讨
本文将深入探讨如何从 Azure 经典部署模型迁移到 Azure Resource Manager 部署模型. 本文将介绍资源和功能级别的资源,让用户了解 Azure 平台如何在两种部署模型之间迁移资 ...
- 在 Azure Resource Manager 中为虚拟机设置密钥保管库
Note Azure 具有两种不同的部署模型,用于创建和处理资源:Resource Manager 模型和经典模型.本文介绍使用 Resource Manager 部署模型.Azure 建议对大多数新 ...
- 为 Azure Resource Manager 中的虚拟机设置 WinRM 访问权限
Azure 服务管理中的 WinRM 与 Azure Resource Manager Note Azure 具有用于创建和处理资源的两个不同的部署模型:Resource Manager 和经典. 本 ...
- 平台支持的从经典部署模型到 Azure Resource Manager 的 IaaS 资源迁移
本文介绍如何才能将基础结构即服务 (IaaS) 资源从经典部署模型迁移到 Resource Manager 部署模型. 用户可以阅读有关 Azure Resource Manager 功能和优点的更多 ...
- 有关从经典部署模型迁移到 Azure Resource Manager 部署模型的常见问题
此迁移计划是否影响 Azure 虚拟机上运行的任何现有服务或应用程序? 不可以. VM(经典)是公开上市的完全受支持的服务. 你可以继续使用这些资源来拓展你在 Azure 上的足迹. 如果我近期不打算 ...
随机推荐
- Blender 之 Splash 代码分析
注:以下内容基于 Blender 2.7x 版本工程,其它低版本可能有改动. Blender启动完成时,会出现一个画面,英文叫Splash.默认是打开的,可以在设置里关闭.在文件菜单里点击用户首选项( ...
- oracle内存粒度
一,什么是内存粒度? When a database instance starts up, the amount of memory allocated is determined by the a ...
- 【leetcode】LRU Cache
题目简述: Design and implement a data structure for Least Recently Used (LRU) cache. It should support t ...
- YUV格式介绍
原文链接:http://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html YUV格式有两大类:planar和packed.对于plana ...
- 用WinForm写的员工考勤项目!!!!!!
先说几句,作为一个还在学习的程序员,掌握的知识有限:但我利用自身所学,给一些像我一样还在学习的码农提供我的绵薄之力! 写的不好,但是尽力了,希望大牛指点.多多吐槽!!! 好了开始说项目需求: 实现新增 ...
- trigger() --工作中问题nav样式
自动执行某元素的某个事件 $("#div").trigger("click"); //让系统自动执行单击事件 适用于nav样式中,下面横线绝对定位于nav.o ...
- .NET 项目代码风格要求
原文:http://kb.cnblogs.com/page/179593/ 项目代码风格要求 PDF版下载:项目代码风格要求V1.0.pdf 代码风格没有正确与否,重要的是整齐划一,这是我拟的一份&l ...
- BZOJ2763 [JLOI2011]飞行路线(SPFA + DP)
题目 Source http://www.lydsy.com/JudgeOnline/problem.php?id=2763 Description Alice和Bob现在要乘飞机旅行,他们选择了一家 ...
- 纯css来实现提示框
用js用多了,就疏忽了最基本的css了---用title属性来实现提示框.下面言归正传------如何用css实现提示框: 1.利用title属性来实现鼠标滑过某个元素时,实现提示整段内容的功能(利用 ...
- XCode设置自己windows习惯的快捷键(比如Home、End键)
Xcode的preference(command+,)中可以设置Key Bindings.绑定自己习惯的快捷键.实测系统快捷键设置同样名字也可以生效,但操作比较繁琐这里就不介绍了. 1.打开Xcode ...