Azure云计算教程 - subscriptions


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的实施

文章作者: 逻思
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 逻思 !