Tenant
一个subscription只能和一个tenant建立信任关系,但一个tenant可能会和多个subscription建立信任关系。
Management group
通过management group,就能实现:
- 组织架构
- 提供另一个可实施组织和应用策略(比如:RBAC)的管理单元。
同时:
- root management group为顶级MG
- MG和Sub只能有一个父级单元
- 最多支持6级层次结构
Compliance Support
- Azure policies
- Azure RBAC
关于Root Management Group:
- 默认方式下是禁止访问的
- 无法被移动或删除
- 支持Azure RBAC
- Global Administrators必须被添加为root组的User Access Administrator才能对root MG进行访问
Subscription
微软的Azure Cloud应该是所有的Cloud供应商之间,数据中心最多的了。因此Azure就有一个paired regions的概念。所有的region都有一个配对的region,两者的物理距离至少300英里。任何时间内,配对的region中最多会有一个region进行升级操作。很多服务都和region有关,比如只在特定的region内提供。但也有一些服务是全球的,不和region绑定,比如:Blob Service。
Azure subscription是一种逻辑上的单元,其中包含了一组和Azure账户相关的服务。可以把subscription看作是安全性及账单的边界。其中包含了Azure AD中的账户。因此就可以针对不同的环境,比如dev,test,production创建三个不同的subscriptions。
一个subscription只能和一个tenant建立信任关系,但一个tenant可能会和多个subscription建立信任关系。
Subscription的类型包括:
- Free:包含200美金的余额,需要在一个月内用完,过期失效。之后一年内(严格讲是之后11个月内)有很多免费服务可以使用。
- Pay-As-You-Go
- Enterprise
- Student:可以获得100美元的余额,在12个月内可以使用。
Subscription:
- 从逻辑上将Resource Groups以及相关资源进行分组
- 同时也是azure中的billing unit
对subscription的理解:
- Billing unit
- 包含resource groups以及相关的resources
- Scoping level for governance and security
- 一个subscription只能和一个Azure AD tenant建立信任关系
Subscription的分类:https://azure.microsoft.com/en-gb/support/legal/offer-details/
subscription命名规则:
- 根据使用环境命名,例如:Prod/Dev/Staging
- 根据使用部门,团队,项目命名
- 根据区域进行划分,比如UK,US等
如何省钱:
- 对于稳定使用的Azure资源,不建议使用pay as you go的方式,可以使用reserved service
- Azure hybrid:对于有些资源,比如SQL Server,可以使用自己内部的服务器,而不是Azure的服务
- 选择适合的region,不同region内的同样服务可能价格会有所差异
Subscription和Management group
可以将subscriptions添加到一个management group,这样在management group中的所有设置都会被其中的subscriptions所继承。比如:可以在management group中设定可用region,以及VM的创建限制,那么其中的所有订阅及其中的用户都会受到相应的限制。
在Azure中的层级结构:Management Group > Subscriptions > Resource Group
MG对应于组织架构,Sub则是用于类似于Billing的分界,而RG则用于资源的组织和统一管理。
- MG can have multiple subs, but 1 sub can only be assigned to 1 MG
- Sub can have multiple RG
- RG can have multiple resources
Subs can be migrated between MGs。
Policy
Azure policy中可以定义: 允许的资源类型,允许的VM,允许的location,必填的tag及值,备份的要求等。
创建policy的过程包括:
- 浏览现有的policy模板
- 创建policy
- 定义policy应用的范围
- 检查policy评估结果
在定义policy的时候,可以从现有policy基础上创建,也可以从Github中导入,还可以创建自定义policy。
在一个policy中可以定义多个不同的policies(似乎不能大于100个)。
Assignments定义了policy将被应用于何种scope,比如可被应用于management group,或者subscription。
可以检测现有资源是否和正在定义的policy相符。
Azure Policy可以被应用到MG,Sub,and RG级别上.
Policy的作用:
- 控制成本
- 访问控制
- 限制地域: geographical compliance
Policy包括了:
- Policy definition: 定义相应的动作
- Policy assignment: 定义policy应用的范围,也就是scope(例如management group,subscription)
Initiative definition: 一系列policy的组合,用于实现某个单一的目标,比如确保VM达到相应的标准。
通过Azure Policy,可以定义一些规则,比如:
- 确保团队成员只会向允许的region部署资源
- 确保资源都添加了描述性tag
- 确保资源都会向Log服务发送数据
Policy示例:require tags
- Policy definition: 检查当VM被创建时时候添加了特定的标签,例如:Project:luosi. 如果该标签未被添加,则拒绝创建该资源。
- Policy assignment: 将该policy赋予将被创建VM所归属的Resource Group。
Resource Group
Resource Group可以提供:
- 统一的管理层
- 以group的方式统一管理组内资源,成为不同resources的逻辑容器
- 统一部署,更新,删除一组资源
- 提供security,auditing,tagging等功能
- 多种访问方式:portal,powershell,CLI,API
- 可根据lifecycle,安全等因素进行分组。
Azure资源只能存在于一个Resource Group中。一旦创建Resource Group,不能改名。RG中可以包含来自不同region的各种资源组合。
Azure Resource Manager
- is the orchestration layer for managing the Azure cloud
- 可通过Azure Portal,Azure CLI,Azure PowerShell等多种方式来管理Azure资源,其底层都是通过REST API进行管理的。
- Azure Resource Manager并不直接和Azure Resource进行沟通,而是通过Azure Resource Providers来进行。
ARM模板
通过ARM (Azure Resource Manager) JSON模板可以定义不同的Azure资源。通过ARM,可以提高部署Azure资源的一致性,比如在Dev,Test,Production环境中保持一致。其好处有很多:
- 保持部署的一致性
- 避免人工部署产生的错误
- 管理复杂的部署过程
- 通过代码管理整个基础框架
- 提高重用性
- 简化资源之间的协调
ARM中包含:
- Schema:定义一个部署中的所有Azure资源
- Parameters:
- Variables
- Functions
- Resources
- Outputs:定义了当模板运行时我们期待的输出信息,比如:新创建VM的IP/FQDN
Azure官网中有很多样本模板:https://azure.microsoft.com/en-us/resources/templates/
关于Tagging
名字: 最多512个字符
值:最多256个字符
注意:
- tags是不会继承的,也就是说,如果你在RG级别定义了tag,并不代表在RG中创建的资源会自动继承这些tag
- 每个资源最多能包含50个tags
Locking and Moving resources
- Locks允许你覆盖相应资源上的权限
- 可以在Sub,RG,以及相应资源上添加lock
- Lock将被应用到所有用户和角色上
Lock types:
- 只读: 允许授权用户读取资源,但不能更新或删除该资源
- 删除:允许授权用户读取,更改该资源,但不能删除
- Locks是具备继承性的,将从上级scope中继承
在生产环境下,可以通过添加ReadOnly lock来保护相应资源。
Managing Azure costs
影响cost的因素:
- 订阅类型: Free, Pay-as-you-go, Enterprise Agreement, Cloud Solution Provider (CSP)
- 资源类型: 例如storage account blob vs table storage
- 资源的使用: 比如整体CPU时间,网络流量,存储空间等
- 位置:在不同位置上同样资源的费用也不尽相同
最佳实践:
- 针对用例,选择最为适合的资源
- 理解对资源的需求
- 当不需要时,释放相应资源
- 充分利用云计算的优势,比如:自动扩容/降容,弹性计算等
- 在购买之前计划相应的费用
管理费用的工具
- pricing calculator
- total cost of ownership (TCO) calculator: 比较on-premises cost vs on cloud costs
- Microsoft cost management: analyze costs, create budget
计划云计算治理策略
包含:
- 定义相应规则Rules
- 定义Policies
- 实施Compliance standards
同时
- 控制资源的创建和使用
- 确保相应rules, policies, 及standards的实施