【云治理】Azure企业脚手架:规定性订阅治理
视频号
微信公众号
知识星球
企业越来越多地采用公共云,因为它具有灵活性和灵活性。他们依靠云的优势来创造收入并优化业务的资源使用。Microsoft Azure提供了大量服务和功能,企业可以像构建块一样组装这些服务和功能来解决各种工作负载和应用程序。
决定使用Microsoft Azure只是实现云优势的第一步。第二步是了解企业如何有效使用Azure,并确定需要具备的基线功能,以解决以下问题:
- “我担心数据主权;我如何确保我的数据和系统符合我们的监管要求?”
- “我如何知道每种资源支持的是什么,这样我才能对其进行核算并准确地收回?”
- “我想确保我们在公共云中部署或做的一切都从安全第一的心态开始,我该如何帮助实现这一点?”
没有护栏的空订阅的前景令人望而生畏。此空格可能会阻碍您迁移到Azure。
本文为技术专业人员提供了一个起点,以解决治理需求,并在其与敏捷性需求之间取得平衡。它引入了企业脚手架的概念,指导组织以安全的方式实施和管理其Azure环境。它为制定有效和高效的控制措施提供了框架。
治理需求
在迁移到Azure时,您必须尽早解决治理主题,以确保在企业内成功使用云。不幸的是,创建全面治理系统的时间和官僚作风意味着一些业务组在不涉及企业IT的情况下直接求助于提供商。如果资源管理不当,这种方法可能会让企业面临妥协。公共云的特点——灵活性、灵活性和基于消费的定价——对于需要快速满足客户(内部和外部)需求的业务组来说很重要。但企业IT需要确保数据和系统得到有效保护。
创建建筑时,脚手架用于创建结构的基础。脚手架引导总体轮廓,并为安装更永久的系统提供锚点。企业脚手架是一样的:一组灵活的控件和Azure功能,为环境提供结构,并为构建在公共云上的服务提供锚。它为构建者(It和业务组)提供了创建和附加新服务的基础,同时考虑到交付速度。
脚手架是基于我们从与各种规模的客户的多次接触中收集到的实践。这些客户包括在云中开发解决方案的小型组织,以及正在迁移工作负载和开发云原生解决方案的大型跨国企业和独立软件供应商。企业脚手架是“专门构建的”,可以灵活地支持传统的IT工作负载和敏捷工作负载,例如开发人员基于Azure平台功能创建软件即服务(SaaS)应用程序。
企业脚手架可以作为Azure中每个新订阅的基础。它使管理员能够确保工作负载满足组织的最低治理要求,而不会阻止业务组和开发人员快速实现自己的目标。我们的经验表明,这大大加速而不是阻碍了公共云的增长。
笔记
微软发布了一项名为Azure蓝图的新功能,使您能够跨订阅和管理组打包、管理和部署通用映像、模板、策略和脚本。这种能力是脚手架作为参考模型的目的和将该模型部署到您的组织之间的桥梁。
下图显示了脚手架的组件。该基金会依赖于一个坚实的管理层次结构和订阅计划。支柱包括资源管理器策略和强大的命名标准。脚手架的其余部分是Azure的核心功能和特性,它们能够实现并连接一个安全和可管理的环境。
定义层次结构
脚手架的基础是企业协议(EA)注册到订阅和资源组的层次结构和关系。注册从合同的角度定义了贵公司内Azure服务的形式和使用。在企业协议中,您可以将环境进一步细分为部门、帐户、订阅和资源组,以匹配组织的结构。
Azure订阅是包含所有资源的基本单元。它还定义了Azure中的几个限制,例如核心数量、虚拟网络和其他资源。资源组用于进一步完善订阅模型,并实现更自然的资源分组。
每个企业都是不同的,上图中的层次结构使Azure在公司内部的组织方式具有很大的灵活性。对层次结构进行建模以反映公司的计费、资源管理和资源访问需求是在公共云中启动时做出的第一个也是最重要的决定。
部门和账户
EA注册的三种常见模式是:
功能模式:
业务单元模式:
地理格局:
尽管这些模式有自己的位置,但业务单元模式因其在建模组织成本模型以及反映控制范围方面的灵活性而越来越多地被采用。微软的核心工程和运营团队已经创建了一个以联邦、州和地方为模型的业务单元模式的有效子集。有关详细信息,请参阅组织订阅和资源组。
Azure管理组
Microsoft现在提供了另一种建模层次结构的方法:Azure管理组。管理组比部门和账户灵活得多,它们可以嵌套到六个级别。管理组允许您创建一个独立于计费层次结构的层次结构,仅用于有效管理资源。管理组可以镜像您的计费层次结构,而且企业通常都是这样开始的。但是,当您使用管理组对组织进行建模、将相关订阅分组(无论其在计费层次结构中的位置如何)并分配常见角色、策略和计划时,管理组的功能就在于此。一些例子包括:
- 生产与非生产。一些企业创建管理组来识别其生产和非生产订阅。管理组使这些客户能够更轻松地管理角色和策略。例如,非生产订阅可能允许开发人员访问“贡献者”,但在生产中,他们只能访问“读者”。
- 内部服务与外部服务。企业通常对内部服务和面向客户的服务有不同的要求、策略和角色。
精心设计的管理小组,以及Azure政策和政策倡议,是Azure高效治理的支柱。
订阅
在决定您的部门和帐户(或管理组)时,您主要是在评估如何安排Azure环境以匹配您的组织。然而,订阅才是真正的工作所在,您在这里的决策会影响安全性、可扩展性和计费。许多组织使用以下模式作为指南:
- 应用程序/服务:订阅表示应用程序或服务(应用程序组合)
- 生命周期:订阅表示服务的生命周期,如生产或开发。
- 部门:订阅代表组织中的部门。
前两种模式是最常用的,强烈推荐使用这两种模式。生命周期方法适用于大多数组织。在这种情况下,一般建议使用两个基本订阅,生产和非生产,然后使用资源组进一步分离环境。
资源组
Azure资源管理器使您能够将资源组织到有意义的组中进行管理、计费或自然亲和。资源组是具有公共生命周期或共享属性(如“所有SQL服务器”或“应用程序a”)的资源容器。
资源组不能嵌套,并且资源只能属于一个资源组。某些操作可以作用于资源组中的所有资源。例如,删除资源组会删除该资源组中的所有资源。与订阅一样,在创建资源组时也有常见的模式,从传统的IT工作负载到敏捷的IT工作负荷都会有所不同:
- 传统的IT工作负载通常按同一生命周期内的项目分组,例如应用程序。按应用程序分组允许单独的应用程序管理。
- 敏捷的IT工作负载往往集中在面向外部客户的云应用程序上。资源组通常反映部署层(如web层或应用程序层)和管理层。
了解您的工作量有助于制定资源组策略。这些图案可以混合搭配。例如,共享服务资源组可以与敏捷工作负载资源组位于同一订阅中。
命名标准
脚手架的第一根支柱是一致的命名标准。设计良好的命名标准使您能够识别门户、账单和脚本中的资源。您可能已经有了内部部署基础设施的现有命名标准。将Azure添加到环境中时,应将这些命名标准扩展到Azure资源。
提示
对于命名约定:
- 审查并尽可能采用云采用框架命名和标记指南。本指南帮助您确定一个有意义的命名标准,并提供了大量示例。
- 使用资源管理器策略来帮助实施命名标准。
记住,以后很难更改名称,所以现在几分钟可以省去以后的麻烦。
将命名标准集中在那些更常用和搜索的资源上。例如,所有资源组都应遵循明确性的严格标准。
资源标签
资源标记与命名标准紧密一致。随着资源被添加到订阅中,出于计费、管理和运营目的对资源进行逻辑分类变得越来越重要。有关详细信息,请参阅使用标记组织Azure资源。
重要的
标签可能包含个人信息,可能属于GDPR的规定范围。仔细计划标签的管理。如果您正在查找有关GDPR的一般信息,请参阅Microsoft Service Trust Portal的GDPR部分。
除了计费和管理之外,标签还有很多用途。它们通常被用作自动化的一部分(见后面的部分)。如果不提前考虑,这可能会导致冲突。最佳做法是在企业级别(如ApplicationOwner和CostCenter)识别所有常见标签,并在使用自动化部署资源时一致地应用它们。
Azure政策和计划
脚手架的第二个支柱涉及使用Azure策略和计划,通过对订阅中的资源和服务执行规则(具有效果)来管理风险。Azure策略计划是旨在实现单个目标的策略集合。然后将政策和举措分配到资源范围,以开始执行这些政策。
当与前面提到的管理小组一起使用时,政策和举措甚至更加强大。管理组允许将计划或策略分配给一整套订阅。
资源管理器策略的常见用法
政策和计划是强大的Azure工具。策略允许公司为传统IT工作负载提供控制,为业务线应用程序提供稳定性,同时也允许更灵活的工作负载开发,例如在不使企业面临额外风险的情况下开发客户应用程序。最常见的策略模式是:
- 地理法规遵从性和数据主权。Azure在世界各地拥有越来越多的地区。企业通常需要确保特定范围内的资源保留在一个地理区域内,以满足监管要求。
- 避免公开服务器。Azure策略可以禁止部署某些资源类型。通常会创建一个策略来拒绝在特定范围内创建公共IP,从而避免服务器意外暴露在互联网上。
- 成本管理和元数据。资源标签通常用于向资源和资源组(如CostCenter和Owner)添加重要的计费数据。这些标签对于资源的准确计费和管理是非常宝贵的。策略可以强制将资源标签应用于所有部署的资源,使其更易于管理。
举措的共同用途
计划为企业提供了将逻辑策略分组并将其作为单个实体进行跟踪的能力。计划有助于企业解决敏捷和传统工作负载的需求。倡议的常见用途包括:
- 在Microsoft Defender for Cloud中启用监控。这是Azure策略中的默认计划,也是计划的一个很好的例子。它使策略能够识别未加密的SQL数据库、虚拟机(VM)漏洞以及更常见的安全相关需求。
- 具体监管举措。企业通常将管理要求(如HIPAA)的通用策略分组,以便有效地跟踪控制和对这些控制的遵守情况。
- 资源类型和SKU。创建一个限制可以部署的资源类型以及可以部署的SKU的计划,有助于控制成本,并确保您的组织只部署您的团队有技能和程序支持的资源。
提示
我们建议您始终使用计划定义,而不是策略定义。将计划分配到范围(如订阅或管理组)后,您可以轻松地将另一个策略添加到计划中,而无需更改任何分配。这使得了解所应用的内容和跟踪合规性变得更加容易。
政策和倡议分配
创建策略并将其分组为逻辑计划后,必须将策略分配给一个范围,例如管理组、订阅或资源组。分配还允许您从策略的分配中排除子范围。例如,如果您拒绝在订阅中创建公共IP,则可以为连接到受保护DMZ的资源组创建具有排除的分配。
Azure策略GitHub存储库中提供了显示如何将策略和计划应用于Azure中的资源的示例。
身份和访问管理
采用公共云时要问的关键问题是“谁应该有权访问资源?”和“我如何控制这种访问?”控制对Azure门户和资源的访问对您在云中的资产的长期安全至关重要。
为了确保对资源的访问安全,您将首先配置身份提供程序,然后配置角色和访问权限。连接到本地Active Directory的Azure Active Directory(Azure AD)是Azure中身份的基础。但是,Azure AD与本地Active Directory不同,了解什么是Azure AD租户以及它与您的注册之间的关系很重要。查看Azure中的资源访问管理,以深入了解Azure AD和本地Active Directory。若要将本地目录连接并同步到Azure AD,请在本地安装并配置Azure AD connect工具。
Azure最初发布时,对订阅的访问控制是基本的:可以为用户分配管理员或联合管理员角色。访问此经典模型中的订阅意味着访问门户中的所有资源。这种细粒度控制的缺乏导致了订阅的激增,从而为注册提供了合理级别的访问控制。订阅量的激增已不再需要。使用Azure基于角色的访问控制(RBAC),您可以将用户分配给提供通用权限的标准角色,如所有者、参与者或读取器,甚至可以创建自己的角色。
在实施Azure基于角色的访问控制时,强烈建议采用以下做法:
- 控制订阅的管理员和联合管理员角色,因为这些角色具有广泛的权限。如果订阅所有者需要管理Azure经典部署,您只需要将其添加为联合管理员。
- 使用管理组可以跨多个订阅分配角色,并减轻在订阅级别管理角色的负担。
- 将Azure用户添加到Active Directory中的组(例如,Application X Owners)中。使用同步组为组成员提供管理包含应用程序的资源组的适当权限。
- 遵循给予完成预期工作所需最少特权的原则。
重要的
请考虑使用Azure AD特权身份管理、Azure多因素身份验证和Azure AD条件访问功能,以在Azure订阅中提供更好的安全性和管理操作的可见性。这些功能来自有效的Azure AD Premium许可证(取决于功能),以进一步保护和管理您的身份。Azure AD PIM通过审批工作流实现实时管理访问,并对管理员激活和活动进行全面审计。Azure多因素身份验证是另一项关键功能,它支持登录Azure门户的两步验证。当与Azure AD Conditional Access控件相结合时,您可以有效地管理您的妥协风险。
规划和准备您的身份和访问控制,并遵循Azure身份管理最佳实践,是您可以采用的最佳风险缓解策略之一,应被视为每次部署的强制性策略。
安全
传统上,云应用的最大障碍之一是对安全性的担忧。IT风险经理和安全部门需要确保Azure中的资源在默认情况下得到保护和安全。Azure提供了可用于保护资源的功能,同时检测和消除针对这些资源的威胁。
Microsoft云卫士
Microsoft Defender for Cloud除了提供高级威胁保护外,还提供了整个环境中资源安全状态的统一视图。云卫士是一个开放平台,使微软合作伙伴能够创建插入并增强其功能的软件。云卫士免费层的基线功能提供了增强您安全态势的评估和建议。它的付费层实现了额外的宝贵功能,如即时特权访问和自适应应用程序控制(allowlists)。
提示
云卫士是一个功能强大的工具,它会定期进行改进,并提供新功能,用于检测威胁和保护您的企业。强烈建议始终启用云卫士。
Azure资源的锁定
随着您的组织将核心服务添加到订阅中,避免业务中断变得越来越重要。一种常见的中断发生在Azure订阅中执行的脚本或工具无意中删除资源时。锁限制了对高价值资源的操作,修改或删除这些资源会产生重大影响。您可以对订阅、资源组或单个资源应用锁。将锁应用于基础资源,如虚拟网络、网关、网络安全组和密钥存储帐户。
Azure的安全DevOps工具包
Azure安全DevOps工具包(AzSK)是一个脚本、工具、扩展和自动化功能的集合,最初由微软自己的IT团队创建,并通过GitHub作为开源发布。AzSK通过广泛的自动化和将安全顺利集成到本地DevOps工作流中,满足团队的端到端Azure订阅和资源安全需求,帮助实现以下六个重点领域的安全DevOps:
- 确保订阅安全
- 实现安全开发
- 将安全性集成到CI/CD中
- 持续保证
- 警报和监控
- 云风险治理
AzSK是一套丰富的工具、脚本和信息,是完整Azure治理计划的重要组成部分,将其纳入您的脚手架对于支持您的组织风险管理目标至关重要。
Azure更新管理
确保环境安全的关键任务之一是确保服务器使用最新更新进行修补。虽然有许多工具可以实现这一点,但Azure提供了Azure更新管理解决方案,以解决关键操作系统补丁的识别和推出问题。它使用Azure Automation,这将在本指南稍后的“自动化”部分中介绍。
监控和警报
收集和分析遥测数据,以便了解您在Azure订阅中使用的服务的活动、性能指标、运行状况和可用性,这对于主动管理您的应用程序和基础设施至关重要,也是每个Azure订阅的基本需求。每个Azure服务都以活动日志、度量和诊断日志的形式发出遥测。
- 活动日志描述对订阅中的资源执行的所有操作。
- 度量是由资源发出的数字信息,用于描述资源的性能和运行状况。
- 诊断日志由Azure服务发出,并提供有关该服务操作的丰富、频繁的数据。
这些信息可以在多个层面上查看和采取行动,并且正在不断改进。Azure通过下图中列出的服务提供Azure资源的共享、核心和深度监控功能。
共享功能
- 警报:您可以从Azure资源中收集每个日志、事件和度量,但由于无法收到关键情况的通知并采取行动,这些数据仅用于历史目的和取证。Azure警报会主动通知您在所有应用程序和基础架构中定义的条件。您可以跨日志、事件和度量创建警报规则,这些规则使用操作组来通知收件人集。操作组还提供了使用外部操作(如webhook)自动修复的能力,以运行Azure Automation Runbook和Azure Functions。
- 仪表板:仪表板使您能够聚合监控视图,并跨资源和订阅组合数据,从而为您提供Azure资源遥测的企业范围视图。您可以创建和配置自己的视图,并与其他人共享。例如,您可以创建一个由各种瓦片组成的仪表板,供数据库管理员提供所有Azure数据库服务的信息,包括Azure SQL数据库、Azure database For PostgreSQL和Azure database For MySQL。
- 度量资源管理器:度量是由Azure资源生成的数值(CPU百分比或磁盘I/O度量),可以深入了解资源的操作和性能。使用度量资源管理器,您可以定义感兴趣的度量,并将其发送到日志分析以进行聚合和分析。
核心监测
- Azure监视器:Azure监视器是为监视Azure资源提供单一源的核心平台服务。Azure Monitor的Azure门户界面为Azure的所有监控功能提供了一个集中的起点,包括Application Insights、Log Analytics、网络监控、管理解决方案和服务地图的深度监控功能。使用Azure Monitor,您可以在整个云环境中可视化、查询、路由、归档和操作来自Azure资源的度量和日志。除了门户之外,您还可以通过Azure Monitor PowerShell cmdlet、跨平台CLI或Azure Monitor REST API检索数据。
- Azure顾问:Azure顾问不断监控您的订阅和环境中的遥测数据。它还推荐了成本优化Azure资源以及提高应用程序资源的性能、安全性和可用性的最佳实践。
- Azure服务运行状况:Azure服务运行状态可识别Azure服务中可能影响您的应用程序的任何问题,并帮助您规划计划维护窗口。
- 活动日志:活动日志描述了对订阅中资源的所有操作。它提供了一个审计跟踪,以确定对资源执行任何CRUD(创建、更新、删除)操作的内容、人员和时间。活动日志事件存储在平台中,可查询90天。您可以将活动日志吸收到日志分析中,以获得更长的保留期,并跨多个资源进行更深入的查询和分析。
深度应用程序监控
- Application Insights:Application Insights使您能够收集特定于应用程序的遥测数据,并监控云中或本地应用程序的性能、可用性和使用情况。通过使用支持的多种语言的SDK(包括.NET、JavaScript、Java、Node.js、Ruby和Python)来检测您的应用程序。Application Insights事件包含在同一个日志分析数据存储中,该数据存储支持基础结构和安全监控,使您能够通过丰富的查询语言随时间关联和聚合事件。
深度基础设施监控
- 日志分析:日志分析通过从各种来源收集遥测和其他数据,并提供查询语言和分析引擎,让您深入了解应用程序和资源的操作,在Azure监控中发挥着核心作用。您可以通过快速日志搜索和视图直接与日志分析数据交互,也可以在其他Azure服务中使用分析工具,将其数据存储在日志分析中,如Application Insights或Microsoft Defender for Cloud。
- 网络监控:Azure的网络监控服务使您能够深入了解网络流量、性能、安全性、连接和瓶颈。精心规划的网络设计应包括配置Azure网络监控服务,如network Watcher和ExpressRoute Monitor。
- 管理解决方案:管理解决方案是为应用程序或服务打包的逻辑、见解和预定义的日志分析查询集。他们依靠日志分析作为存储和分析事件数据的基础。示例管理解决方案包括监控容器和Azure SQL数据库分析。
- 服务地图:服务地图提供了一个图形视图,可以查看您的基础结构组件、它们的流程以及其他计算机和外部流程上的相互依存关系。它在日志分析中集成了事件、性能数据和管理解决方案。
提示
在创建单个警报之前,请创建和维护一组可在Azure警报中使用的共享操作组。这将使您能够集中维护收件人列表、通知传递方法(电子邮件、短信电话号码)和外部操作(Azure Automation Runbook、Azure Functions and Logic Apps、ITSM)的网络挂钩的生命周期。
成本管理
当你从内部部署云转移到公共云时,你将面临的一个主要变化是从资本支出(购买硬件)转向运营支出(在使用服务时支付服务费用)。这种转变还需要对成本进行更仔细的管理。云的好处是,你只需在不需要的时候关闭或调整服务的大小,就可以从根本上积极影响你使用的服务的成本。谨慎地在云中管理成本是一种最佳做法,也是成熟客户每天都要做的事情。
Microsoft提供了多种工具,可帮助您可视化、跟踪和管理成本。我们还提供全套API,使您能够自定义成本管理并将其集成到自己的工具和仪表板中。这些工具松散地分为Azure门户功能和外部功能。
Azure门户功能
这些工具可以为您提供有关成本的即时信息以及采取行动的能力。
- 订阅资源成本:Azure成本管理+计费视图位于门户中,可按资源或资源组快速查看您的成本和每日支出信息。
- Azure成本管理+计费:这允许您管理和分析您的Azure支出以及您在其他公共云提供商上的支出。有免费和付费两种级别,具有丰富的功能。
- Azure预算和行动小组:直到最近,了解某件事的成本并采取行动更多的是一项手动练习。随着Azure预算及其API的引入,现在您可以创建在成本达到阈值时运行的操作。例如,当测试资源组的消耗量达到其预算的100%时,您可以关闭它。
- Azure顾问:知道一些东西的成本只是战斗的一半;另一半是知道如何处理这些信息。Azure Advisor为您提供有关节省资金、提高可靠性甚至提高安全性的操作建议。
外部成本管理工具
- Power BI Azure消费洞察:你想为你的组织创建自己的可视化吗?如果是这样,那么Power BI的Azure Consumption Insights内容包就是您的首选工具。使用此内容包和Power BI,您可以创建自定义可视化来表示您的组织,对成本进行更深入的分析,并添加其他数据源以进一步丰富。
- Azure消费API:除了预算、保留实例和市场费用信息外,消费API还为您提供对成本和使用情况数据的编程访问。这些API仅适用于EA注册和一些Web Direct订阅,但它们使您能够将成本数据集成到自己的工具和数据仓库中。您还可以通过Azure CLI访问这些API。
长期和成熟的云用户遵循某些最佳实践:
- 积极监控成本。成熟的Azure用户组织不断监控成本,并在需要时采取行动。一些组织甚至专门派人进行分析并建议更改使用情况,而这些人在第一次发现运行了数月的未使用HDInsight集群时,付出的不仅仅是自己的代价。
- 使用Azure保留的VM实例。在云中管理成本的另一个关键原则是为工作使用正确的工具。如果您的IaaS虚拟机必须全天候运行,那么使用保留实例将为您节省大量资金。在自动关闭虚拟机和使用保留实例之间找到正确的平衡需要经验和分析。
- 有效地使用自动化。许多工作负载不需要每天都运行。每天关闭虚拟机四小时可以为您节省15%的成本。自动化将很快得到回报。
- 使用资源标记以提高可见性。如本文档其他部分所述,使用资源标签可以更好地分析成本。
- 成本管理是公共云高效运行的核心。取得成功的企业可以控制成本,并将其与实际需求相匹配,而不是过度购买并希望需求到来。
自动化
区别使用云提供商的组织成熟度的众多功能之一是它们所包含的自动化水平。自动化是一个永无止境的过程。当您的组织迁移到云计算时,这是一个您需要投入资源和时间来构建的领域。自动化有很多用途,包括资源的一致部署(直接与另一个核心脚手架概念、模板和DevOps联系在一起)和问题的补救。自动化将Azure脚手架的每个区域连接在一起。
有几种工具可以帮助您构建此功能,从Azure Automation、事件网格和Azure CLI等第一方工具,到Terraform、Jenkins、Chef和Puppet等大量第三方工具。核心自动化工具包括Azure automation、事件网格和Azure云外壳。
- Azure Automation允许您在PowerShell或Python中编写运行手册,用于自动化流程、配置资源,甚至应用补丁。Azure Automation有一套广泛的跨平台功能,这些功能是您部署不可或缺的,但过于广泛,无法在此处深入介绍。
- 事件网格是一个完全管理的事件路由系统,允许您对Azure环境中的事件做出反应。正如Azure自动化是成熟云组织的结缔组织一样,事件网格也是良好自动化的结缔组织。使用事件网格,您可以创建一个简单的无服务器操作,以便在创建新资源时向管理员发送电子邮件,并将该资源记录到数据库中。当资源被删除并从数据库中删除项目时,相同的事件网格可以发出通知。
- Azure云外壳是一个交互式的、基于浏览器的外壳,用于管理Azure中的资源。它为PowerShell或Bash提供了一个完整的环境,可以根据需要启动(并为您维护),以便您有一个一致的环境来运行脚本。Azure云外壳提供了对其他关键工具(已安装)的访问,以自动化您的环境,包括Azure CLI、Terraform和越来越多的其他工具,以管理容器、数据库(sqlcmd)等。
自动化是一项全职工作,它将迅速成为云团队中最重要的运营任务之一。采用“自动化优先”方法的组织在使用Azure方面取得了更大的成功:
- 管理成本:积极寻找机会并创建自动化,以调整资源大小、扩大或缩小规模,并关闭未使用的资源。
- 操作灵活性:通过自动化(以及模板和DevOps),您可以获得一定程度的可重复性,从而提高可用性、安全性,并使您的团队能够专注于解决业务问题。
模板和DevOps
如前所述,作为一个组织,您的目标应该是通过源代码管理的模板和脚本来提供资源,并最大限度地减少环境的交互配置。这种“基础设施即代码”的方法,以及用于连续部署的有纪律的DevOps流程,可以确保一致性并减少环境中的漂移。几乎每个Azure资源都可以通过Azure resource Manager JSON模板与PowerShell或Azure跨平台CLI以及HashiCorp的Terraform等工具进行部署,该工具具有一流的支持和与Azure云外壳的集成)。
使用Azure资源管理器模板的最佳实践等文章极好地讨论了使用Azure DevOps工具链将DevOps方法应用于Azure资源管理者模板的最佳做法和经验教训。花时间和精力开发一套特定于组织需求的核心模板,并使用DevOps工具链(如Azure DevOps、Jenkins、Bamboo、TeamCity和Concourse)开发连续交付管道,尤其是针对您的生产和QA环境。GitHub上有一个大型的Azure Quickstart模板库,您可以将其用作模板的起点,并且可以使用Azure DevOps快速创建基于云的交付管道。
作为生产订阅或资源组的最佳实践,您的目标应该是在默认情况下使用Azure RBAC安全性来禁止交互式用户,并使用基于服务主体的自动连续交付管道来提供所有资源和交付所有应用程序代码。任何管理员或开发人员都不应接触Azure门户以交互方式配置资源。这一级别的DevOps需要协同努力,并使用Azure脚手架的所有概念,提供一个一致且更安全的环境,以满足您的组织的扩展需求。
提示
- 在设计和开发复杂的Azure资源管理器模板时,请使用链接的模板从单一的JSON文件中组织和重构复杂的资源关系。这将使您能够单独管理资源,并使模板更具可读性、可测试性和可重用性。
- Azure是一个超大规模的云提供商。当您将组织从内部部署服务器转移到云时,依赖云提供商和SaaS应用程序使用的相同概念将帮助您的组织更有效地响应业务需求。
核心网络
Azure脚手架参考模型的最后一个组件是您的组织如何以安全的方式访问Azure的核心。对资源的访问可以是内部的(在公司网络内),也可以是外部的(通过互联网)。组织中的用户很容易无意中将资源放错位置,并可能使其受到恶意访问。与本地设备一样,企业必须添加适当的控制措施,以确保Azure用户做出正确的决策。对于订阅治理,我们确定提供基本访问控制的核心资源。核心资源包括:
- 虚拟网络是子网的容器对象。虽然不是严格必要的,但它通常用于将应用程序连接到公司内部资源。
- 用户定义的路由允许您在子网中操作路由表,使您能够通过网络虚拟设备或对等虚拟网络上的远程网关发送流量。
- 虚拟网络对等使您能够在Azure中无缝连接两个或多个虚拟网络,从而创建更复杂的轮辐式设计或共享服务网络。
- 服务端点。过去,PaaS服务依赖于不同的方法来确保从虚拟网络访问这些资源。服务端点允许您仅从连接的端点安全访问启用的PaaS服务,从而提高整体安全性。
- 安全组是一组广泛的规则,提供允许或拒绝进出Azure资源的入站和出站流量的能力。安全组由可以使用服务标签(定义常见的Azure服务,如Azure密钥库或Azure SQL数据库)和应用程序安全组(定义应用程序结构,如web或应用程序服务器)来增强的安全规则组成。
使用网络安全组中的服务标签和应用程序安全组可以:
- 增强规则的可读性,这对理解影响至关重要。
- 在更大的子网中实现有效的微分段,减少扩展并提高灵活性。
Azure虚拟数据中心
Azure通过我们广泛的合作伙伴网络提供内部和第三方功能,为您提供有效的安全保障。更重要的是,微软以Azure虚拟数据中心(VDC)的形式提供了最佳实践和指导。当您从单个工作负载转移到使用混合功能的多个工作负载时,VDC指南将为您提供“配方”,以实现一个灵活的网络,该网络将随着您在Azure中的工作负载的增长而增长。
接下来的步骤
治理对于Azure的成功至关重要。本文针对企业脚手架的技术实现,但只涉及更广泛的过程和组件之间的关系。策略治理自上而下,由业务想要实现的目标决定。当然,Azure治理模型的创建包括来自IT的代表,但更重要的是,它应该有来自业务组领导人以及安全和风险管理的强有力的代表。归根结底,企业脚手架是为了降低业务风险,促进组织的使命和目标。
既然您已经了解了订阅管理,请查看Azure准备就绪的最佳实践,以便在实践中看到这些建议。
- 13 次浏览