Azure-策略实现指南-全-

Azure 策略实现指南(全)

原文:annas-archive.org/md5/2913d59e8f451bad064bb2fd221c4b5e

译者:飞龙

协议:CC BY-NC-SA 4.0

前言

关于

本节简要介绍了作者和评审人、本书的内容、你开始学习所需的技术技能,以及完成所有主题所需的硬件和软件。

关于《Azure 战略与实施指南》第四版

Microsoft Azure 是一个强大的云计算平台,提供多种服务和功能,适用于任何规模的组织,帮助他们实现云战略。

本第四版讨论了关于安全基础、混合云、云迁移、Microsoft Azure Active Directory 和 Windows 虚拟桌面的最新更新。它涵盖了 Azure 部署的整个范围,包括理解 Azure 基础知识、选择合适的云架构、基于设计原则构建、熟悉 Azure DevOps,以及学习优化和管理的最佳实践。

本书首先介绍了 Azure 云平台,并展示了通过 Azure 功能所能实现的数字化转型和创新的广泛范围。随后,它提供了关于应用程序现代化、Azure 基础设施即服务IaaS)部署、基础设施管理、关键应用架构、Azure DevOps 最佳实践以及 Azure 自动化的实用见解。

到本书结尾,你将掌握推动 Azure 操作所需的基本技能,涵盖从规划和云迁移阶段到成本管理和故障排除的各个方面。

关于作者

Jack Lee是一位资深 Azure 认证顾问,也是 Azure 实践负责人,热衷于软件开发、云计算和 DevOps 创新。他是微软技术社区的积极贡献者,曾在多个用户组和会议上演讲,包括在加拿大微软举办的全球 Azure 训练营。Jack 是经验丰富的导师和黑客马拉松评审员,同时也是专注于 Azure、DevOps 和软件开发的用户组的主席。他是《Azure for Architects》和《Cloud Analytics with Microsoft Azure》一书的共同作者,该书由 Packt 出版。他因对技术社区的贡献而被评为微软 MVP。你可以通过 Twitter @jlee_consulting 关注 Jack。

Greg Leonardo目前是一名云架构师,帮助组织进行云采纳和创新。他自从军旅生涯开始便从事 IT 行业工作。他是一位资深人士、架构师、教师、演讲者和早期采用者。目前,他是微软认证的 Azure 解决方案架构专家、微软认证讲师、微软 AzureMVP,并且在整个职业生涯中,涉及 IT 的多个领域。他是 TampaDev 的主席,该社区组织了#TampaCC、Azure 用户组、Azure Medics 以及坦帕市的各种技术活动。

Greg 还撰写了《Hands-On Cloud Solutions with Azure》一书,并参与了 Packt 出版社出版的《Azure Strategy and Implementation Guide for Microsoft》的前两版编写。

Jason Milgram科学应用国际公司SAIC)的首席架构师,总部位于弗吉尼亚州雷斯顿。此前,他曾在佛罗里达州迈阿密的佛罗里达城市国民银行担任首席云解决方案架构师,在此之前,他还曾在佛罗里达州博卡拉顿的 Champion Solutions Group 担任平台架构与工程副总裁。Jason 毕业于辛辛那提大学和麻省理工学院斯隆管理学院。他还曾在美国陆军预备役服役,服役时间为 1990 年至 1998 年。作为微软 Azure MVP(2010 年至今),Jason 已经进行了超过 100 次 Azure 演讲,并定期撰写关于 Azure 的文章。

Dave Rendón连续 7 年被评为微软 MVP,专注于 Azure 技术,目前在 Kemp 公司担任解决方案架构师,负责美国及拉美地区的工作,该公司提供应用交付软件和安全解决方案。

他定期在微软 Ignite、全球 Azure 活动和美国、欧洲及拉丁美洲的本地用户组活动等公共 IT 活动中发表演讲,并活跃于 Twitter,账号为@daverndn

Dave 自 2010 年以来一直专注于微软技术和 Azure。他帮助人们通过云计算和 AI 开发市场需求技能,从而推动职业发展,并为全球微软合作伙伴提供技术指导支持,同时提供全球范围的 Azure 培训课程(印度、南美和美国),帮助企业将关键应用迁移到云端,并培训员工成为认证的云架构师。

你可以通过 LinkedIn 和 Twitter 上的/daverndn,以及 YouTube 上的/wikiazure联系 Dave。

关于评论员

Aaditya Pokkunuri是一位经验丰富的高级数据库工程师,在信息技术和服务行业有着超过 11 年的工作经验。他擅长性能调优、微软 SQL 数据库服务器管理、SSIS、SSRS、PowerBI 和 SQL 开发。他具备强大的复制、集群、SQL Server 高可用性选项以及 ITIL 流程的知识。他的专长领域包括 Windows 管理任务、Active Directory 和微软 Azure 技术。此外,他还具备 AWS 云技术的专业知识,并且是 AWS 解决方案架构师助理认证持有者。Aaditya 是一位优秀的信息技术专业人士,毕业于印度泰米尔纳德邦的 Sastra 大学,获得计算机科学与工程的技术学士学位。

Peter De Tender是知名的 Azure 专家,同时也是一位充满激情和奉献精神的技术培训师,他总能提供富有启发性、深入技术的 Azure 平台工作坊,充满了演示和趣味。

在加入微软声望卓著的 Azure 技术培训师团队之前,Peter 在自己的公司担任类似职位已有 6 年。现在,他继续做着他最喜欢的事情,提升客户和合作伙伴在 Azure 世界中的技能和能力。

Peter 已经是微软认证培训师MCT)超过 10 年,并自 2013 年起成为微软 MVP,最初专注于 Windows IT Pro,但在 2015 年转向 Azure 类别。

除了共同编写本书的上一版外,Peter 还与 Packt Publishing、Apress 合作发布了其他 Azure 相关材料,并通过自出版发布。

你可以通过 Twitter 关注 Peter,用户名是 @pdtit@007ffflearning,随时了解他的 Azure 探险。

学习目标

在本书结束时,你将能够:

  • 了解核心 Azure 基础设施技术和解决方案

  • 使用 Azure 进行应用迁移的详细规划

  • 部署并运行 Azure 基础设施服务

  • 定义 DevOps 中的角色和责任

  • 掌握安全基础

  • 在 Azure 中进行成本优化

受众

本书旨在为 Azure 架构师、云解决方案架构师、Azure 开发人员、Azure 管理员以及任何希望在操作和管理 Azure 云方面发展专业知识的人提供帮助。对操作系统和数据库的基本了解将帮助你掌握本书所涵盖的概念。

方法

《Azure 策略与实施指南》第四版详细解释了每个主题,并在最后提供了一个实际场景,帮助你熟悉实际解决方案。它还通过补充统计数据和图形表示来增强你所学到的课程的价值。

硬件要求

Azure 门户是一个基于 Web 的控制台,可以在所有现代桌面浏览器、平板电脑和移动设备上运行。要使用 Azure 门户,必须在浏览器中启用 JavaScript。

软件要求

我们建议你使用与操作系统兼容的最新浏览器。以下浏览器受支持:

  • Microsoft Edge(最新版本)

  • Internet Explorer 11

  • Safari(最新版本,仅限 Mac)

  • Chrome(最新版本)

  • Firefox(最新版本)

约定

文本中的代码词、数据库名称、文件夹名称、文件名和文件扩展名如下所示:“在这段代码中,我们使用了一个 let 语句来定义名为 WVDConnectionsEvent,并筛选出匹配 connected 状态的用户所在的行。”

这是一个示例代码块:

let Events = WVDConnections
    | where UserName == "userupn"; 
Events 
| where State == "Connected" 
| project CorrelationId, UserName, ResourceAlias, StartTime=TimeGenerated
| join (Events
    | where State == "Completed"
    | project EndTime=TimeGenerated, CorrelationId)
    on CorrelationId
| project Duration = EndTime - StartTime, ResourceAlias
| sort by Duration asc

新术语和重要词汇以粗体显示。例如,“边缘计算将云计算的能力与物联网IoT)设备相结合。”

当今的企业面临着巨大的挑战,从支持远程工作、应对增加的网络攻击到管理减少的现金流。Microsoft Azure 是一个强大的云平台,旨在帮助你提升生产力、确保安全性、提高效率并节省成本,使你能够提供弹性、节省成本并带来公司所需的影响。无论你是初创公司还是在全球运营的大型跨国企业,你都可以开始根据符合业务需求的方法部署和迁移工作负载到 Azure。

利用 Azure 提供的众多功能的第一步是进行仔细的规划。本书旨在帮助你通过为你提供关于 Azure 基础设施的基础知识、核心能力和优势以及最佳实践,成功地开展这一规划,帮助你成功使用 Azure,无论你决定完全迁移还是采取混合云方法。

本章将涵盖以下内容:

  • 什么是 Microsoft Azure?

  • Azure 采用的方式

  • Azure 迁移策略

  • Azure 基础设施的业务效益

本章将介绍 Azure 的框架以及其业务效益概述。接下来的章节将在此基础上展开,提供更具体的指导,并解释有助于你规划迁移和 Azure 基础设施实施策略的技术。

第一章:什么是 Microsoft Azure?

Azure 是微软的云计算平台,提供各种服务,面向个人和组织。云计算使得通过网络方便、按需访问共享的计算资源成为可能。这些资源可以从存储、服务器到可以快速部署的应用程序。

Azure 提供了快速配置计算资源的功能,帮助你托管现有应用程序、简化新应用开发,甚至增强本地应用。这些资源由 Microsoft 管理;不过,你可以监控这些资源,并在出现问题时获取报告和警报。这一切都建立在资源池之上,这些资源池可以动态分配给所需的服务,包括 CPU、内存、存储和网络带宽。

Azure 提供四种服务模型,分别是基础设施即服务IaaS)、软件即服务SaaS)、平台即服务PaaS)和无服务器。Azure IaaS 是一种即时计算基础设施,按需提供计算、存储和网络资源,并通过互联网进行配置和管理。

理解如何利用这些服务模型来满足不断变化的需求至关重要。当你使用 Azure 时,你和微软在你部署的资源上共同承担责任。在图 1.1中,你可以看到在不同服务模型下,你与微软在工作负载责任方面的分担程度,帮助你将重点放在对你的应用程序重要的资源上:

比较不同云计算模型下的管理责任分配

图 1.1:云计算模型

根据你希望管理的责任级别与 Azure 管理的责任相比,你可以确定最适合你组织的云服务模型。不同的模型让你在开发环境的控制程度、重构应用程序的能力、市场推出时间目标等方面具有不同的自由度。通常,随着从 SaaS 到 PaaS 到 IaaS 的过渡,你的责任会逐渐增加。责任的划分将在第二章 自动化与治理中的身份和访问控制部分深入讨论。

在本书的其余部分,我们将重点关注 IaaS。IaaS 让你对环境拥有最大的控制权,因为微软提供基础设施,而你则管理应用程序。这种方法非常适合那些希望为其业务应用定制云解决方案的组织。

Azure 采用方法

当你考虑将 Azure 作为云基础设施战略的一部分时,可以选择多种方式来部署云服务——公共云、私有云、混合云、多云和网络边缘云。选择这些计算环境的方式可能取决于多种因素。

让我们来看看每种方法。

公共云

最常见的云计算服务类型是公共云,它由第三方云提供商提供,并通过公共互联网交付。这些公共云环境中的资源由基础云提供商拥有和管理,以 Azure 为例,云提供商是微软。在公共云中,资源与其他组织或云租户共享;这些资源包括电子邮件、CRM、虚拟机和数据库等服务。

一些常见的公共云使用场景涉及那些希望公开其公共工作负载的组织,例如公共网站或移动应用程序。这些类型的应用程序的工作负载有多个层次的 UI 和服务,以使它们能够正常运行。一个很好的例子是微软的 Office 产品在不同平台上的应用,如桌面、Web 和移动端。这些产品通过将 UI 与服务分离,并且每个实现都利用后台的服务和云基础设施来提供相同的体验,无论平台如何。

Azure 作为公共云提供了多个优势:

  • Azure 建立在庞大的服务器和区域网络之上,这有助于防范故障并保证高可靠性。

  • Azure 通过按需提供服务,能够实现近乎无限的可扩展性,以满足组织的需求。

  • 与本地部署模型相比,Azure 提供的硬件和软件成本低得多,因为你是按消费付费的。

私有云

如其名所示,私有云由专门用于一个企业或组织的云计算资源——硬件和软件——组成,服务和基础设施都在私有网络上维护。第三方服务提供商可以托管私有云,或者它可以位于本地数据中心。

私有云通常由政府机构、金融机构或医疗服务提供商使用,以满足特定的监管和 IT 要求,并寻求对其环境的更大控制。通过使用 Azure ExpressRoute 或站点到站点 VPN 隧道连接工作负载,私有云可以扩展到 Azure,同时保持工作负载与公共视野隔离。我们将在第五章,使用 Microsoft Azure AD 和 WVD 启用安全的远程工作中深入探讨这些核心的 Azure 基础设施组件。

选择私有云的优势包括:

  • 更大的资源控制,因为它们不会与其他人共享。

  • 更大的灵活性,可以根据特定的业务需求定制环境。

  • 相比本地基础设施,具有更好的可扩展性。

这种类型的云解决方案由于需要隔离和访问组织工作负载的基础设施,因此成本相对较高。

混合云

混合云是一种计算环境,结合了本地数据中心和公共云,允许数据和应用在它们之间共享。混合云使企业能够在处理需求增加时,无缝地将本地基础设施扩展到云中,并在需求减少时缩减该基础设施。混合云还提供了灵活性,可以在新工作负载或迁移工作负载时使用新的云优先技术,同时由于迁移成本和业务或监管合规要求,保持其他对业务至关重要的应用和数据在本地。

举个例子,假设我们考虑一个税务公司的场景。税务公司通常只在一年中的三个月内需要大量计算资源,这可能会非常昂贵。与其投入大量资本购买额外的本地服务器来支持峰值容量,他们可以在云中使用混合环境,根据需求扩展和收缩计算资源。这样,他们就能通过按需付费的方式来降低成本,只需为实际使用的部分付费。

Azure 提供独特的混合能力,使客户可以灵活地在任何地方进行创新,无论是在本地、跨云,还是在边缘环境中。Azure 提供不同的混合使用模型,帮助您降低在云中运行工作负载的成本。例如,Azure 混合受益允许您将现有的本地服务器许可证带到 Azure,以最大化成本节省。这被称为混合许可模型,适用于大多数基于服务器的许可。

微软还提供独特的行业特定云服务,如微软金融服务云、微软制造业云和微软非营利云。这些行业云将微软云服务的全系列与行业特定的组件、标准、工作流和 API 结合起来,为行业挑战提供量身定制的解决方案,帮助企业瞄准那些最需要技术转型的领域。

混合云不应被视为一个临时的过渡阶段,组织仅在从本地部署转移到 Azure 的过程中使用。相反,混合云可以成为组织采用的一种战略,帮助它们找到最佳的稳定解决方案,以满足其信息技术需求。

多云

多云方法涉及使用来自多个云服务提供商的多种云计算服务。这使得您能够混合搭配不同提供商的服务,以获得特定任务的最佳组合,或者利用特定位置的服务,无论是公共云还是私有云。

例如,客户可能选择多云战略以满足不同国家的监管或数据主权要求。这也可以用来提高业务连续性和灾难恢复能力,例如,在两个公共云中备份本地数据,以便为采用不同云平台的业务单元、子公司或收购公司提供支持。

多云模型可能变得非常复杂,因为它们需要跨多个平台进行管理。微软 Azure 提供解决方案,帮助您无缝操作混合云,您可以在azure.microsoft.com/solutions/hybrid-cloud-app/上了解更多相关信息。一个这样的解决方案是 Azure Arc,它是一项多云管理技术。Azure Arc 通过在混合云、多云和边缘环境中提供单一的控制平面,扩展了 Azure 的管理和服务,实现了资源环境和基础设施的一致性状态。它提供了更好的资源可视性、团队责任和开发者赋能,同时加速了从 Azure 到任何位置的创新。

混合云和多云解决方案将在第三章,使用混合云和多云进行现代化中详细介绍。

边缘计算

边缘计算将云计算的力量与物联网IoT)设备相结合。在接近数据存储位置的边缘地点,你可以通过边缘计算运行虚拟机、数据服务和容器,实时获取洞察并减少延迟。在网络的边缘,你的设备与云的通信时间更短,即使在长时间离线的情况下也能可靠运行。

智能传感器和连接设备的广泛应用,以及机器学习和人工智能等先进云技术的结合,使物联网设备能够快速响应本地变化并具备上下文感知能力。由于边缘计算系统的分布式特性,还带来了安全性上的好处,这使得单一的干扰难以破坏整个网络。

这对于车队跟踪等应用场景非常有益。在 Azure 的帮助下,联合国开发计划署UNDP)使用物联网技术设计了一种车队管理解决方案,并使设备能够获得新的洞察。这些物联网跟踪设备在连接到互联网时会发送大量遥测数据,并在没有连接的情况下将数据存储在本地。这使得 UNDP 能够在协调大约 12,000 名工作人员参与消除贫困的可持续发展任务时,移动和管理其车队。欲了解更多信息,请访问 customers.microsoft.com/story/822486-united-nations-development-programme-nonprofit-azure-iot

我们已经了解了你可以在云基础设施策略中采用的不同 Azure 方式,现在让我们更详细地讨论一下 Azure 迁移是如何工作的。

Azure 迁移策略

Microsoft Azure 为组织提供了将现有基础设施推送到云端的能力,既可以将部分工作负载迁移以实现混合云方案,也可以迁移整个基础设施——这被称为迁移。从迁移传统应用程序到在 Azure 上部署应用程序,组织需要提前确定需求并规划迁移策略。

迁移到 Azure 可以通过多种方式实现,这取决于两个重要的考量因素。首先是你希望使用哪种部署模型:公共 Azure、私有云、混合 Azure 或多云。其次是服务类别或类型:IaaS、PaaS、SaaS 或无服务器。了解这些迁移策略将帮助你理解哪种方法可能最适合将工作负载迁移到 Azure。

有三种不同的策略可以实现迁移到 Azure:重新托管、重新平台化和重构。

重新托管

重新托管,或称为提升和迁移,是将本地应用程序主机或虚拟机直接迁移到 Azure 的过程。这是最快且最简单的迁移方式,因为它依赖最少,商业影响最小,并且没有约束。推荐在需要快速交付的场景中使用重新托管。

重新平台化

重新平台化,或称为重新部署,是指你想将类似于互联网信息服务IIS)的东西,从虚拟机迁移到 Azure 的 PaaS 提供。这样,你就不需要管理操作系统,只需要管理应用程序本身。通常可以通过简单地将你的 DevOps 流程重定向到新的基础设施进行重新部署,尽管在这种情况下,第三方 DLL 和限制可能会导致问题。

重构

当你的应用程序代码不符合 Azure 服务要求时,一般建议进行重构。这要求你重写应用程序或其部分,以符合不断变化的新标准,以及功能性和安全性的需求。这也被称为应用程序的现代化,因为你正在使其更加符合 Azure 原生环境。在三种迁移到 Azure 的策略中,这种方式可能会有超预算的风险。

你应该注意,选择这些方法之间没有对错之分。确定你的业务目标有助于你确定哪种迁移策略最适合你的组织。

让我们来谈谈为什么你可能会考虑迁移到 Azure。

Azure 基础设施的业务好处

在考虑采用 Azure 基础设施时,了解你可以实现的好处有助于为你的组织迁移提供支持。Azure 的灵活性和敏捷性是本地基础设施环境无法比拟的。此外,通过迁移到 Azure,你可以获得以下好处:

  • 可扩展性:Azure 可以处理操作工作,并允许你快速扩展或缩减 Azure 资源,以满足业务需求。你可以通过 Azure 门户轻松配置新资源,并通过 Azure PowerShell、Azure 命令行界面Azure CLI)或 REST API 程序化地扩展现有资源。

  • 成本节约:Azure 提供按需付费的云服务,使组织能够从资本支出(CapEx)转变为更灵活的运营支出(OpEx)模式。通过混合服务、全面的数据中心迁移计划和成本优化的 IT 基础设施,节省成本并实现运营灵活性。

  • 提高交付速度:由于你不需要等待在数据中心部署基础设施即可访问所需资源,你将看到市场交付速度加快。Azure DevOps 上的持续集成、交付和部署自动化流程也在这一过程中发挥了重要作用。

  • 创新:你可以访问 Azure 上的所有最新技术,如 Azure AI、机器学习和物联网。

  • 无缝且安全地管理混合环境:你可以开始利用基于 Azure 的资源,而无需将现有的本地基础设施完全迁移到云端。此外,你可以在这些混合环境中应用安全性和弹性。Azure 使你能够提升安全态势,并深入了解面临的威胁。

如前所述,Azure 可以根据需求提供资源,并采用按需消费模式,这意味着你只为使用的部分付费。你不再需要投资本地资源和应用程序;Azure 使你能够无限扩展应用程序以提高性能,同时将安全性置于首位,惠及大小型组织。

现在我们已经概览了 Azure 及其提供的服务,在下一章中,我们将深入探讨一些适用于组织的核心技术和解决方案。

有用的链接

在上一章中,我们从本地和混合视角了解了云中的基础设施是如何工作的。现在,我们将看看如何在 Azure 中构建资源。你现在可以进入 Azure 门户并创建任何 Azure 资源;然而,如果没有自动化,这可能会非常繁琐。Azure 中的自动化是通过 Azure DevOps 和 Azure 资源管理器ARM)模板完成的。我们严格遵循 Microsoft 的现成解决方案,但也有很多其他部署和开发工具可以帮助你完成自动化任务。一旦部署了资源,你需要确保它们是安全的。

在本章中,我们将讨论以下内容:

  • Azure DevOps 及其重要性

  • ARM 模板及其可以使用的不同方式

  • 部署 Azure 基础设施即代码IaC)的基础知识和最佳实践

  • Azure 中身份和访问控制的好处及最佳实践

  • Azure 治理

在我们深入探讨如何实现自动化以及什么是基础设施即代码(IaC)之前,让我们先了解一下 Azure DevOps 和 ARM 模板,为这一自动化方法打下基础。

第二章:Azure DevOps

虽然本章并非关于 Azure DevOps,但了解它所带来的基本功能是一个好主意。Azure DevOps 既是开发工具也是业务工具,因为它可以成为代码库的真实来源,并且是代码需要完成的项目待办事项的来源。让我们看看它所提供的一些选项,你可以从中选择使用:

  • Azure Repos 允许你创建一个 Git 仓库或 Team Foundation 版本控制库来存储开发源代码控制。

  • Azure Pipelines 是我们在本章中用于创建工件的关键流程之一,它提供了用于持续集成和交付CI/CD)应用程序的构建和发布服务。

  • Azure Boards 帮助交付产品待办事项,以规划和跟踪工作、代码缺陷及在软件开发过程中可能出现的其他问题。

  • Azure Test Plans 允许你测试仓库中的代码,并使你能够执行手动和探索性测试,以及持续测试。

  • Azure Artifacts 提供了将代码打包和部署所需的元素,例如通常与 CI/CD 管道共享的 NuGet 资源。

正如你所看到的,Azure DevOps 是微软的工具,用于在 Azure 内部部署和管理应用程序,作为发布管理过程的一部分。想要了解更多关于 Azure DevOps 的信息,你可以前往文档:docs.microsoft.com/azure/devops/user-guide/what-is-azure-devops?view=azure-devops

注意

Azure DevOps 提供五用户免费许可证,因此可以随时查看并探索 Azure 中的部署方式。请访问 azure.microsoft.com/services/devops/ 创建您的免费帐户。

现在我们已经从非常高的层次讨论了一些工具,让我们来看看 ARM 模板。

ARM 模板

ARM 模板是您基础设施如何以代码形式表示的方式。ARM 模板帮助团队以更敏捷的方式在云中部署基础设施;不再需要在 Azure 门户中点击“部署”来创建基础设施。ARM 模板是一个 JSON 文件,表示您的基础设施配置,以及一个 PowerShell 脚本,用于执行该模板并创建基础设施。

使用 ARM 模板系统的真正好处是它允许您使用声明性语法。这意味着您可以部署虚拟机并创建围绕它的网络基础设施。模板最终提供了一个可以一致、重复运行的过程。它们管理基础设施的期望状态,意味着模板成为这些基础设施资源的权威来源。如果您对基础设施进行更改,应该通过模板来完成。

模板部署过程无法完成,除非您组织模板过程的执行方式及其执行顺序。将这些文件拆分成较小的部分并允许它们相互链接或在不同的模板中以不同的方式重用也很有用。这有助于理解和控制您的基础设施,同时使其可重复和稳定。ARM 模板在 CI/CD 流水线和代码部署中用于构建组织内的一系列应用程序。

以下 JSON 文件展示了 ARM 模板的结构:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {},
  "variables": {},
  "resources": [],
  "outputs": {}
}

如您所见,有几个重要部分:参数、变量、资源和输出。我们简要讨论一下每个部分:

  • ARM 模板文件应该是参数化的,并且有一个单独的文件来定义参数,映射到 JSON 模板文件中的 参数 列表。

  • 变量部分用于文件中使用的变量。变量通常用于创建命名函数,以帮助生成已经结构化的命名约定,并通过构建该结构来使用输入参数生成名称。

  • 资源部分是您尝试通过此 ARM 模板部署的所有资源的表示;这些资源可以是从虚拟机到网站的任何内容。

  • 最后,输出部分是您希望从 ARM 模板中传递到其他地方使用的内容,比如在运行 SQL 脚本之前传递 SQL Server 名称。

在 Visual Studio 中创建 ARM 模板文件时,会创建三个文件:

  • 第一种是 JSON 文件,这就是前面代码中表示的模板。

  • 第二种是 JSON 参数输入文件,这个文件可以在每次部署时更改,以匹配您要部署的环境。

  • 第三种是用于执行模板的 PowerShell 脚本。该 PowerShell 脚本接受资源组的输入、ARM 模板文件和参数文件。

这就是 Azure DevOps 和创建 ARM 模板时所生成文件的快速概述。接下来,让我们看看如何使用这些 ARM 模板部署 Azure 资源。

部署 Azure 基础设施即代码(IaC)

正如我们在ARM 模板部分看到的,我们希望使用 ARM 模板来部署我们的基础设施,因为它与我们的 CI/CD 过程非常契合。构建这些模板有几种方法。

一种方法是创建一个包含所有要部署资源的单体模板。为了让它更加模块化,您可以使用嵌套模板结构。或者,您可能希望采取一种更解耦的方法,创建更小的模板,并将它们链接在一起,从而构建一个高度可用和可重复的结构。

让我们从单体视图开始,看看每种方法:

ARM 模板的单体视图

图 2.1:单体 ARM 模板

如您在图 2.1中看到的,单体 ARM 模板部署了一个与 SQL 数据库连接的 UI 前端和 API 中间层。在这个过程中,我们需要在 JSON 模板中构建所有依赖项。SQL 数据库在 API 中间层之前部署,以便在 API 应用程序配置中使用连接字符串。然后,您将部署 UI 层,UI 应用程序配置中会使用 API URL。部署链不仅适用于部署代码,还可以帮助进行配置。

另外,您可以实现嵌套模板安排:

嵌套的 ARM 模板

图 2.2:嵌套的 ARM 模板

如您所见,这与图 2.1中的结构类似。然而,这个结构中的模板被嵌套在单独的文件部分中。这意味着每个模板拥有其内部的资源,并且它正在尝试部署这些资源。这个结构类似于将 C# 代码拆分为可管理的方法和操作。这遵循与单体场景中讨论的相同的部署过程,但文件是嵌套的。

最终结构是链接的 ARM 模板:

最终结构—链接的 ARM 模板

图 2.3:链接的 ARM 模板

如你所见,模板最初是独立且解耦的,然后我们在发布流水线中将它们链接在一起。链接模板类似于嵌套模板,只不过文件是外部的,而嵌套模板则包含在与父模板相同的作用域内。这有助于后期的可重用性,因为这些模板是独立的文件,可以链接到其他部署文件中。

我们应该注意,使用链接或嵌套模板时,部署模式只能设置为增量模式。然而,主模板可以以完整模式部署,因此如果链接或嵌套模板针对的是同一个资源组,那么该组合部署将被评估为完整部署;否则,它将增量部署。要了解更多关于 ARM 部署模式的信息,请访问docs.microsoft.com/azure/azure-resource-manager/templates/deployment-modes

我们已经看到不同的方式使用这些 ARM 模板来自动化基础设施的部署;现在我们来探讨这样做的好处。

Azure IaC 的好处

使用 IaC 的主要好处是自动化不同资源和环境的创建、更新和配置。自动化将人为因素排除在外,同时带来一些关键的好处:

  • 能够安排自动化部署,帮助运维人员减少工作时间。

  • 能够进行自动化部署的烟雾测试。

  • 能够创建可重复的流程。

  • 可以实现完全自愈的应用程序。

  • 能够回滚更改。

  • 资源管理器有助于为资源打标签。

  • ARM 负责资源组中资源的依赖关系。

在任何阶段的自动化都是使用像 Azure 这样的平台的真正关键,无论是自动化基础设施的部署还是测试以确保生产部署的稳定性。

为了获得这些好处,我们需要学习如何有效地使用 ARM 模板。

最佳实践

我们想快速了解一些优化 ARM 模板的最佳实践。但首先,我们先了解一下模板的一些限制。

总体而言,模板的最大大小为 4 MB,每个参数文件的大小限制为 64 KB。你只能有 256 个参数、256 个变量、包含 800 个资源、64 个输出值和 24,576 个字符的模板表达式。如我们所讨论的,如果模板过大,你可以通过使用嵌套模板来超出某些限制,但微软建议你使用链接模板来避免这些限制。在接下来的章节中,我们将讨论 ARM 模板中每个组件的最佳实践。

参数

Azure DevOps 中的 ARM 模板系统会在部署操作之前解析参数值,并允许您将模板重用于不同的环境。需要特别指出的是,每个参数必须有一个明确的数据类型值。您可以在docs.microsoft.com/azure/azure-resource-manager/templates/template-syntax#data-types找到这些数据类型的列表。

最佳实践

微软推荐以下关于参数的最佳实践:

  • 最好尽量减少使用参数。正如我们在本章开头提到的,您应该使用变量来表示属性,只有在需要输入值时才使用参数。

  • 推荐您使用驼峰命名法来命名参数。

  • 还建议您描述每个参数,这样当其他开发人员使用模板时,他们能清楚地知道这些参数的作用。

  • 确保为那些在环境变化时可能发生变化的设置使用参数,如容量或应用服务名称。

  • 确保为参数命名,以便于识别。

  • 为参数提供默认值;这涉及提供最小的虚拟机配置,以便非生产环境使用较小的资源,并且其他使用该模板的开发人员有一个基本的起始点。

  • 如果您需要指定可选参数,请避免使用空字符串作为默认值,应该使用一个字面值。这有助于为模板用户提供命名结构。

  • 尽量减少使用允许的值,因为这些值可能会随着时间变化,更新脚本时可能会变得困难。

  • 始终为每个环境使用参数来设置用户名、密码或秘密,而不是将它们硬编码在模板中。对于所有密码和秘密,您还应该使用安全字符串。

  • 当您需要为正在部署的资源设置位置时,将默认值设置为resourcegroup().location,这样资源组中的位置值就会正确设置。

正如您所看到的,参数在 ARM 模板过程中非常有用,因为它们使我们能够灵活地应对不同的部署环境。请记住,在使用模板部署应用程序或微服务时,尽量保持模板的简单性。

变量

变量也会在开始部署之前解析,资源管理器会将变量替换为其确定的值。变量在推导模板中的复杂命名时非常有用,它们让您只需传入所需的参数。

例如,一个组织使用客户 ID,并依赖此 ID 来保持所有部署的 Azure 资源对于该客户 ID 的唯一性。在这种情况下,您可以将客户 ID 作为参数创建,然后开发变量来使用命名标准生成名称。您可以在docs.microsoft.com/azure/azure-resource-manager/templates/template-syntax#data-types中找到可接受的数据类型列表。

最佳实践

微软推荐以下变量的最佳实践:

  • 记得删除未使用的变量和文件,以免引起混淆。

  • 请使用驼峰命名法来命名您的变量。

  • 对于模板中需要多次使用的值,请使用变量。

  • 变量名称必须是唯一的。

  • 对于重复的 JSON 对象模式,请在变量中使用复制循环。

资源

ARM 模板中的资源部分用于部署或更新的资源。ARM 模板通常有助于推导出 Azure 中资源的期望状态。在更改 Azure 基础设施时,最好先更改模板,然后重新运行它来更新 Azure 资源。很多时候,组织会在门户中进行更改,却忘记更新 ARM 模板,接下来部署这些资源时,它们会被部署到错误的状态。

最佳实践

微软推荐以下资源的最佳实践:

  • 为您的资源添加注释,以便其他人了解其用途。

  • 请记住,很多资源需要唯一的名称,因此永远不要将资源名称硬编码。

  • 当您向自定义脚本扩展添加密码时,请使用 CommandToExecute 属性,在 Azure 资源管理器的保护设置中进行配置。

我们现在对 ARM 模板中的元素有了基本的理解。接下来的重点是,当您的资源部署完成后,我们将关注身份和访问控制。

身份和访问控制

在我们深入探讨之前,理解在安全性和保护资源方面,您与云服务提供商之间有共享责任是很重要的。必须了解您的责任在哪里结束,而云服务提供商的责任在哪里开始。让我们快速看一下 Azure 中的共享责任,如图 2.4所示:

Azure 共享责任

图 2.4:Azure 共享责任

根据您在 Azure 中选择的服务类型,您的责任将有所不同,云服务提供商的责任也会不同。请注意本地资源和各种 Azure 选项之间的差异。您可以看到,无论有无新增责任,您始终需要对在云中创建的端点、账户管理、帐户和数据存储库负责。

由于 Azure 是面向公众的资源,安全性是其开发的重中之重。Azure 中有一系列工具和顾问,帮助你利用 Azure 的各种安全工具和功能。

Azure 的安全性有哪些好处?

组织的本地安全组通常资源有限(团队成员和工具),无法有效查看漏洞和攻击者。使用像 Azure 这样的平台的一个好处是,你可以将这些职责转交给云端提供商,借助更高效、更智能的方式应对组织的威胁,而不需要引入物理资源。

Azure 的一个重要优势是,当你创建一个租户时,它自带 Azure AD,这让你可以从安全的角度开始使用 Azure。Azure AD 用于锁定 Azure 中的所有服务和资源。你还可以使用 Azure AD 来保护你的应用程序,或者创建企业对客户B2C)或企业对企业B2B)的 AD,以存储客户信息。

Azure 中的有用工具

Azure 内置了多个安全和审计解决方案,用于增强你的安全防护,这些可以通过 Azure 门户的安全和审计仪表盘从首页查看。以下是一些帮助你和你的组织的有用工具:

  • 我们之前提到过,Azure 资源管理器帮助将所有内容集中在一个地方,便于部署、更新和删除解决方案中的资源,以支持协调操作。

  • Azure 还提供了应用性能管理APM),也称为应用洞察。应用洞察使你能够监控 Azure 中的应用程序,并检测性能异常。

  • Azure 监控允许你可视化基础设施的活动日志和单独的诊断日志,以监控你的 Azure 资源。

  • Azure 顾问就像一个个性化的云管家,帮助你优化云资源。该服务可以帮助检测应用程序中的安全和性能问题。

  • Azure 安全中心有助于防止、检测并应对 Azure 中应用程序面临的不同威胁。它帮助你在所有其他订阅中提供安全监控和策略管理。

最佳实践

以下是微软推荐的一些 Azure 安全最佳实践:

  • 使用 Azure AD 进行中心化的安全控制和身份管理。这将使管理和集成更加高效。

  • 尽量保持 Azure AD 实例为单一的真理源。

  • 如果你有本地 AD,建议将其与 Azure AD 集成,使用 Azure AD Connect 实现单点登录体验。

  • 如果你使用 Azure AD Connect 将本地 AD 与 Azure 同步,请开启密码哈希同步,以防主资源离线或被弃用。

  • 请记住,你可以在新的应用程序中使用 Azure AD 进行身份验证,这可以通过 Azure AD 直接、B2B 或 B2C 来实现。

  • 使用管理组来控制你对订阅的访问。这有助于集中管理,而不必担心在每个订阅中进行Azure 身份和访问管理IAM)。

  • 使用条件访问控制你的支持人员,以便他们在需要时提升权限,而不是始终拥有访问权限。

  • 阻止不再使用的传统协议,以阻止攻击计划。

  • 如果你在应用程序中使用 Azure AD,并且希望确保能够监控此过程,建议为用户启用自助密码重置功能。

  • 如果你正在使用 Azure AD Connect,请确保你的云端策略与本地策略匹配。

  • 如果可能,启用多因素身份验证以保障组织的安全。

  • 如果你希望在 Azure 中提供内置角色,请确保优先使用基于角色的访问控制,而不是基于规则的访问控制,因为基于规则的访问控制在长期管理中可能非常繁琐。

  • 确保对登录 Azure 的用户授予最小权限,这样当账户被攻破时,其访问权限将被限制。

  • 至少定义两个紧急访问账户,以防组织管理员操作团队成员的账户被攻破。

  • 如果你还希望主动监控 Azure AD 租户中的可疑活动,请确保控制资源创建的位置,因为不同地区可能有数据限制。

  • 确保对你的存储账户使用身份验证和授权。

  • 随着时间推移,回顾并应用对最佳实践的改进。

现在我们已经了解了 Azure 中的安全性,可以回顾一下如何使用 Azure 管理。

Azure 管理

Azure 管理被定义为用于保持对 Azure 中应用程序和资源控制的流程和机制。这些是涉及你组织内计划优先事项的战略规划。Azure 管理通过两个服务提供:Azure Policy 和我们将在第七章中讨论的提供、支持、资源和优化 Azure 成本的建议,以及 Azure 成本管理。

Azure Policy 的目的是组织你的操作标准并评估合规性。Azure Policy 调节合规性、安全性、成本和管理,同时对你的资源实施一致性的治理。我们在 Azure 中看到的所有内容都由这些政策进行治理,这些政策包含 JSON 格式的业务规则和政策定义。你可以在 schema.management.azure.com/schemas/2019-09-01/policyDefinition.json 找到这些政策定义的架构。

其益处是什么?

Azure 治理和 Azure 策略帮助您在构建和扩展应用程序的同时保持一定的控制水平。这有助于创建防护栏,并协助通过 Azure 蓝图在组织的订阅中部署完全治理的环境。正如我们在第七章中讨论的那样,提供优化 Azure 成本的建议、支持、资源和技巧,它还通过提供支出洞察来帮助管理成本,从而最大化您的云投资。此外,Azure 治理还提供以下好处:

  • 有助于对任何 Azure 服务的策略进行审计和执行

  • 有助于在监控支出的同时,推动整个组织的问责制

  • 创建合规的环境,包括资源、策略和访问控制

  • 通过内建的合规性控制,帮助确保符合外部规定

在以下章节中,我们将详细介绍通过 Azure 治理可用的一些功能和服务,具体包括 Azure 管理组、Azure 策略、Azure 蓝图、Azure 图形以及 Azure 成本管理和计费。

Azure 管理组

Azure 管理组通过将您的 Azure 订阅进行分组并对这些组采取行动来帮助管理您的 Azure 订阅。它们允许您通过蓝图定义安全性、策略和典型的部署方式。它们有助于创建您组织的层次视图,以便您能高效地管理订阅和资源:

Azure 管理组的层次表示

图 2.5:Azure 管理组

正如在图 2.5中所示,生产和非生产环境之间有简单的分隔。我们应该从这张示意图中理解到,每个管理组都有一个根节点或父节点,所有层次结构都从这个节点继承。您可以在根节点创建全局结构,或者可以在任一分支中创建生产或非生产策略。

Azure 策略

Azure 策略的实施旨在帮助确保资产符合组织在 Azure 中的标准。Azure 策略的常见用途包括实施资源一致性、安保、成本和管理的治理。像 Azure 中的其他内容一样,Azure 策略是 JSON 格式的,并且您可以为策略定义添加业务规则,从而简化这些规则的管理。

Azure 策略可以应用于 Azure 资源的不同生命周期阶段或在持续的合规性评估过程中。这些策略可以作为控制机制来拒绝更改或记录更改。Azure 策略与 Azure 基于规则的访问控制 (RBAC) 之间的区别在于,您的策略不会限制 Azure 操作。这意味着结合使用 Azure RBAC 和 Azure 策略可以提供 Azure 安全的完整范围。

以下是微软推荐的最佳实践:

  • 使用 Azure 策略时,最好从审核策略开始,而不是拒绝策略,因为设置拒绝策略可能会妨碍在创建资源时的自动化任务。

  • 在创建定义时,请考虑组织层级结构。建议在管理组或订阅级别创建更高层次的定义。

  • 即使是最小的策略定义,也可以创建和分配计划定义或策略集。

  • 值得记住的是,一旦初始分配被评估,所有该计划中的策略也会被评估。

  • 你应该考虑使用策略来帮助控制你的基础设施,例如要求所有虚拟机安装防病毒软件,或者不允许在非生产环境中创建特定大小的虚拟机。要更好地了解 Azure 策略定义结构,你可以访问 docs.microsoft.com/azure/governance/policy/concepts/definition-structure 了解更多信息。

Azure 蓝图

Azure 蓝图使技术团队能够开发一套可重复的 Azure 资源,以支持组织的模式、需求和标准。蓝图是编排各种资源部署的好方法,例如角色分配、策略、ARM 模板和资源组。Azure 蓝图是 ARM 模板的扩展,旨在帮助环境设置,而 Azure 蓝图使用模板来实现这一目标。

Azure Resource Graph

Azure Resource Graph 的创建旨在扩展 ARM 模板的功能,帮助跨订阅探索资源。Azure Resource Graph 查询允许你从已部署在 Azure 中的资源中搜索复杂的结果。Azure Resource Graph 是支持 Azure 搜索的查询系统。查询语言基于 Kusto 查询语言(KQL),该语言也被 Azure 数据探索器使用,因此它可能对你来说是新的,需要一些时间适应。

你需要在 Azure RBAC 中拥有适当的权限才能查看资源——这是读取权限。如果在使用 Azure Resource Graph 时没有返回任何结果,请先检查你的读取权限。

Azure Resource Graph 是免费的,但为了确保每个人都能获得最佳体验,使用时会受到限制。

Azure 成本管理与计费

Azure 成本管理与计费的创建旨在帮助分析、管理和优化 Azure 工作负载的成本。它的引入旨在帮助企业在迁移到云时减少潜在的浪费和低效风险。Azure 成本管理与计费提供以下功能:

  • 协助支付账单

  • 生成包含成本和使用数据的月度发票,并可以下载

  • 设置支出阈值

  • 主动分析成本

  • 识别优化 Azure 工作负载支出的机会

我们将在第七章Azure 中优化成本的方案、支持、资源和技巧》中深入探讨此内容,因为个人和组织在 Azure 中管理成本流的方式有所不同。

摘要

正如你从这一章中看到的,Azure 和 Azure DevOps 之间具有显著的协同效应。创建一种可重复、稳定的方式来将代码和基础设施部署到云端至关重要。在学习如何将基础设施部署到云端时,我们需要理解为什么使用 ARM 模板。这促使我们讨论了一些部署基础设施的基本原则和最佳实践,以便利用我们的代码或应用程序。我们具体查看了如何通过身份和访问控制来保护资源和应用程序。这引导我们理解如何在 Azure 中创建治理,以确保一致性和合规性。

Azure 创建了许多框架,允许你消化确保应用程序安全和完整所需的内容。同样值得记住的是,在接触 Azure 时,应该从自动化的角度来接近它。一个组织应该制定合规性、Azure 管理和最佳实践,这些内容能在整个组织中有效运作,同时最小化其业务风险。

现在我们已经建立了基础,在下一章中,我们将讨论如何实现应用程序的现代化。

重要链接

商业环境变得越来越复杂。许多软件应用程序现在在不同的系统上运行,这些系统位于本地、外部、多个云端以及边缘设备上。对这些多样化环境的合理规划、实施和管理是帮助您的用户和组织充分利用它们的关键因素。本章重点讨论 Azure 混合云和多云解决方案的作用,特别是 Azure Arc 和 Azure Stack 解决方案家族。

到本章结束时,您将能够做到以下几点:

  • 了解什么是混合云、多云和边缘计算

  • 讨论成功的混合云和多云战略的关键因素

  • 解释 Azure Arc 启用的服务器、数据服务和 Kubernetes 应用管理

  • 展示 Azure Stack 产品组合并解释它如何使您的数据中心现代化

本章将介绍 Azure Arc 的连接要求以及在 Kubernetes 集群和托管 Kubernetes 服务上创建 Azure Arc 启用的数据服务的方法。您还将学习如何将 Azure Stack 解决方案家族纳入您的架构,并管理 Azure Stack Hub。在第一部分,我们将从一些术语入手。

第三章:什么是混合云、多云和边缘计算?

我们已经在第一章《介绍》中介绍了混合云、多云和边缘计算,但这里有一个快速回顾:

  • 混合云方法涉及将云资源和非云资源(例如本地数据中心)结合使用。这可以提供更大的灵活性、更多的部署选项、可扩展性和操作一致性。

  • 多云方法涉及利用来自多个服务提供商的云计算服务。这可以提供更高的灵活性和更好的风险缓解,因为您可以选择最适合组织需求的服务组合和地区提供商。

  • 边缘计算方法利用云的计算能力,在接近数据创建和消费端点的设备上进行处理。这些端点可能包括生产线上的过程控制系统、建筑监控系统以及远程站点的传感器和执行器。

您选择使用这些计算环境中的哪一个取决于多种不同的因素。例如,包含本地系统的混合云方法可能是您的组织为满足监管和数据主权要求,同时增强韧性和业务连续性的最佳选择。

相反,如果您的组织希望减少响应延迟并确保现场的离线可用性,边缘计算通过其虚拟机VMs)、容器和每个设备的数据服务可能至关重要。

需要牢记的是,混合云、多云和边缘计算也可能增加运营复杂性。例如,多云需要处理不同云环境和不同服务提供商,这对任何已经面临云技术人才短缺的组织来说,都是一个额外的挑战。在这种情况下,像 Azure 这样的解决方案可以提供帮助,因为它旨在简化多云以及混合云和边缘计算的管理。

现在我们已经讨论了术语,接下来让我们谈谈战略。

什么使得混合云和多云战略成功?

使您的团队能够使用适合其需求的技术,同时在整个组织的各个位置提供安全性和治理,是成功使用混合云和多云解决方案的关键目标。除了提升最终用户体验外,这样的环境还使应用程序开发和 IT 管理的统一操作成为可能。您的开发人员可以使用相同的工具、API 和部署方式在组织中构建应用程序。您的管理、安全性和治理可以在所有业务位置中实现一致性。跨位置一致的数据库和计算栈选择使您能够根据需要快速移动数据和工作负载。

总体而言,Azure 混合云和多云解决方案及产品让您能够优化:

  • 用户应用体验:在您的整个云、本地和非本地资源中创建一致的应用体验。

  • 数据服务:通过在您需要的任何地方运行 Azure 数据服务,实现数据迁移、管理和分析的无缝化。

  • IT 管理:通过集中控制,统一管理、治理和保护您的 IT 资源,涵盖所有组织域。

  • 安全性和威胁防护:在您的数字资源中使用一个控制平面,提供安全性和高级威胁防护,保障所有工作负载。

  • 身份和用户访问:使用统一的平台进行身份和访问管理,提供全球无缝的单点登录用户体验。

  • 网络:通过使 Azure 成为您当前网络的扩展,安全地连接组织中分布的工作负载和位置。

Azure Arc 和 Azure Stack 是 Azure 混合云和多云解决方案及产品的两个组成部分。Azure Arc 提供简化的部署管理,并将 Azure 应用服务和数据扩展至多云、数据中心和边缘。Azure Stack 通过其三种产品以及可选择性地使用 Azure Arc,提供:

  • 一种云原生集成系统,将 Azure 云服务带到本地,针对断开连接的场景。

  • 一个超融合基础设施HCI),通过使用现代的软件定义存储和网络结合 Hyper-V 进行计算,更新虚拟化主机,从而现代化数据中心。

  • 用于运行边缘计算工作负载的云管理设备/边缘设备。

它们使您能够:

  • 使用单一控制平面无缝管理、治理和保护跨多云、本地和边缘的服务器、Kubernetes 集群和应用程序。

  • 在任何基础设施上保持 Azure 服务的最新状态,同时实现自动化、统一管理和安全性。

  • 使用云原生技术现代化本地或边缘应用。

  • 将虚拟化应用与本地 HCI 相结合,轻松为其提供 Azure 服务,以获得最佳的价格性能比。

  • 将 Azure 计算、存储和 AI 扩展到 IoT 和其他边缘设备,并在边缘运行机器学习和高级分析,以获得实时洞察。

    注意

    本章重点介绍 Azure Arc 和 Azure Stack 的规划、实施以及最佳实践。有关 Azure 安全性和相关主题的更多信息,请访问azure.microsoft.com/services/security-center/docs.microsoft.com/azure/?product=all

    微软还提供了构建混合云和多云解决方案的架构示例,并提供灵活的迁移路径。以下是一个关于管理 Azure Arc 启用服务器配置的示例:docs.microsoft.com/azure/architecture/hybrid/azure-arc-hybrid-config

希望这些初步章节为您提供了一个良好的入门基础。在接下来的章节中,我们将深入探讨 Azure Arc。

Azure Arc 概述

随着云计算、非云计算、本地解决方案和外部解决方案的扩展,组织必须管理日益复杂的 IT 环境。多个云和环境意味着多个不同的管理工具和学习曲线。作为额外的挑战,现有工具可能无法充分支持像 DevOps 和 ITOps 这样的云原生操作模型的新版本。

Azure Arc 提供了一种简化管理和治理这些环境的解决方案。使用 Azure Arc,您可以将 Azure 服务部署并扩展到任何地方,随时进行 Azure 管理。它是一个统一的平台(单一视图),用于一致地管理跨多云、本地和边缘资源,每个资源都通过 Azure Arc 映射到 Azure 资源管理器 (ARM) 中。这使您可以像在 Azure 中运行一样,使用 Azure 服务和管理工具来管理虚拟机、Kubernetes 集群和数据库。

Azure Arc 的主要优势是:

  • 在单一界面上实现对您的操作和合规性的可视化。使用 Azure 门户管理、治理和保护广泛的资源,包括 Windows、Linux、SQL Server 和 Kubernetes,涵盖数据中心、边缘和多云。

  • 能够设计和架构大规模的混合应用,组件分布在公共云服务、私有云、数据中心和边缘位置,且不牺牲中心化的可见性和控制。可以集中编写和部署应用,确保在任何位置的任何 Kubernetes 分发版本上自信地进行部署。通过标准化部署、配置、安全性和可观察性加速开发。

  • 将 Azure 应用服务和数据扩展到所有位置。利用 Azure 数据和应用服务实现云实践和自动化,持续部署可扩展的、最新的 Azure Arc 启用服务。

使用 Azure Arc,您可以:

  • 继续并扩展由 IT 部门为您的业务(ITOps)管理的流程和服务,在所有这些环境中都可以应用。

  • 部署 DevOps 来支持所有环境(包括云和非云)中的新云原生模式。

  • 管理和治理 Windows 和 Linux 服务器,包括物理机和虚拟机,涵盖 Azure 内外。

  • 管理和治理大规模的 Kubernetes 集群,并通过源代码管理实现应用的一致部署和配置。

  • 在您组织内部和外部,按需扩展管理 Azure SQL 数据库和 PostgreSQL Hyperscale 服务(Azure 数据服务),并通过自动修补、升级和安全性进行支持。

具体来说,Azure Arc 的关键特性包括:

  • 在各个环境中保持一致的服务器清单、管理、治理和安全性。

  • 通过配置 Azure VM 扩展来监控、保障安全并更新您的服务器,以便使用 Azure 管理服务。

  • 使用 DevOps 技术管理和扩展任何符合 CNFC 标准的 Kubernetes 分发版集群。

  • 基于 GitOps 的管理,使用 配置即代码CaC)跨多个集群直接从源代码管理工具部署应用和配置。

  • 使用 Azure Policy 实现 Kubernetes 集群的自动化(零触发)合规性和配置。

  • 在任何 Kubernetes 环境中部署 Azure SQL 托管实例和 Azure PostgreSQL Hyperscale(Azure 数据服务),并实现 Azure 级别的升级/更新、安全性、监控,同时利用 Azure SQL 高可用性功能和 PostgreSQL Hyperscale 离线场景支持。

  • 无论资产位于何处,都能在 Azure Arc 启用资产中获得统一视图,无论是通过 Azure 门户、CLI、PowerShell 还是 REST API。

    注意

    要在 Azure Stack HCI 上运行 Kubernetes 工作负载,客户可以在 Azure Stack HCI 上部署 Azure Kubernetes Service,这是为 Azure Stack HCI 特别设计的服务。

现在,我们已经对 Azure Arc 可以帮助你实现的目标有了一个概览,接下来我们将深入了解一些细节。我们将首先介绍 Azure Arc 启用的基础设施,重点讨论它如何促进大规模管理 Kubernetes。接下来的部分,我们将介绍 Azure Arc 启用的数据服务,这使得可以在本地、其他公共云和边缘运行 Azure 数据服务。

大规模的 Kubernetes 应用管理

容器的优势,包括可移植性、效率和可扩展性,使其在部署业务应用程序时变得流行。新应用程序可以作为微服务在 Kubernetes 集群中创建。遗留应用程序可以通过将其重写为容器来实现现代化。然而,随着这些可能性的出现,也带来了对大规模管理 Kubernetes 的需求。

Azure Arc 满足了这一需求,允许组织在多个地点的任何 Kubernetes 集群中快速部署应用程序,并在强大的管理政策下进行管理。此功能通过 Azure Kubernetes 配置管理AKCM)启用,AKCM 是一项 Azure 服务,使用 GitOps 从 Azure 提供配置管理和应用部署。通过将应用政策与特定的 GitHub 仓库关联,可以确保持续合规的部署。通过这一功能,集群管理员可以在 Git 中声明其集群配置和应用程序。开发团队可以利用拉取请求和他们熟悉的工具(例如现有的 DevOps 流水线、Git、Kubernetes 清单和 Helm 图表等)轻松地将应用程序部署到 Azure Arc 启用的 Kubernetes 集群上,并在生产环境中进行更新。GitOps 代理监听变化,并在这些变化导致系统与源真相偏离时,便于自动回滚。

例如,一家拥有多个网点的零售企业可以将其店内应用程序迁移到 Kubernetes 集群中的容器。Azure Arc 使这些容器化应用程序能够在多个地点进行统一部署、配置和管理。新网点可以接收特定的应用程序集,并通过集中控制合规性和配置来管理。IT 团队还可以在所有网点中监控、保护并更改配置和应用程序,同时利用政策来保护网络连接并防止配置错误。

Azure Kubernetes 服务AKS)可用于监控 Kubernetes 集群健康状况,进行维护、挂载存储卷,并为特定任务(例如,使用支持 GPU 的节点进行并行处理)激活节点。随后,Azure Arc 和 Azure 政策为零售商的 IT 团队提供了在 Azure 门户中查看所有网点集群的统一视图。你还可以在 Azure Stack HCI 上运行 Azure Arc 启用的数据服务。关于这一点将在本章后面讨论。

Azure Arc 启用的服务器

通过启用 Azure Arc 的服务器,您可以将本机 Azure 虚拟机级别的管理应用到位于 Azure 外的 Windows 和 Linux 机器,例如在企业网络上或作为其他云服务提供商服务的一部分。这些非 Azure 资源可以连接到 Azure 并作为 Azure 资源进行管理。每个连接的混合机器将被包含在资源组中,并分配一个机器级资源 ID。它还可以使用标准的 Azure 功能进行管理,如 Azure 策略、RBAC 和标签。

例如,管理多个客户环境的服务提供商可以通过 Azure Arc 扩展本机 Azure 管理功能,例如 Azure Lighthouse,允许服务提供商登录到其租户,以便根据客户委托管理订阅和资源组。

Azure Arc 的控制平面功能提供:

  • 管理组和标签用于组织您的资源。

  • 使用 Azure 资源图进行索引和搜索。

  • 使用 Azure 基于角色的访问控制RBAC)进行安全性和访问控制。

  • 用于环境创建和自动化的模板和扩展。

  • 更新管理。

支持的场景

当您将机器连接到启用 Azure Arc 的服务器时,以下好处可用:

  • Azure 自动化变更跟踪和库存:用于报告被监控服务器上的配置更改。此功能可用于 Microsoft 服务、Windows 注册表和文件、Linux 守护进程以及已安装的软件。

  • Azure 自动化状态配置:用于简化非 Azure Windows 或 Linux 机器的部署。您还可以使用自定义脚本扩展进行软件安装或部署后配置。

  • 更新管理:用于管理 Windows 和 Linux 服务器操作系统的更新。有关更多信息,请查看 docs.microsoft.com/azure/automation/update-management/enable-from-automation-account

  • Azure 虚拟机监控:此功能允许您监控连接机器上的来宾操作系统性能。您可以发现应用程序组件并监控它们的进程和依赖关系。

  • Azure 策略来宾配置:您可以像为 Azure 本机机器分配策略一样,为您的混合机器分配(而不仅仅是审核)Azure 策略来宾配置。

  • Azure Defender:用于检测和响应威胁,以及管理非 Azure 服务器的预防性安全性和合规性能力。

    注意

    每个通过 Azure Arc 管理的混合机器都需要安装 Azure Connected Machine 代理程序。为了对机器上的操作系统和工作负载进行主动监视,您还应安装适用于 Windows 和 Linux 的 Log Analytics 代理程序,然后使用自动化运行簿、更新管理、Azure 安全中心或其他合适的服务管理设备。从混合设备收集和存储的日志数据可以通过其资源 ID 或其他属性在 Log Analytics 工作区中识别。

支持的区域

无论您是手动启用 Azure Arc 启用的服务器,还是通过运行模板脚本,选择地点自然是离您设备地理位置最近的 Azure 区域。您选择的区域可能还受数据存储位置要求的影响,因为数据存储在包含所选区域的 Azure 地理位置中。

如果您选择的 Azure 区域发生故障,您的连接机器不会受到影响。另一方面,基于 Azure 的管理操作可能无法完成。对于具有多个设备或位置的地理冗余服务,请将它们连接到不同的 Azure 区域。

从连接的机器收集和存储一些数据。以下内容存储在创建 Azure Arc 机器资源的区域中:

  • 计算机 完全合格域名FQDN

  • 计算机名称

  • Connected Machine 代理程序的版本

  • 操作系统的名称和版本

每 5 分钟,连接的机器向服务发送一次心跳信号。如果这些信号停止,则服务将在 15 到 30 分钟内将设备在门户中的状态更改为已断开连接。当连接的机器代理发送新的心跳信号时,状态将恢复为已连接。

欲知更多信息,请参阅:

Azure Arc 启用的数据服务

使用 Azure Arc 和 Kubernetes,指定的 Azure 数据服务可供您在 Azure 之外的选择基础设施上运行,例如,本地、边缘设备以及其他云中。Azure 创新、可扩展性和统一管理都可用于连接和断开连接的数据工作负载。首个 Azure Arc 启用的数据服务首先在公开预览中推出的是 SQL 托管实例和 PostgreSQL 超大规模。需要注意的是,您还可以在后面章节讨论的 Azure Stack HCI 上运行 Azure Arc 启用的数据服务。

永不陈旧(始终保持当前)

通过使用启用 Azure Arc 的数据服务处理本地工作负载,您可以系统地访问最新的 Azure 功能和能力。您还可以配置自动更新,从 Microsoft 容器注册表接收最新的补丁和升级,同时根据您的策略控制部署节奏,并最大化系统的正常运行时间。另一个优势是,您可以避免数据库的支持结束问题,因为启用 Azure Arc 的数据服务是一项订阅服务。

弹性

启用 Azure Arc 的数据服务为您的本地数据库提供类似云的弹性扩展能力,允许您满足波动性和突发性工作负载的要求,以及实时数据摄取和查询。扩展性没有限制,您可以在几秒钟内启动数据库实例,实现亚秒级的操作响应时间。数据库管理任务,如配置高可用性,已简化至仅需几次点击的程度。数据工作负载可以根据所需的容量动态扩展,而无需停止应用程序,并且可以进行横向扩展或纵向扩展,以增加读取副本或分片。

统一管理

您可以通过使用 Azure 门户、Azure 数据工作室或 Azure 数据 CLI 等工具,统一查看通过 Azure Arc 部署的数据资产。您可以使用来自 Kubernetes API 的日志和遥测数据检查基础设施的容量和健康状态。Azure Monitor 还可以提供跨所有数据资源的操作视图和洞察。

为了通过资源扩展管理,Azure Arc 自动化数据库管理任务。开箱即用的功能包括监控、快速配置、按需弹性扩展、修补、高可用性设置以及备份和恢复。借助 Azure Arc,您数字领域中的数据库还可以受益于 Azure 备份、Azure Monitor、Azure 策略、Azure RBAC 和高级数据安全功能。

在断开连接场景中的管理

您可以通过直接或非直接、持续的云连接访问 Azure 的好处。许多服务,包括监控、自动备份/恢复和自助服务配置,无论是否可以直接连接到 Azure,都可以在本地运行。本地的 Azure Arc 数据控制器为您的自托管环境提供全面的管理功能,支持配置、弹性扩展、备份、自动更新、监控和高可用性。直接连接到 Azure 还可以增加与其他 Azure 服务(如 Azure Monitor)的集成功能,并使您可以从任何地方使用 Azure 门户和 Azure 资源管理器 API 来管理启用 Azure Arc 的数据服务。

Azure 数据服务的先决条件

你需要基于主要 Kubernetes 发行版的 Kubernetes 集群,用于在你选择的基础设施上编排 Azure 数据服务。你还需要在配置 Azure 数据服务并在你的环境中使用管理功能之前安装 Azure Arc 数据控制器。

你应该选择启用 Arc 的 SQL Server 还是启用 Arc 的托管实例?

Azure 已经提供了不同的部署和管理选项,用于托管 SQL Server 功能。通过 Azure Arc 对 SQL Server 的支持,扩展了更多的可能性。Azure Arc 的可能性可以如下进行比较:

  • 启用 Azure Arc 的 SQL Server(目前处于预览阶段):对于你自己的基础设施或其他公共云中的 SQL 服务器,启用 Azure Arc 的 SQL Server 让你可以将这些 SQL 服务器连接到 Azure,并利用相关的 Azure 服务。连接和注册到 Azure 不会对 SQL 服务器产生影响。也不需要进行数据迁移或停机。通过 Azure 门户作为你的中央管理仪表板,你可以管理所有的 SQL 服务器。SQL Server 按需评估服务让你定期验证 SQL Server 环境的健康状况,减轻风险并提升性能。

  • 启用 Azure Arc 的 SQL 托管实例(目前处于预览阶段):启用 Azure Arc 的 SQL 托管实例是一个 Azure SQL 数据服务。它可以在你的基础设施中的任何地方创建,并且与最新的 SQL Server 数据库引擎几乎 100% 兼容。通过启用 Azure Arc 的 SQL 托管实例,你可以将应用程序迁移到 Azure Arc 数据服务,同时最大程度地减少对应用程序和数据库的修改。

你可以在不离开现有基础设施的情况下,将现有的 SQL Server 应用程序迁移到 SQL Server 引擎的最新版本,并获得类似 PaaS 的集成管理能力的额外优势。这些能力帮助你满足合规性标准,如数据主权。为此,你将利用 Kubernetes 平台与 Azure 数据服务,可以在任何基础设施上进行部署。

目前,以下优势是可用的:

  • 在一分钟内轻松创建、移除并进行弹性扩展或缩减托管实例。

  • 该平台会自动安装升级、更新和补丁,以确保你运行的是最新版本的 SQL Server。

  • 监控、高可用性、备份和恢复作为集成管理服务提供。

启用 Azure Arc 的 PostgreSQL Hyperscale 还是 Azure Database for PostgreSQL Hyperscale?

这两个实体之间的差异类似于启用 Arc 的 SQL Server 与启用 Arc 的 SQL 托管实例之间的差异。Azure PostgreSQL Hyperscale 是由 Microsoft 在其数据中心运营的 Azure 服务。而启用 Azure Arc 的 PostgreSQL Hyperscale 是 Azure Arc 启用的数据服务的一部分,并在你自己的基础设施上运行。然而,两个实体都基于由 Citus 扩展支持的 PostgreSQL 数据库的超大规模(hyperscale)形式。

连接模式

你的启用 Azure Arc 的数据服务环境可以通过不同的方式连接到 Azure,具体取决于如业务政策、政府法规以及可用的网络连接等因素。通过启用 Azure Arc 的数据服务,你可以选择以下连接模式:

  • 直接连接(写作时不支持)

  • 间接连接

  • 永不连接(写作时不支持)

启用 Azure Arc 的数据服务的一些功能是否可用,将取决于你选择的连接模式。连接模式的选择决定了传输到 Azure 的数据量以及与 Arc 数据控制器的用户交互类型。我们来讨论直接连接与间接连接的区别。

直接连接

当启用 Azure Arc 的数据服务直接连接到 Azure 时:

  • 用户可以通过 Azure 资源管理器 API、Azure CLI 和 Azure 门户操作 Azure Arc 数据服务。

  • Azure Active DirectoryAzure AD)和 Azure RBAC 可用,因为在直接连接模式下有持续和直接的通信。

  • 诸如 Azure Defender 安全服务、容器洞察和 Azure 备份到 Blob 存储等服务可以在直接连接模式下使用。

直接连接模式下的操作类似于使用 Azure 门户管理服务,例如,提供/撤销提供、配置和扩展。

可以使用直接连接:

  • 使用公共云的组织,如 Azure、AWS 或 Google Cloud Platform。

  • 边缘站点位置,例如零售店,通常可以连接互联网并允许使用。

  • 企业数据中心,允许更广泛地连接其数据中心的数据区域和互联网。

间接连接

当启用 Azure Arc 的数据服务间接连接到 Azure 时:

  • 在 Azure 门户中仅提供只读视图。你可以查看托管实例和 Postgres Hyperscale 实例的实例及其部署详情,但不能在 Azure 门户中操作它们。

  • 所有操作必须通过本地启动,使用 Azure Data Studio、Azure Data CLI(azdata)或 Kubernetes 原生工具,如 kubectl

  • Azure AD 和 Azure RBAC 不可用。

  • 诸如 Azure Defender 安全服务、容器洞察和 Azure 备份到 Blob 存储等服务不可用。

截至撰写时,只有间接连接模式被支持(处于预览阶段)。

间接连接可用于:

  • 本地数据中心,例如金融、医疗或政府部门,可能会禁止进出数据区域的连接。这是由于业务或合规政策,通常是为了避免外部攻击或数据泄露的风险。

  • 边缘站点位置,例如油气或军事领域应用,通常无法连接到互联网。

  • 边缘站点位置,例如只有间歇性连接的船只。

从未连接

在“从未连接”模式下,无法以任何方式向 Azure 发送或从 Azure 接收数据。此场景的使用案例可能是一个高度机密的政府设施。这种类型的空气隔离环境确保完全的数据隔离。

请注意,目前此模式尚不支持。

连接要求

您环境中的代理始终是您环境与 Azure 之间通信的发起者。这对于在 Azure 门户中由用户发起的操作也适用,这些操作会转化为排队任务。然后,您环境中的代理通过与 Azure 发起通信来检查任务队列。代理执行这些任务并向 Azure 报告任务状态(完成或失败)。

间接连接模式下可用的连接

当前预览阶段仅支持的模式是间接连接模式,该模式有三种可用的连接方式。它们分别是:

  • Azure Monitor API

  • Azure 资源管理器 API

  • Microsoft 容器注册表MCR

所有与 Azure 和 Microsoft 容器注册表的 HTTPS 连接都是加密的。它们使用 SSL/TLS 和官方签名且可验证的证书。

Azure Monitor API 和 Azure 资源管理器 API

Azure Data Studio、Azure Data CLI(azdata)和 Azure CLI 连接到 Azure 资源管理器 API,用于向 Azure 发送数据和接收数据,以便启用某些功能。

当前,所有浏览器到 Grafana 和 Kibana 仪表盘的 HTTPS/443 连接,以及从 Azure Data CLI(azdata)到数据控制器 API 的连接,都使用 SSL 加密并且是自签名证书。计划推出一个功能,使您可以使用自己的证书来加密这些 SSL 连接。

Microsoft 容器注册表

MCR 是用于 Azure Arc 启用的数据服务容器镜像的仓库。您可以从 MCR 拉取这些镜像并将其推送到私有容器注册表。然后,您可以配置数据控制器部署过程,从该私有容器注册表拉取容器镜像。

从 Azure Data Studio 和 Azure Data CLI(azdata)到 Kubernetes API 服务器的连接,使用您已配置的 Kubernetes 身份验证和加密。为了执行与 Azure Arc 启用的数据服务相关的许多操作,Azure Data Studio 和 Azure Data CLI 的用户必须通过身份验证连接到 Kubernetes API。

Azure Arc 数据控制器创建

有几种不同的方法可以在 Kubernetes 集群和托管 Kubernetes 服务上创建启用 Azure Arc 的数据服务。

您可以在此找到当前支持的 Kubernetes 服务和发行版的列表:docs.microsoft.com/azure/azure-arc/data/create-data-controller

此 URL 还将为您提供有关服务和发行版的要求。例如,支持的最低版本、虚拟机大小、内存和存储要求,以及连接性要求。此外,您还将找到在创建控制器过程中所需的信息。

Azure Arc 在 GitHub 上

GitHub 仓库 github.com/microsoft/azure_arc 包含了不同的资源,帮助您使用启用 Azure Arc 的服务器、启用 Azure Arc 的 SQL Server、启用 Azure Arc 的 Kubernetes 和启用 Azure Arc 的数据服务。

我们将查看不同的指南,这些指南可以帮助您采用 Azure Arc。

启用 Azure Arc 的服务器

这些部署场景为指导您将不同的 Windows 和 Linux 服务器部署接入 Azure Arc 提供了帮助:

  • 通用:可以用于将现有的 Windows 或 Linux 服务器连接到 Azure Arc 的示例。

  • Microsoft Azure:指导如何将 Azure 虚拟机接入 Azure Arc 作为启用 Azure Arc 的服务器。

  • 额外的指南提供了有关使用 Vagrant、Amazon Web Services (AWS)、Google Cloud Platform (GCP) 和 VMware 的信息。

  • 启用 Azure Arc 的服务器—第 2 天场景和用例:在将服务器资源通过 Azure Arc 投射到 Azure 后,这些指南展示了如何使用原生 Azure 管理工具(如资源标签、Azure 政策和日志分析)管理这些服务器,将其作为原生 Azure 资源进行管理。

  • 启用 Azure Arc 的服务器—扩展部署场景:指导如何在不同平台和现有环境中扩展 Azure Arc 对虚拟机的接入。

启用 Azure Arc 的 SQL Server

这些部署场景提供了将不同平台上的 Microsoft SQL Server 部署接入 Azure Arc 的指导。

  • Microsoft Azure:指导如何将 Azure 虚拟机(VM)与 SQL Server 安装一起接入 Azure Arc,作为启用 Azure Arc 的 SQL Server 和 Azure Arc 启用的服务器。本指南仅供演示和测试使用(不提供支持)。

  • AWS:提供了在 AWS 中进行端到端部署的指导,包括使用 SQL Server 的 Windows Server 和通过 Terraform 将其接入 Azure Arc。

  • GCP:提供了在 GCP 中进行端到端部署的指导,包括使用 SQL Server 的 Windows Server 和通过 Terraform 将其接入 Azure Arc。

  • VMware:提供了在 VMware vSphere 中进行端到端部署的指导,包括使用 SQL Server 的 Windows Server 和通过 Terraform 将其接入 Azure Arc。

启用 Azure Arc 的 Kubernetes

本节提供了 Azure Arc 启用 Kubernetes 的选项,用于快速创建准备好在 Azure Arc 中进行投影并通过 Azure 本地工具进行管理的 Kubernetes 集群:

  • 通用:通过连接到 Arc 或现有 Kubernetes 集群的示例演示。

  • AKS:创建 AKS 集群以模拟本地运行的集群的示例演练。部署示例包括使用 Terraform 和 ARM 模板。

  • Amazon Elastic Kubernetes ServiceEKS):使用 Terraform 在 AWS 上部署 EKS 集群,并将此 EKS 集群与 Azure 连接,使用 Azure Arc 进行管理的示例。

  • Google Kubernetes EngineGKE):使用 Terraform 在 Google Cloud 上部署 GKE 集群,并将此 EKS 集群与 Azure 连接,使用 Azure Arc 进行管理的示例。

  • Rancher k3s:在 Azure 虚拟机或 VMware 上部署 Rancher k3s 轻量级 Kubernetes 的示例(例如,用于边缘计算、物联网或嵌入式 Kubernetes),并将集群通过 Azure Arc 进行接入。

  • Azure Red Hat OpenShiftAROV4:使用 Terraform 部署新的 ARO 集群,并将集群通过 Azure Arc 进行接入的示例。

  • Kubernetes in Dockerkind):使用 kind 在本地机器上创建 Kubernetes 集群的示例(通过 Docker 容器 "节点" 作为本地 Kubernetes 集群运行),并将集群作为 Azure Arc 启用的 Kubernetes 集群进行接入。

  • MicroK8s:使用 MicroK8s 在本地机器上创建 Kubernetes 集群,并将集群作为 Azure Arc 启用的 Kubernetes 集群进行接入的示例演练。

  • Azure Arc 启用 Kubernetes—第二天场景和使用案例:在 Kubernetes 集群通过 Azure Arc 投影到 Azure 后,这些指南展示了如何使用原生 Azure 管理工具(如 Azure Monitor、Azure Policy 和 GitOps 配置)将这些集群作为原生 Azure 资源进行管理。例如,对于 AKS(也适用于 GKE),您可以部署 GitOps 配置,并在 AKS 上执行基本的和基于 Helm 的 GitOps 流程作为 Azure Arc 连接集群。您还可以使用 Azure Policy for Kubernetes 在 AKS 上应用 GitOps 配置,并将 Azure Monitor for containers 集成到作为 Azure Arc 连接集群的 AKS 中。

Azure Arc 启用的数据服务(目前处于预览阶段)

本节包含了 Azure Arc 启用的数据服务的部署选项。目标是快速创建新的 Kubernetes 集群,并部署已准备好在 Azure Arc 中进行投影并使用 Azure 本地工具进行管理的 Azure Arc 启用的数据服务。如果您已经有了 Kubernetes 集群,您可以使用以下信息将 Azure Arc 启用的数据服务部署到现有 Kubernetes 集群:docs.microsoft.com/azure/azure-arc/data/create-data-controller

  • 在 AKS 上的数据服务:创建 AKS 集群并在该集群上部署 Azure Arc 数据服务的示例演练。例如,使用 Azure Arc 数据控制器 Vanilla、Azure SQL 托管实例以及 Azure PostgreSQL Hyperscale 部署在 AKS 上,配合 Azure ARM 模板:github.com/microsoft/azure_arc/tree/main/azure_arc_data_jumpstart/aks/arm_template

  • 在 AWS Elastic Kubernetes 上的数据服务:创建 EKS 集群并在该集群上部署 Azure Arc 数据服务的示例演练。

  • 在 GCP Google Kubernetes 上的数据服务:创建 GKE 集群并在该集群上部署 Azure Arc 数据服务的示例演练。

  • Kubeadm:创建单节点 Kubernetes 集群并在该集群上部署 Azure Arc 数据服务的示例演练。

GitHub 仓库提供了极好的快速入门文档。它涵盖了各种场景,并且他们总是在寻找更多的贡献者,如果您有兴趣的话。

在我们概述 Azure Arc 时,已经覆盖了很多内容。希望这些部分为您开始概念验证项目提供了一个坚实的起点。现在我们必须将注意力转向 Azure Stack,这是 Azure 混合和多云战略中的另一个关键组成部分。

使用 Azure Stack 现代化您的数据中心

Azure Stack 解决方案家族可以将 Azure 服务和能力扩展到您的所有位置,如本地数据中心、远程办公室和边缘设备。您还可以在各个位置和环境边界内一致地创建和运行混合应用程序,以满足多样化工作负载的需求。

Azure Stack 是三个产品的家族:

  • Azure Stack Hub:一种将 Azure 云服务带到本地的云原生集成系统

  • Azure Stack HCI:一种通过使用现代软件定义存储和网络,并结合 Hyper-V 进行计算,来现代化数据中心的超融合基础设施

  • Azure Stack Edge:一种云管理的边缘设备,用于运行 AI/ML、物联网解决方案和边缘计算工作负载

这三种 Azure Stack 解决方案可以按如下方式定位:

  1. Azure Stack Hub:

    • 私有、自治云——支持完全断开连接的场景以及连接的混合云场景,同时保持与 Azure 的操作一致性

    • 应用现代化(云原生应用)

    • 数据主权、合规性和监管场景

    • 连接和断开连接或隔离的场景

  2. Azure Stack HCI:

    • 与 Azure 集成的混合和超融合解决方案

    • 现代化本地架构,消除 SAN 存储的复杂性

    • 可扩展的虚拟化、存储和网络

    • 高性能工作负载

    • 远程和分支办公室

  3. Azure Stack Edge:

    • 作为服务的 Azure 管理设备

    • 硬件加速计算、AI/ML 和物联网应用

    • 低延迟工作负载

    • 云存储网关功能

本章重点讨论 Azure Stack Hub 和 Azure Stack HCI。有关 Azure Stack Edge 的更多信息,请访问:azure.microsoft.com/products/azure-stack/edge/

现在我们已经简要回顾了三种 Azure Stack 解决方案,接下来让我们详细讨论其中的一种变体,Azure Stack Hub。

Azure Stack Hub 概述

Azure Stack Hub 将 Azure 服务带到本地,部署在您的数据中心,它是 Azure 的扩展。通过在其数字资产中使用相同的云平台,您的组织可以自信地让业务需求推动技术决策,而不是让技术限制影响业务决策。

为什么使用 Azure Stack Hub?

虽然原生 Azure 为开发人员提供了构建现代应用的全面服务,但延迟、间歇性连接、数据法规和合规性问题可能会给基于云的应用带来挑战。为了解决这些问题,Azure 和 Azure Stack Hub 为应用程序开辟了新的混合云场景,无论是面向客户还是内部使用:

  • 本地云应用:使用 Azure 服务和基于容器的微服务及无服务器架构,您可以扩展现有应用或创建新应用,以利用云的优势并保持操作一致性。Azure Stack Hub 和本地云 Azure 之间的一致性允许使用一套 DevOps 流程,帮助加速应用现代化,并构建强大的关键任务应用。

  • 云应用合规性:Azure Stack Hub 允许您将本地要求与云的好处相结合。您可以在 Azure 环境中创建和开发应用,然后在本地使用 Azure Stack Hub 部署,无需修改代码即可满足监管和合规性要求。示例包括费用报告、财务报告、外汇交易和全球审计等应用。

  • 间歇性或无连接:您可以在只有间歇性甚至没有连接到 Azure 或互联网的情况下使用 Azure Stack Hub。例如远程生产现场、船只和军事应用等。数据可以在 Azure Stack Hub 安装中处理,然后在方便的时间汇总到 Azure,以进行额外的分析,避免延迟或持续连接的问题。

Azure Stack Hub 的使用案例

在众多可能性中,我们列出了来自六大行业的精选示例:

  1. 金融服务:

    • 使用 Azure 服务和容器支持的微服务架构,现代化关键任务应用。

    • 在本地运行云应用并保持数据、应用和身份安全,从而满足监管要求,同时简化操作。

    • 利用实时洞察,降低风险,避免延迟,并通过运行在本地 HCI 上的 AI 和其他应用来提升客户体验。

  2. 政府:

    • 使用预测性维护管理车队,并通过结合机器学习的物联网解决方案提高建筑物的能效。

    • 通过更好的本地应用和数据库性能提升市民服务,包括对传统应用的支持。

    • 使用一致的工具集进行应用和数据管理,确保合规并增强治理。

  3. 制造业:

    • 使用混合云能力,通过运行 Azure 服务而无需常驻互联网连接,提高生产力和效率。

    • 通过边缘计算中的人工智能应用提高员工安全,及时提醒潜在危险,并通过预测性维护避免机器故障。

    • 实时监控生产阶段的输出,以提高质量并减少缺陷和损坏。

  4. 零售业:

    • 通过更智能地使用数据提升客户满意度,包括分析促销活动和各零售店本地的客户兴趣。

    • 通过监控库存和购买速度,优化产品的可用性,及时重新订购合适数量的产品。

    • 通过来自视频和应用数据的实时智能,减少由于缩水、盗窃、退货欺诈或其他库存问题造成的损失。

  5. 能源:

    • 在与互联网未连接的活动和区域中使用必要的云服务,例如远程勘探站点和电网。

    • 减少并避免昂贵的设备故障,更快解决远程站点问题,并在影响员工安全之前发现并修复问题。

    • 在本地存储和处理数据,以便立即优化油井、炼油厂、电站、风电场等的输出和操作。

  6. 健康:

    • 现代化传统系统,帮助保护患者免受系统故障的影响,同时在类似云环境和超融合环境中集成医疗设备和应用。

    • 通过将基础设施迁移到灵活的云配置中,改善临床环境和资源利用率,包括手术室表现和病房入住率。

    • 通过本地聚合、处理和医疗记录存储在可扩展、容器化的基础设施中,优化数据分析和健康记录管理。

Azure Stack Hub 的应用、PaaS 和 IaaS 级别使用

Azure Stack Hub 在这三个传统的云资源层级中均有应用:

  • 应用层级:Azure Stack Hub 可以通过现代的 DevOps 实践支持您的应用部署和运营。DevOps 团队可以通过使用基础设施即代码、持续集成/持续部署CI/CD)、与 Azure 一致的虚拟机扩展和其他功能,最大化生产力和成果。

  • 平台即服务(PaaS)级别:Azure Stack Hub 也是一个用于构建和运行需要本地 PaaS 服务(如 Event Hubs 和 Web 应用)的应用的平台。这些服务在 Azure Stack Hub 中的可用方式与在 Azure 中相同,提供统一的混合开发和运行环境。

  • 基础设施即服务(IaaS)层:Azure Stack Hub 启用强隔离、自服务资源,具有详细的使用跟踪和多租户使用报告。这使其成为企业私有云和服务提供商的理想 IaaS 解决方案。Azure Stack Hub 本质上是一个 IaaS 平台,我们已经探讨了azure.microsoft.com/blog/azure-stack-iaas-part-one/系列文章。

Azure Stack Hub 架构

Azure Stack Hub 集成系统被打包为 4 到 16 台服务器的组(称为扩展单元),在由受信任的硬件合作伙伴构建后交付到您的数据中心。集成系统与其硬件和软件提供了一个解决方案,提供了云端创新的速度并简化了 IT 管理。Azure Stack Hub 使用行业标准硬件,并启用了与 Azure 订阅相同的管理工具,因此您可以独立于任何与 Azure 的连接,使用一致的 DevOps 流程。Azure Stack Hub 集成系统由微软和硬件合作伙伴共同支持。

Azure Stack Hub 身份提供者

Azure Stack Hub 使用以下两种身份提供者之一:Azure AD 或Active Directory 联合身份验证服务AD FS)。许多互联网连接的混合配置使用 Azure AD。另一方面,断开连接的部署则需要使用 AD FS。Azure Stack Hub 资源提供者及其他应用在 Azure AD 或 AD FS 下的功能类似。请注意,Azure Stack Hub 具有其自身的 Active Directory 实例和 Active Directory 图形 API。

如何管理 Azure Stack Hub?

与微软通过 Azure 服务向租户提供服务的方式类似,您可以使用 Azure Stack Hub 操作为租户用户提供不同的服务和应用。这是因为 Azure 和 Azure Stack Hub 使用相同的操作模型。

Azure Stack Hub 引入了一个新的角色,称为操作员。这是一个管理员级别的功能,用于管理、监控和配置 Azure Stack Hub。它是 Azure Stack Hub 环境中的关键角色,要求具备广泛的技能和知识——这些都在 Microsoft Certified: Azure Stack Hub Operator Associate(docs.microsoft.com/learn/certifications/azure-stack-hub-operator?WT.mc_id=Azure_blog-wwl)认证和 AZ-600 考试:使用 Microsoft Azure Stack Hub 配置和操作混合云(docs.microsoft.com/learn/certifications/exams/az-600?WT.mc_id=Azure_blog-wwl)中有所体现。

为了准备这次考试,我们已经发布了一系列资料(包括 Azure Stack Hub 基础核心 github.com/Azure-Samples/Azure-Stack-Hub-Foundation-Core/tree/master/ASF-Training 资料),这些资料在 TechCommunity 博客中列出:techcommunity.microsoft.com/t5/azure-stack-blog/azure-stack-hub-operator-certification-az-600/ba-p/2024434

Azure Stack Hub 可以通过三种选项进行管理:

  • 管理员门户

  • 用户门户

  • PowerShell

管理员门户可用于在 Azure Stack Hub 上执行管理操作,如集成系统的状态监控或健康维护、添加市场项目、增加容量以及添加新的资源提供程序以启用新的 PaaS 服务。Azure Stack Hub 管理门户快速入门(docs.microsoft.com/azure-stack/operator/azure-stack-manage-portals)包含了更多关于使用管理员门户管理 Azure Stack Hub 的信息。

Azure Stack Hub 快速入门模板也可提供示例,用于部署资源,从简单的 VM 安装到更复杂的部署,如 Exchange 和 SharePoint。

作为 Azure Stack Hub 操作员,您可以为用户启用各种资源类型。例如,这可以包括 SQL 和 MySQL 服务器,以及 VM 自定义映像、应用服务、Azure 函数、事件中枢等。作为操作员,您还可以管理容量问题,为租户创建使用优惠和订阅,以及响应警报。

用户可以利用用户门户的自助服务功能来消费云资源,如 Web 应用程序、存储帐户和虚拟机。用户使用由操作员提供的服务,并且可以创建、监控和管理他们订阅的服务,如存储、Web 应用程序和虚拟机。用户可以选择使用用户门户或 PowerShell 管理其环境。

Azure Stack Hub 提供多租户环境。这使得各种服务提供商(包括云解决方案提供商、托管服务提供商和独立软件供应商ISV))能够在 Azure Stack Hub 平台上构建和提供价值,并将其交付给多个客户,每个客户在其自己的 Azure Stack Hub 订阅中都是独立和安全的。

资源提供程序

资源提供程序是构成所有 Azure Stack Hub IaaS 和 PaaS 服务基础的服务。Azure Stack Hub 有三个基础 IaaS 资源提供程序

  • 计算资源提供程序:这允许您的 Azure Stack Hub 租户创建虚拟机。使用此提供程序,可以创建 VM 和 VM 扩展。

  • 网络资源提供者:支持创建网络安全组、公共 IP、虚拟网络和软件负载均衡器。

  • 存储资源提供者:支持创建 Azure Blob、表和队列存储服务。Azure 密钥保管库(用于创建和管理密钥)也通过此资源提供者提供支持。

您还可以与 Azure Stack Hub 一起部署并使用以下 可选的 PaaS 资源提供者

  • 应用服务:一项 PaaS 服务,允许客户为任何设备或平台创建 Web、API 和 Azure Functions 应用。您的内外部客户可以自动化他们的业务流程,并将您的应用与他们的本地应用集成。这些客户应用可以由 Azure Stack Hub 云操作员在共享或专用虚拟机上运行,且完全托管。

  • 事件中心:Azure Stack Hub 上的事件中心让您能够实现混合云场景。支持基于流和事件的解决方案,适用于本地和 Azure 云处理。无论您的场景是混合(连接)还是断开连接,您的解决方案都可以支持大规模事件/流的处理。您的场景仅受集群大小的限制,您可以根据需要配置集群。(来源:docs.microsoft.com/azure/event-hubs/event-hubs-about

  • 物联网中心(预览):Azure Stack Hub 上的物联网中心让您能够创建混合物联网解决方案。物联网中心是一个托管服务,充当您物联网应用和其管理的设备之间双向通信的中央消息中心。您可以使用 Azure Stack Hub 上的物联网中心构建具有可靠且安全的通信的物联网解决方案,实现物联网设备与本地解决方案后端之间的通信。(来源:github.com/MicrosoftDocs/azure-docs/blob/master/articles/iot-hub/about-iot-hub.md

  • SQL 服务器:此功能允许您通过提供连接器将 SQL 数据库作为服务提供给您的 Azure Stack Hub 租户。

  • MySQL 服务器:此功能使您可以通过提供连接器将 MySQL 数据库作为 Azure Stack Hub 服务提供。

Azure Stack Hub 管理基础

有几个 Azure Stack Hub 管理的基本方面是您必须了解的,包括理解构建、管理工具的选择、Azure Stack Hub 操作员的典型职责,以及需要与用户沟通的内容,帮助他们提高生产力。

了解构建

以下是您应该了解的两个与构建相关的组件:

  • 集成系统:更新包为 Azure Stack Hub 集成系统分发 Azure Stack Hub 的更新版本。您可以通过管理员门户中的 更新 磁贴导入这些包并应用它们。

  • 开发工具包Azure Stack 开发工具包ASDK)作为一个沙箱环境供你评估 Azure Stack Hub,并在非生产环境中构建和测试应用程序。ASDK 部署页面提供了更多关于部署的信息:docs.microsoft.com/azure-stack/asdk/asdk-install

Azure Stack Hub 的创新迅速,定期发布新的构建版本。如果你正在运行 ASDK 并希望迁移到最新的构建版本以及 Azure Stack Hub 的最新功能,你不能简单地应用更新包——你必须重新部署 ASDK。Azure 网站上的 ASDK 文档反映了最新的发布版本:docs.microsoft.com/azure-stack/asdk/

保持对可用服务的关注

Azure Stack Hub 支持不断发展的 Azure 服务子集。你需要随时了解可以为 Azure Stack Hub 用户提供的服务。

基础服务

默认情况下,Azure Stack Hub 在部署时包括以下基础服务:

  • 计算

  • 存储

  • 网络

  • 密钥保管库

这些基础服务使你能够以最小的配置为用户提供 IaaS 服务。

附加服务

以下是当前支持的附加 PaaS 服务:

  • 应用服务

  • Azure Functions

  • SQL 和 MySQL RP

  • 事件中心

  • IoT Hub(预览版)

  • Kubernetes(预览版)

在向用户提供这些附加服务之前,需要进一步配置。欲了解更多信息,请查阅这里的教程操作指南部分:docs.microsoft.com/azure-stack/operator/

你可以使用哪些管理工具?

管理员门户是学习基本管理概念的最简单方式。你也可以使用 PowerShell 进行 Azure Stack Hub 管理,尽管有一些准备步骤。通过访问在 Azure Stack Hub 上开始使用 PowerShell,你可以了解 PowerShell 如何应用于 Azure Stack Hub:docs.microsoft.com/azure-stack/user/azure-stack-powershell-overview

作为底层部署、管理和组织机制,Azure Stack Hub 使用 Azure 资源管理器。欲了解更多关于资源管理器的信息,以便你管理 Azure Stack Hub 并帮助支持用户,请访问开始使用 Azure 资源管理器白皮书download.microsoft.com/download/E/A/4/EA4017B5-F2ED-449A-897E-BD92E42479CE/Getting_Started_With_Azure_Resource_Manager_white_paper_EN_US.pdf

典型的管理员/提供者职责

用户认为 Azure Stack Hub 操作员角色是为他们提供所需服务。因此,决定哪些服务将被提议,然后创建计划、优惠和配额来使这些服务可用。另请参阅 Azure Stack Hub 服务提供概览docs.microsoft.com/azure-stack/operator/service-plan-offer-subscription-overview

你还需要向 Azure Stack Hub Marketplace 添加项目。从 Azure 下载 Marketplace 项目到 Azure Stack Hub 是最简单的方法。

注意事项

你应该使用用户门户,而不是管理员门户,来测试你的服务的用户可用性以及这些服务的计划和优惠。

除了提供服务之外,还有定期的操作员任务,以确保 Azure Stack Hub 持续正常运行。这些任务包括:

与用户沟通

用户需要知道如何连接到 Azure Stack Hub 环境,如何订阅优惠,并且如何使用 Azure Stack Hub 服务。Azure Stack Hub 用户文档(docs.microsoft.com/azure-stack/user/)是一个有用的信息来源。

了解如何使用 Azure Stack Hub 服务

在用户开始使用 Azure Stack Hub 中的服务并构建应用程序之前,有一些先决条件,如特定版本的 PowerShell 和 API。同时,Azure 服务和相应的 Azure Stack Hub 服务之间也存在一些功能差异。因此,用户应熟悉以下内容:

这三篇文章中的信息概述了 Azure 和 Azure Stack Hub 服务之间的差异。它是针对某一 Azure 服务的全球 Azure 文档的附加信息。

用户连接到 Azure Stack Hub 的方式

在 ASDK 的情况下,如果用户没有使用远程桌面,他们可以配置虚拟专用网络VPN)连接以连接到 ASDK 环境。更多信息请参见:docs.microsoft.com/azure-stack/asdk/asdk-connect

用户还需要了解如何通过用户门户(docs.microsoft.com/azure-stack/user/azure-stack-use-portal)或使用 PowerShell 进行连接。在集成系统环境中,用户门户的 URL 会有所不同,因此务必向用户提供正确的地址。

如果门户已发布到互联网,用户也可以使用 Cloud Shell 等工具来管理和创建 Azure Stack Hub 上的资源(请注意,Cloud Shell 服务本身在 Azure Stack Hub 上不可用——你需要处于连接环境中)。

在通过 PowerShell 使用服务之前,用户可能需要注册资源提供者,例如管理负载均衡器、网络接口和虚拟网络等资源的网络资源提供者。用户必须安装 PowerShell(docs.microsoft.com/azure-stack/operator/powershell-install-az-module),下载附加模块(docs.microsoft.com/azure-stack/operator/azure-stack-powershell-download),并配置 PowerShell(其中包括资源提供者注册):docs.microsoft.com/azure-stack/user/azure-stack-powershell-configure-user

订阅优惠

用户在使用服务之前,还必须订阅运营商创建的优惠(docs.microsoft.com/azure-stack/operator/azure-stack-subscribe-plan-provision-vm)。优惠是一个或多个计划的组合,使 Azure Stack Hub 运营商能够控制诸如试用优惠、容量规划等内容,甚至将 Azure Stack Hub 订阅的创建委托给其他用户。

获取支持

Azure Stack Hub 涵盖许多领域。在联系 Microsoft 支持之前,请查看此网页。它提供了常见问题和故障排除链接:docs.microsoft.com/azure-stack/operator/azure-stack-servicing-policy

除了上述问题外,还有一些额外的支持考虑事项。

集成系统

集成系统受益于 Microsoft 与 Microsoft 的原始设备制造商OEM)硬件合作伙伴之间协调的升级和解决过程。

如果出现云服务问题,Microsoft 支持可以提供帮助。要打开支持请求,请在管理员门户的右上角选择帮助和支持图标(问号)。然后选择帮助 + 支持,再选择支持部分下的“新建支持请求”。

如果部署、补丁、更新、硬件(包括可更换单元)或任何硬件品牌的软件(如在硬件生命周期主机上运行的软件)出现问题,您的 OEM 硬件供应商是您的首要联系人。

对于任何其他问题,您应联系 Microsoft 支持。

Azure Stack 开发工具包

ASDK 是 Azure Stack Hub 的单节点部署,您可以免费下载并使用。所有 ASDK 组件都安装在运行在单一主机计算机上的虚拟机中,该计算机必须有足够的资源。ASDK 旨在提供一个环境,您可以在其中评估 Azure Stack Hub,并使用与 Azure 一致的 API 和工具开发现代应用程序,但这是一个非生产环境。

由于 ASDK 是免费的产品,因此不提供正式支持。您可以在定期监控的微软论坛中提问有关 ASDK 的支持问题(social.msdn.microsoft.com/Forums/azure/home?forum=azurestack)。要访问论坛,请在管理员门户的右上角选择帮助和支持图标(问号),然后选择帮助 + 支持,再选择支持部分下的MSDN 论坛。但是,微软支持不提供官方支持,因为 ASDK 是一个评估环境。

Azure Stack Hub 更新管理

您可以通过应用完整和快速更新、热修复以及 OEM 提供的驱动程序和固件更新来帮助保持 Azure Stack Hub 的最新状态。然而,请记住,Azure Stack Hub 更新包仅适用于集成系统,不能应用于 ASDK,对于 ASDK,需要重新部署。有关重新部署的信息,请参见 docs.microsoft.com/azure-stack/asdk/asdk-redeploy 中的重新部署 ASDK

更新包类型

对于集成系统,有三种不同类型的更新包:

  • Azure Stack Hub 软件更新:这些更新直接从微软下载,可能包括 Azure Stack Hub 功能更新、Windows Server 安全更新和非安全相关的更新。每个更新包可以是完整快速类型:

    • 完整更新包会更新规模单元中的物理主机操作系统。它们需要更长的维护窗口。

    • 快速更新包是有针对性的,不会更新底层的物理主机操作系统。

  • Azure Stack Hub 热修复:这些时间敏感的更新解决了特定问题。每个热修复都会发布相应的微软知识库文章,详细说明问题、原因和解决方法。热修复的下载和安装方式与完整更新包类似。您可以在此处阅读更多信息:docs.microsoft.com/azure-stack/operator/azure-stack-servicing-policy#hotfixes

  • OEM 硬件供应商提供的更新:这些更新由每个硬件供应商管理。它们通常包含驱动程序和固件更新,每个供应商将这些更新托管在自己的网站上。

何时更新

上述更新以不同的频率发布:

  • Azure Stack Hub 软件更新:微软每年发布多次完整和快速软件更新包。

  • Azure Stack Hub 热修复:这些是时间敏感的,可以随时发布。当您从一个主要版本升级到另一个版本时,如果新版本中有任何热修复,它们会自动安装。

  • OEM 硬件供应商提供的更新:这些更新由 OEM 硬件供应商根据需要发布。

如果你希望继续获得支持,必须将 Azure Stack Hub 环境保持在受支持的 Azure Stack Hub 软件版本上。有关更多信息,请访问此链接阅读 Azure Stack Hub 服务政策:docs.microsoft.com/azure-stack/operator/azure-stack-servicing-policy

检查可用的更新

更新通知依赖于诸如互联网连接和更新类型等因素:

  • 对于 Microsoft 发布的软件更新和热修复,你将在更新面板中看到 Azure Stack Hub 实例的更新警报(仅限已连接互联网的实例)。如果未显示此面板,请重新启动基础架构管理控制器虚拟机。对于未连接的实例,你可以订阅 RSS 订阅源(azurestackhubdocs.azurewebsites.net/xml/hotfixes.rss),以接收每次热修复发布的通知。

  • 来自 OEM 硬件供应商的更新通知取决于你与制造商的沟通。有关更多信息,请访问 Azure Stack Hub OEM 更新页面:docs.microsoft.com/azure-stack/operator/azure-stack-update-oem

从一个主要版本更新到下一个版本

从一个主要版本更新到下一个主要版本必须按照正确的顺序和步骤进行,不能跳过任何一个主要版本的更新。有关详细信息,请查看此链接:docs.microsoft.com/azure-stack/operator/azure-stack-updates#how-to-know-an-update-is-available

主要版本中的热修复

在一个主要版本发布中,可能会有多个热修复。这些修复是累积的,最后一个热修复包包含该主要版本的所有前期热修复。有关更多信息,请参阅docs.microsoft.com/azure-stack/operator/azure-stack-servicing-policy#hotfixes

更新资源提供者

Azure Stack Hub 通过更新资源提供者处理 Microsoft 软件更新的应用。该提供者验证更新是否已应用到所有 Service Fabric 应用及其运行时、所有物理主机、所有虚拟机及其相关服务。

在更新过程中,你可以在 Azure Stack Hub 中查看到一个高层次的状态概览,在其中你可以看到不同子系统的进展情况。

我们已经介绍了 Azure Stack Hub 的基础知识。接下来,我们将介绍 Azure Stack HCI,这是一种 HCI 集群解决方案。

Azure Stack HCI 解决方案概述

Azure Stack HCI 旨在托管经过验证的合作伙伴硬件上的虚拟化 Linux 和 Windows 工作负载。它专为混合环境(本地和云)设计,Azure Stack HCI 与 Azure 混合服务相结合,提供诸如灾难恢复和虚拟机备份选项等功能,还可以实现基于云的监控。你还可以通过单一的管理界面查看所有部署,并通过 Windows 管理中心、系统中心和 PowerShell 等工具管理集群。此外,Azure Stack HCI 上还提供了 AKS。这是 AKS 编排器的本地实现——详细信息请见 docs.microsoft.com/azure-stack/aks-hci/overview

Azure Stack HCI 软件可以在这里下载:azure.microsoft.com/products/azure-stack/hci/hci-download/。它是一个带有内置混合云连接的本地解决方案,作为 Azure 服务计费到你的 Azure 订阅中。

Azure Stack HCI 的应用场景

Azure Stack HCI 有许多应用场景,下面我们将讨论这些场景。

数据中心整合与现代化

使用 Azure Stack HCI 来刷新较旧的虚拟化主机并进行可能的整合,有几个潜在的好处。它可以增强可扩展性,简化管理和提高安全性。它还可以通过替换传统的 SAN 存储来减少占地面积和总体拥有成本。统一的工具和界面,以及单一的支持点,简化了系统管理和操作。

分支机构的混合基础设施管理

对于拥有分支机构的企业来说,管理混合基础设施可能会面临挑战。当多个地点必须在没有专职 IT 员工的情况下运行时,保持身份服务同步、进行数据备份和部署应用程序会变得更加复杂。在这种情况下,企业通常需要数周或数月的时间才能在多个办事处和基础设施中推出应用程序更新。因此,需要更好的解决方案,以便快速、轻松地在远程办事处部署应用和身份更改,同时实现对异常和违规行为的集中监控。

以一家拥有 300 个全球办事处的国际银行为例,每次全球更新所有办事处都需要一年时间。更复杂的是,多个地点使得始终如一地修正配置和避免潜在的安全风险(如开放端口)变得困难。对拥有大量办事处的公司来说,向分支机构推出新的和更新的应用程序也是一大难题,特别是当远程站点因延迟或网络连接受限,需要在本地服务器上运行应用程序时。

为帮助您克服这些挑战,Azure Stack HCI 提供基于行业标准 x86 服务器的软件定义计算、存储和网络。使用内置于 Windows 管理中心的 Azure Arc 集成,您可以轻松开始使用 Azure 门户云来管理您的 HCI。通过减少或消除对本地 IT 员工的需求,您可以满足分支办公室、零售店和现场位置日益增长的 IT 需求,随时部署基于容器的应用程序以及高度可用的虚拟机中的关键业务应用程序。然后,Azure 监控可以让您查看这些不同领域的系统健康状况。

远程和分支办公室

Azure Stack HCI 提供了一种经济实惠的方式来现代化远程和分支办公室,包括零售店和现场站点(目前可用的双服务器集群解决方案,每个位置的费用不到 $20,000)。嵌套的容错性意味着即使发生多重硬件故障,卷也可以保持在线并可访问。云见证技术使得可以使用 Azure 作为轻量级的集群仲裁者。这可以防止分脑现象发生,同时不涉及第三台主机的成本。在 Azure 门户中,您可以看到远程 Azure Stack HCI 部署的集中视图。

虚拟桌面

Azure Stack HCI 为您的本地虚拟桌面提供类似本地的性能。如果您需要支持用户的数据主权以及低延迟,这非常理想。

Azure 集成的好处

Azure Stack HCI 让您通过混合基础设施利用云和本地资源的结合,提供原生云监控、安全性和备份。

首先,您的 Azure Stack HCI 集群必须与 Azure 注册。然后,您将能够利用 Azure 门户进行:

  • 监控:您可以查看 Azure Stack HCI 集群的总体情况。在这里,您可以按资源组对集群进行分组并标记。即将发布的新功能也将支持从门户中创建和管理虚拟机。

  • 计费:使用您的 Azure 订阅来支付 Azure Stack HCI(免费预览阶段后)。

  • 支持:通过标准或专业直接 Azure 支持计划提供 Azure Stack HCI 支持。

这些额外的 Azure 混合服务也可供订阅:

  • Azure 站点恢复提供 灾难恢复即服务 (DRaaS) 和高可用性。

  • Azure 监控,提供应用、基础设施和网络事件的集中视图,包括由 AI 驱动的高级分析。

  • 云见证,利用 Azure 作为轻量级的集群仲裁者。

  • Azure 备份通过将数据存储到异地来保护数据,同时提供对勒索病毒的防护。

  • Azure 更新管理,用于评估和部署 Azure 托管和本地 Windows 虚拟机的更新。

  • Azure 网络适配器,使用点对站点 VPN 来连接您的 Azure 虚拟机与本地资源。

  • Azure 文件同步,用于文件服务器的云同步。

另请参见 将 Windows Server 连接到 Azure 混合服务docs.microsoft.com/windows-server/manage/windows-admin-center/azure/index

Azure Stack HCI 前提条件

最初,您将需要:

  • 至少选择两个服务器,来自 Azure Stack HCI 目录和您选择的 Microsoft 硬件合作伙伴,组成集群。

  • Azure 订阅。

  • 每个集群中的服务器每 30 天或更频繁需要进行 HTTPS 外发传输的互联网连接。

如果您的集群跨多个站点部署,您至少需要 1 Gb 的站点间连接(但最好使用 25 Gb 的 RDMA 连接),并且如果计划在两个站点同时进行同步复制并写入数据,平均往返延迟应为 5 毫秒。

如果您计划使用 软件定义网络 (SDN),还应规划为 Azure Stack HCI 操作系统创建网络控制器虚拟机(VHD)的过程(有关更多信息,请访问 计划部署网络控制器 页面:docs.microsoft.com/azure-stack/hci/concepts/network-controller)。

另请参见:

硬件合作伙伴

通过从您选择的 Microsoft 合作伙伴处订购经过验证的 Azure Stack HCI 配置,您可以在没有过多设计或部署时间的情况下启动操作。实施和支持也可以通过 Microsoft 合作伙伴通过联合支持协议提供单一联系点支持。选项包括购买经过验证的节点,或者购买预安装了 Azure Stack HCI 操作系统的集成系统,配合驱动程序和固件更新合作伙伴扩展。

部署选项

  • 集成系统:从硬件合作伙伴购买经过验证的服务器,并预安装 Azure Stack HCI。

  • 经过验证的节点:从硬件合作伙伴购买经过验证的裸机服务器,然后注册 Azure Stack HCI 服务。进入 Azure 门户,您可以在其中下载 Azure Stack HCI 操作系统。

  • 重用硬件:重新利用现有硬件。有关此路径的详细信息,请查看以下链接:docs.microsoft.com/azure-stack/hci/deploy/migrate-cluster-same-hardware

您可以在这里阅读更多关于 Azure Stack HCI 的内容:azure.microsoft.com/overview/azure-stack/hci

您还可以查看 Azure Stack HCI 目录。它详细介绍了来自微软合作伙伴的 100 多个解决方案。您可以在此处找到在线目录:azure.microsoft.com/products/azure-stack/hci/catalog/.

软件合作伙伴

微软合作伙伴正在开发软件,构建在 Azure Stack HCI 平台上,无需更换 IT 管理员已熟悉的工具。要查看突出显示的 ISV 及其应用程序列表,请访问此链接:docs.microsoft.com/azure-stack/hci/concepts/utility-applications.

许可、计费和定价

Azure Stack HCI 计费使用物理处理器核心数来计算每月订阅费,而不是永久许可证。连接到 Azure 时,上传并自动评估您使用的核心数,以计费。因此,更高密度的虚拟环境不会导致更高的成本,从而导致更具吸引力的定价。

管理工具

您拥有 Azure Stack HCI 的完全管理员集群权限,可以直接管理:

您还可以使用以下管理工具:

开始使用 Azure Stack HCI 和 Windows Admin Center

这些部分适用于 Azure Stack HCI 版本 20H2。假设你已经在 Azure Stack HCI 安装中设置了集群,并且提供了连接到集群和监控集群及存储性能的说明。

安装 Windows Admin Center

Windows Admin Center 是一个本地部署的基于浏览器的应用程序,用于管理 Azure Stack HCI。Windows Admin Center 可以安装在服务模式的服务器上,但在本地管理 PC 上以桌面模式安装会更简单。在服务模式下,需要使用属于 Windows Admin Center 服务器上的 Gateway Administrators 组的帐户来执行需要 CredSSP 的任务,如创建集群和安装更新及扩展。有关更多详细信息,请查看 docs.microsoft.com/windows-server/manage/windows-admin-center/configure/user-access-control#gateway-access-role-definitions

添加并连接到 Azure Stack HCI 集群

安装 Windows Admin Center 后,你可以从 Windows Admin Center 仪表板的主概览页面添加一个集群进行管理。仪表板还会显示有关 CPU、内存和存储使用情况的信息,以及有关服务器、磁盘和卷的警报和健康信息。集群性能信息,如输入/输出操作/秒IOPS)和延迟,可以按小时、天、周、月或年显示在仪表板底部。

监控单个组件

仪表板左侧的工具菜单允许你深入查看集群的任何组件,查看虚拟机、服务器、卷、驱动器和虚拟交换机的摘要和清单。在仪表板中,性能监视器工具可以让你实时查看、比较和添加 Windows、应用程序或设备的性能计数器。

查看集群仪表板

要查看集群健康和性能的仪表板信息,请在所有连接下选择集群名称。然后,在左侧的工具下选择仪表板。你将看到:

  • 平均集群延迟(以毫秒为单位)

  • 集群事件警报

  • 一个列表:

    • 集群中可用的磁盘驱动器

    • 加入集群的服务器

    • 在集群上运行的虚拟机

    • 集群中可用的卷

  • 总计集群:

    • 集群的 CPU 使用情况

    • IOPS

    • 集群的内存使用情况

    • 集群的存储使用情况

有关更多信息,请访问此链接:docs.microsoft.com/azure-stack/hci/manage/cluster

使用 Azure Monitor 进行监控和警报

你还可以使用 Azure Monitor 收集事件和性能计数器进行分析和报告,响应特定条件并接收电子邮件通知。通过点击工具菜单中的 Azure Monitor,你将直接从 Windows Admin Center 连接到 Azure。

收集诊断信息

工具菜单中的诊断选项卡可以让你收集集群的故障排除信息。如果你请求微软支持,这些信息也可能会被要求提供。

使用 Windows Admin Center 管理虚拟机

你可以使用 Windows Admin Center 在 Azure Stack HCI(Azure Stack HCI 版本 20H2 和 Windows Server 2019)上启动并管理你的虚拟机。功能包括:

  • 创建新的虚拟机。

  • 列出服务器或集群中的虚拟机。

  • 查看虚拟机详细信息,包括来自给定虚拟机专用页面的详细信息和性能图表。

  • 查看聚合虚拟机指标,查看集群中所有虚拟机的总体资源使用和性能。

  • 更改虚拟机的内存、处理器、磁盘大小等设置(注意,在更改某些设置之前,您需要先停止虚拟机)。

附加功能包括:

  • 将虚拟机迁移到另一台服务器或集群

  • 将虚拟机加入域

  • 克隆虚拟机

  • 导入和导出虚拟机

  • 查看虚拟机导出日志

  • 使用 Azure Site Recovery 保护虚拟机(一个可选的增值服务)

请注意,你还可以通过其他方式连接到虚拟机,而不仅仅是通过 Windows Admin Center:

  • 通过使用远程桌面协议RDP)连接到 Hyper-V 主机

  • 通过使用 Windows PowerShell

你还可以为集群进行 Storage Spaces Direct 更改,并更改一般集群设置。这些可以包括:

  • 集群见证者

  • 节点关机行为

  • 设置和管理访问点

  • 流量加密

  • 虚拟机负载均衡

你还可以通过 Azure Monitor 监控你的 Azure HCI 集群。

比较 Azure Stack Hub 和 Azure Stack HCI

Azure Stack HCI 和 Azure Stack Hub 都可以在你的混合云和多云战略中发挥关键作用。以下是它们差异的简要总结:

  • Azure Stack Hub:这允许你在本地运行云应用程序,无论是断开连接时,还是为了满足合规性要求,利用一致的 Azure 服务。

  • Azure Stack HCI:这允许你在本地运行虚拟化应用程序,加强并替换老化的服务器基础设施,并连接到 Azure 以提供云服务。

Azure Stack Hub 提供创新的流程,尽管可能需要新的技能。它将 Azure 服务带入你的数据中心。另一方面,使用 Azure Stack HCI,你可以使用现有的技能和熟悉的流程,将你的数据中心连接到 Azure 服务。比较 Azure Stack Hub 和 Azure Stack HCI 无法做到的事情或可能的限制可能也很有帮助。

Azure Stack Hub 的限制:

  • Azure Stack Hub 必须至少有 4 个节点,并且必须有自己的网络交换机。

  • Azure Stack Hub 限制了 Hyper-V 的配置和功能集,以保持与 Azure 的一致性。

  • Azure Stack Hub 不会让你访问底层基础设施技术。

Azure Stack HCI 的限制:

  • Azure Stack HCI 本身不提供或强制实施多租户架构。

  • Azure Stack HCI 不提供本地 PaaS 功能。

  • Azure Stack HCI 不包含本地的 DevOps 工具集。

  • Azure Stack HCI 仅支持虚拟化工作负载——不能在裸金属上部署应用。

要了解更多内容,请访问 docs.microsoft.com/azure-stack/operator/compare-azure-azure-stack?view=azs-2008

摘要

随着商业环境的发展,软件应用可能在不同的系统上运行,包括本地、非本地、多个云平台以及网络边缘。混合云和多云解决方案可以帮助你成功地部署和管理应用,只要你在组织的各个位置创建一个统一、一致的环境。通过这种方式,你为开发者提供了一套统一的工具来构建应用。你可以轻松地在不同位置之间迁移应用和数据,以确保效率和合规性,并为用户提供最佳体验。

Azure Arc 和 Azure Stack 组合是 Azure 混合云和多云解决方案与产品的两大核心组件。Azure Arc 提供统一管理,允许你在任何地方部署 Azure 服务并扩展 Azure 管理。通过启用 Azure Arc 的服务器,你可以将本地的 Azure 虚拟机管理应用到 Azure 外的 Windows 和 Linux 机器上。借助 Azure Arc 和 Kubernetes,你可以在任何基础设施上运行指定的 Azure 数据服务。

相比之下,Azure Stack 使 Azure 服务能够跨云和非云位置提供服务,让你能够在不同的环境和位置上一致地创建和运行混合应用,以应对多样化的工作负载。Azure Stack Hub 是一个云原生的集成系统,可以让你在本地使用 Azure 云服务,而 Azure Stack HCI 提供现代化数据中心和虚拟化主机的 HCI。

无论单独使用,还是与其他微软和 Azure 解决方案结合使用,Azure Arc 和 Azure Stack 都可以帮助你应对挑战,充分利用在金融、政府、制造业、零售、能源、健康等领域的机会。

你可以立即尝试像 Azure Arc 这样的功能,使用 Azure Arc Jumpstart 在 AKS、AWS Elastic Kubernetes Service、GKE 或 Azure 虚拟机中进行操作。一些示例步骤如下:

  1. 安装客户端工具。

  2. 创建 Azure Arc 数据控制器。

  3. 在 Azure Arc 上创建托管实例。

  4. 在 Azure Arc 上创建 PostgreSQL Hyperscale 服务器组的 Azure 数据库。

有关 Azure 混合云和多云解决方案及产品的更多信息,以及如何成功地为你的企业或组织使用它们,请访问以下微软网页:

我们希望本章内容能在您的 Azure 混合云和多云之旅中提供帮助。接下来,我们将探讨如何规划和实施迁移到 Azure。

客户正在加速云端之旅,以优化成本、增强安全性和弹性,并按需扩展。组织迁移到 Azure 的主要动机之一是降低其 IT 基础设施的拥有总成本TCO)。通过迁移到 Azure,组织可以从具有固定前期承诺的资本支出CapEx)模式转向更灵活、可扩展的运营支出OpEx)模式。在 OpEx 模式下,组织通过仅为其消耗的资源和服务付费来减少支出。

正如我们将在本章中讨论的那样,这只是迁移到 Azure 后你将获得的许多好处之一。首先,我们将看到微软提供了一个框架,帮助你在架构中实现可靠性、安全性和高可用性。然后,我们将探索 Azure 的基础设施,帮助你做出最明智的选择以实现迁移目标。在我们建立了 Azure 基础设施的基础知识后,我们将讨论一些常见的工作负载迁移场景,以及如何实现云规模并最大化性能。

本章将涵盖以下主题:

  • 微软的 Well-Architected 框架

  • 选择你的基础设施

  • 工作负载迁移场景

  • 实现云规模并最大化性能

  • 企业级备份和灾难恢复

  • Azure 迁移最佳实践和支持

让我们首先讨论在 Azure 中使用 Microsoft Well-Architected 框架进行可靠系统规划、设计和实施的架构最佳实践。

第四章:微软 Azure Well-Architected 框架

随着组织将员工转移到远程工作,关键基础设施和应用程序受到了影响。虽然一些组织能够将应用程序迁移到云端,但其他组织则不得不重新设计其云端环境。然而,设计和部署成功的云工作负载可能会具有挑战性,特别是当组织面临时间限制,以确保它们能够继续支持全球客户时。

在云中运行时,有几个设计原则和考虑因素与在本地部署时不同,比如你如何管理工作负载、基础设施成本、监控、安全性和性能。我们曾经为本地应用程序执行的许多管理任务并不适用于云环境。

如果我们在云中运行的工作负载没有正确部署,那么可能会有各种后果,影响 Azure 服务的成本和应用程序的性能。

为了帮助您和您的组织解决在 Azure 中规划、设计和实施可靠系统的复杂性,微软创建了 Azure Well-Architected 框架,提供了构建 Azure 云解决方案的最佳实践。该框架旨在指导您提高在 Azure 中运行的解决方案的质量,包含五大支柱:

  • 成本优化 使您能够创建成本效益高的解决方案。

  • 运营卓越 确保通过最小的停机时间保持系统在生产环境中的持续运行。

  • 性能效率 能够按需扩展并在使用高峰时满足业务需求。

  • 可靠性 能够快速从可能影响应用程序可用性的故障中恢复。

  • 安全性 保护您的应用程序和数据,并快速响应潜在的威胁和漏洞。

基于行业标准,微软帮助客户提高其工作负载的质量。该框架是微软 Azure Well-Architected 计划的核心,包含文档、参考架构和设计原则,帮助您理解并找出如何更好地设计、实施和成功部署这些工作负载到云端。

微软还提供了 Azure Well-Architected 审查,它是一个 web 应用程序,通过问答帮助您更好地理解工作负载的设计,并评估需要改进的地方。

此外,Azure Advisor 与 Azure Well-Architected 框架的五大支柱保持一致,提供实时建议,帮助您改善在云中运行的所有资源的性能。

我们推荐以下微软学习路径来学习 Well-Architected 框架:docs.microsoft.com/learn/paths/azure-well-architected-framework/

许多组织从 基础设施即服务 (IaaS) 开始他们的云之旅。在下一节中,我们将首先通过学习 Azure 的三项核心服务来建立基础知识。稍后在本章中,我们将探讨其他常见的工作负载迁移场景。

选择您的底层基础设施

在本节中,我们将检查 Azure 的底层基础设施。其核心是,典型的 Azure IaaS 环境由以下三项服务构成:

  • 计算

  • 网络

  • 存储

这三项服务构成了 IaaS 环境中的主要架构构建块。我们将详细探讨每一项核心服务,从 Azure 计算开始。

计算

无论您是部署新工作负载还是将现有工作负载迁移到云,Azure 计算提供了运行工作负载所需的基础设施。

下面是 Azure 计算的一些关键功能:

  • Azure 提供超过 700 种虚拟机VM)规格,几乎可以应对所有类型的工作负载。从开发/测试工作负载、关键生产工作负载到面向客户的应用程序高性能计算场景。

  • 您可以在 Windows Server 和多个 Linux 发行版上运行应用程序,如 Red Hat、SUSE、Ubuntu、CentOS、Debian、Oracle Linux 和 CoreOS。此外,Microsoft 提供与 Red Hat 和 SUSE 的 24x7 集成协作支持。

  • Azure 提供了专门的裸金属基础设施,用于运行越来越多的解决方案,如 SAP HANA、NetApp 或 Cray 等在 Azure 中的服务。

  • Azure 提供了一个常青的基础架构,拥有来自 Intel®、AMD 和 NVIDIA 的 CPU 和 GPU,帮助您获得最佳的性价比。

  • 您可以选择在任何可用的 Azure 区域运行应用程序。您还可以利用多个区域来提高应用程序的大规模弹性。

  • Azure 提供了多种定价模式,从按需付费到预订,包括 1 年或 3 年期的折扣。此外,还有优化工具,提供调整大小的建议,帮助您充分利用 Azure 环境。

  • 如果您已有 Windows Server 订阅、SQL Server 许可证或具有软件保障的 Windows Server 许可证,并且享受Azure 混合权益,您可以在将工作负载迁移到 Azure 时重复使用它们,从而显著节省成本。此外,借助 Azure 混合权益,您还可以在 Azure 上使用现有的本地 Red Hat 和 SUSE 软件订阅。

对于 Azure 客户来说,最常见的迁移场景之一是将现有的本地环境迁移到云端,几乎不需要任何改变。这通常被称为“提升与迁移”或“重新托管”。我们可以利用虚拟化技术帮助迁移现有的本地工作负载到 Azure。毫无疑问,虚拟化技术在简化组织如何在 Azure 上部署和管理 IT 基础设施方面起到了积极作用,部分归功于像 Microsoft Hyper-V 和 VMware vSphere 等解决方案。此外,熟悉在本地运行虚拟机的管理员可以成功地将相同的技能应用于 Azure。

在下表中,我们为您提供了一些常见的使用场景以及每个场景推荐的 Azure 计算服务。您可以使用此表来规划您的下一步云迁移策略。我们还包括了每个 Azure 计算服务的链接,供您进一步了解。

计算服务 常见使用场景
Azure 应用服务: https://azure.microsoft.com/services/app-service/ 为开发云原生应用程序提供全面管理的平台,支持 Web 和移动端应用。
Azure 专用主机: https://azure.microsoft.com/services/virtual-machines/dedicated-host/ 在专用物理服务器上部署 Azure 虚拟机,以隔离仅供您组织使用的工作负载。
Azure 函数: https://azure.microsoft.com/services/functions/ 你可以使用事件驱动的无服务器架构加速应用开发,无需额外设置。
Azure 容器实例: https://azure.microsoft.com/services/container-instances/ 帮助你通过单个命令轻松在 Azure 中运行容器。
Azure Kubernetes 服务: https://azure.microsoft.com/services/kubernetes-service/ 用于简化 Kubernetes 的部署、管理和操作。
Azure Service Fabric: https://azure.microsoft.com/services/service-fabric/ 用于开发微服务和在 Windows 与 Linux 上编排容器。
Azure Batch: https://azure.microsoft.com/services/batch/ 用于访问云规模的作业调度和计算管理,支持 10 倍、100 倍、1000 倍虚拟机。
Azure 云服务: https://azure.microsoft.com/services/cloud-services/ 如果你更倾向于使用 PaaS 技术来部署可扩展、可靠且运营成本低廉的 Web 和云应用程序。
虚拟机: https://azure.microsoft.com/services/virtual-machines/ 如果你需要快速部署 Linux 和 Windows 虚拟机,并完全控制云环境。
虚拟机规模集: https://azure.microsoft.com/services/virtual-machine-scale-sets/ 用于在几分钟内自动扩展大量负载均衡虚拟机,以根据需求实现高可用性和性能。
Azure VMware 解决方案: https://azure.microsoft.com/services/azure-vmware/ 如果你希望在 Azure 上本地运行你的 VMware 工作负载。

表格 4.1:常见使用案例的推荐 Azure 服务

现在我们已经了解了 Azure 计算的能力,接下来我们来看看 Azure 网络。

网络

Azure 网络安全地连接并交付你的云原生和混合工作负载,提供低延迟和基于零信任的网络服务。零信任是一种安全概念,强调组织不应自动信任其边界内外的任何事物。相反,任何尝试连接到系统的请求都必须在授权之前进行验证。

在下表中,我们为你提供了一些常见的使用案例以及推荐的 Azure 网络服务。你可以使用此表来规划下一个云迁移策略。我们还包含了每个 Azure 网络服务的链接,方便你深入了解它们:

网络服务 常见使用案例
Azure Bastion: azure.microsoft.com/services/azure-bastion/ 用于通过私有和完全托管的 RDP 与 SSH 访问虚拟机。
Azure 虚拟网络: azure.microsoft.com/services/virtual-network/ 用于连接从虚拟机到传入 VPN 连接的所有内容。
Azure ExpressRoute: azure.microsoft.com/services/expressroute/ 如果需要将本地网络与 Azure 连接以提供专用网络连接。
Azure VPN Gateway: azure.microsoft.com/services/vpn-gateway/ 用于通过互联网安全访问 Azure 虚拟网络。
Azure Virtual WAN: azure.microsoft.com/services/virtual-wan/ 通过统一门户安全地连接办公地点、零售位置和站点。
Azure DDoS Protection: azure.microsoft.com/services/ddos-protection/ 用于保护您的应用程序免受 DDoS 攻击。
Azure Firewall: azure.microsoft.com/services/azure-firewall/ 需要添加原生防火墙功能,无需维护且具备内建的高可用性。
Azure Firewall Manager: azure.microsoft.com/services/firewall-manager/ 需要一种集中管理网络安全策略和路由的方式。
Azure Load Balancer: azure.microsoft.com/services/load-balancer/ 需要对应用程序的传入和传出连接进行负载均衡。
Traffic Manager: azure.microsoft.com/services/traffic-manager/ 需要路由传入的流量以提高性能和可用性。
Network Watcher: azure.microsoft.com/services/network-watcher/ 需要监控和诊断网络问题。
Azure Web Application Firewall: azure.microsoft.com/services/web-application-firewall/ 需要使用 Web 应用防火墙服务来增强 Web 应用程序的安全性。
Azure Application Gateway: azure.microsoft.com/services/application-gateway/ 用于使用 Web 流量负载均衡器来管理到 Web 应用程序的流量。
Azure DNS: azure.microsoft.com/services/dns/ 确保超快的 DNS 响应和可用性,以满足您的域名需求。
Azure Private Link: azure.microsoft.com/services/private-link/ 需要为托管在 Azure 平台上的服务提供专用访问。
Azure Front Door:azure.microsoft.com/services/frontdoor/ 你需要为全球范围且基于微服务的 Web 应用程序提供一个具有增强安全性、可扩展的交付点。
Azure CDN:azure.microsoft.com/services/cdn/ 你需要加速向全球客户传递高带宽内容。
Azure Internet Analyzer(预览版):azure.microsoft.com/services/internet-analyzer/ 你需要测试网络基础设施变化对性能的影响。

表 4.2:常见用例推荐的 Azure 服务

Azure 基础设施的另一个关键组件是存储,我们将在下一节中讨论。

存储

在今天的商业环境中,数据以快速的速度增长。组织对最佳存储解决方案的需求日益增加。对于存储解决方案,Azure 提供了众多服务,组织可以根据成本和性能要求选择最适合的方案:

  • Azure Disk Storage

  • Azure 文件

  • Azure Blob Storage

  • Azure Data Lake Storage

  • Azure NetApp 文件

让我们更详细地了解这些 Azure 存储产品。

Azure Disk Storage

Azure Disk Storage 旨在与 Azure 虚拟机配合使用。它提供高性能以及为关键任务和业务应用程序提供高度耐用的块存储。

Azure Disk Storage 的一些关键特性和优势包括:

  • 具有成本效益的存储

    • 根据不同的价格点和性能特征,通过各种磁盘选项优化成本,并获得适合工作负载的精确存储。

    • 使用共享磁盘将基于 Windows 和 Linux 的集群或高可用性应用程序以具有成本效益的方式迁移到云端。

  • 无与伦比的弹性

    • Azure 为所有单实例虚拟机使用 Azure Disk Storage 提供可用性保证。

    • Azure Disk Storage 提供企业级的耐用性,年化故障率为零。

  • 无缝可扩展性和高性能

    • 使用 Azure Ultra Disk Storage 动态扩展性能,获得高 IOPS 和吞吐量,同时保持一致的亚毫秒延迟。

    • 根据需求扩展性能,使用性能层和内建的突发功能来满足业务需求。

  • 内建安全性

    • 使用 Microsoft 管理的密钥或您自己的自定义密钥来自动加密数据,保护数据安全。

    • 通过 Azure Private Link 支持,限制磁盘的导入和导出仅在你的私有虚拟网络内进行。

根据成本和性能需求,您可以选择四种类型的磁盘存储选项:

  • Ultra Disk Storage

  • 高级 SSD

  • 标准 SSD

  • 标准 HDD

数据密集型和事务密集型工作负载可以从Azure Ultra Disk Storage的高性能和一致的低延迟能力中受益。此类工作负载的例子包括 SAP HANA、顶级数据库如 SQL Server 和 Oracle,以及 NoSQL 数据库如 MongoDB 和 Cassandra。

要了解更多关于这些磁盘存储选项的信息,请访问docs.microsoft.com/azure/virtual-machines/disks-types

Azure 文件存储

Azure Files是一个理想的完全托管云文件共享服务,既是无服务器的又是安全的。您可以通过行业标准的 NFS 和 SMB 协议访问 Azure Files 上的共享文件。此外,它还可以作为容器的持久共享存储,与 AKS 紧密集成。如果您寻找跨平台的混合体验,您会很高兴知道,Azure 文件共享可以通过 Azure File Sync 在 Windows、Linux 或 macOS 系统上同时挂载,无论是在 Azure 还是本地环境中。

要了解更多关于 Azure Files 的信息,请访问docs.microsoft.com/azure/storage/files/storage-files-introduction

Azure Blob 存储

Azure Blob 存储提供高度可扩展、可用且安全的存储。在安全性方面,数据可以通过静态加密和高级威胁保护来保护,同时数据访问可以通过Azure Active DirectoryAzure AD)、基于角色的访问控制RBAC)和网络级控制来保护。

它适用于以下类型的工作负载:

  • 云原生和移动应用程序

  • 高性能计算

  • 机器学习工作负载

  • 存储归档

Azure Blob 存储的一些关键功能和优势包括:

  • 完全支持云原生应用程序开发:

    • 提供云原生应用程序所需的可扩展性和安全性。

    • 支持 Azure Functions 和许多流行的开发框架,如.NET、Python、Java 和 Node.js。

  • 存储数 PB 数据:

    • 以最具成本效益的方式存档不常访问的数据。

    • 用 Azure Blob 存储替代旧的磁带存储,减少跨硬件代际迁移的需求。

  • 为高性能计算(HPC)扩展:

    • 能满足 HPC 应用程序的高吞吐量要求。
  • 为数十亿 IoT 设备扩展:

    • 提供存储,以收集来自数十亿 IoT 设备的数据点。

你可以在docs.microsoft.com/azure/storage/blobs/storage-blobs-overview了解更多关于 Azure Blob 存储的信息。

Azure 数据湖存储

Azure Data Lake Storage 提供了一种高可扩展且具有成本效益的大数据分析数据湖解决方案。它针对分析工作负载进行了优化,并通过提供单一的存储平台来支持 Azure Synapse Analytics 和 Power BI,便于数据的获取、处理和可视化。

它具有成本效益,因为它允许存储和计算的扩展可以独立进行(这是本地数据湖无法实现的)。Azure Data Lake Storage Gen2 还允许通过自动化生命周期管理策略进一步优化成本,并可以根据使用情况自动扩展或缩减。

在安全性方面,它提供与 Azure Blob 存储相同级别的安全性,包括静态加密和高级威胁防护。与 Azure Blob 存储类似,数据访问可以通过 Azure ADRBAC 和网络级别控制来保护。

您可以在docs.microsoft.com/azure/storage/blobs/data-lake-storage-introduction了解更多关于 Azure Data Lake Storage 的信息。

Azure NetApp 文件

在云中运行性能密集型和延迟敏感的文件工作负载可能是具有挑战性的。Azure NetApp 文件使企业的 业务线LOB)和存储专业人员能够轻松迁移并运行复杂的基于文件的应用程序,无需更改代码。Azure NetApp 文件是一个完全托管的 Azure 服务,由 NetApp 的行业领先存储技术提供支持。它广泛用于各种场景中的共享文件存储服务,包括:

  • POSIX 兼容的 Linux 和 Windows 应用程序的迁移(提升和转移)

  • SAP HANA

  • 数据库

  • 高性能计算(HPC)基础设施和应用程序

  • 企业 Web 应用程序

您可以在docs.microsoft.com/azure/azure-netapp-files/了解更多关于 Azure NetApp 文件的信息。

这结束了我们对 Azure 基础设施的快速浏览,概述了 Azure 的核心服务:计算、网络和存储。在下一节中,我们将查看一些常见的工作负载迁移场景。

工作负载迁移场景

在上一节中,我们构建了对 Azure 底层基础设施的基础理解。我们将继续在此基础上,通过讨论以下常见的工作负载迁移场景来扩展这些知识:

  • Windows Server 和 Linux 工作负载

  • SQL Server

  • 容器

  • VMware 工作负载

  • SAP 工作负载

  • 高性能计算(HPC)

让我们从 Windows Server 和 Linux 工作负载开始。

Windows Server 和 Linux 工作负载

当涉及到将 Windows Server 和 Linux 虚拟机从本地迁移到 Azure 时,微软建议使用 Azure Migrate 工具和服务中心。Azure Migrate 提供了一个集中的中心,用于发现、评估和迁移到 Azure。Azure Migrate 中的 Server Migration 工具专门用于将服务器迁移到 Azure。

Azure Migrate 的一些关键功能和好处包括:

  • 您可以跨不同的环境和场景进行迁移,包括本地服务器、VM、数据库、Web 应用和虚拟桌面。

  • 您可以使用内置的 Azure 工具以及您选择的第三方工具,进行全面的发现、评估和迁移。

  • 您可以在仪表板中全面查看迁移进度。

  • 您可以通过快速的升迁和迁移工具高效迁移,无需额外费用(包括在您的 Azure 订阅中)。

一旦将 VM 迁移到 Azure,您应该启用 Azure Automanage,以简化日常和重复的 IT 管理任务。Azure Automanage 允许 IT 管理员通过点击界面管理和自动化日常操作,并跨 Windows 和 Linux 服务器执行生命周期管理。

Azure Automanage 可与任何新的或现有的 Windows Server 或 Linux VM 一起使用。它会根据 Microsoft Cloud Adoption Framework 中定义的最佳实践自动执行 VM 管理。Azure Automanage 消除了服务发现、注册和 VM 配置的需求。例如,Azure Automanage 使客户能够通过提供一种简便的方法,将操作系统基线应用于 VM,从而实施安全最佳实践,符合 Microsoft 的基线配置。像 Azure Security Center 这样的服务会根据客户选择的配置文件自动启用。如果 VM 的配置偏离应用的最佳实践,Azure Automanage 会检测到并自动将 VM 恢复到期望的配置。

要了解更多关于 Azure Migrate 的信息,请访问 docs.microsoft.com/azure/migrate/migrate-services-overview

要了解更多关于 Azure Automanage 的信息,请访问 azure.microsoft.com/services/azure-automanage

要了解更多关于 Azure Security Center 的信息,请访问 azure.microsoft.com/services/security-center/

有关 Microsoft Cloud Adoption Framework 的信息,请访问 docs.microsoft.com/azure/cloud-adoption-framework/

SQL Server

Azure SQL 是一系列安全、托管和智能产品,构建在 Azure 云中的熟悉 SQL Server 数据库引擎之上。微软的数据平台使用 SQL Server 技术,并使其在各种不同的环境中可用。包括公有云以及私有云环境(可以是第三方托管),以及物理本地机器。因此,Azure SQL 目的地与本地 SQL Server 提供一致的体验,允许您将自己熟悉的技能、工具、语言和框架与应用程序一起迁移到 Azure。您可以使用 Azure Migrate 轻松迁移应用程序,并继续使用您熟悉的资源。

以下表格清晰地展示了每个 Azure SQL 产品及其用途,帮助您做出适合自己需求的明智决策:

Azure SQL 产品 常见使用场景
Azure SQL 数据库 支持现代云应用程序,提供智能、完全托管的数据库服务,并包括无服务器计算功能。
Azure SQL 托管实例 将现有的本地应用程序迁移到 Azure,并要求与完整的 SQL Server 数据库引擎保持 100% 功能对等。迁移后,您不希望再管理 SQL Server 的升级或维护。
SQL Server on Azure VMs 轻松迁移现有 SQL Server 工作负载,同时保持 100% SQL Server 兼容性和操作系统级别访问。您希望对数据库服务器以及其运行的底层操作系统拥有完全控制。

表格 4.3:Azure SQL 产品及常见使用场景

我们将更详细地介绍每个 Azure SQL 产品。

Azure SQL 数据库

Azure SQL 数据库 是 Azure 平台即服务PaaS)产品,是一个完全托管的 SQL Server 数据库引擎,托管在 Azure 中。Azure SQL 数据库基于最新的稳定版 SQL Server 企业版。它是需要当前稳定 SQL Server 功能的云应用程序的理想选择,同时还能减少开发和市场推广时间的需求。

使用 Azure SQL 数据库,您可以根据需要快速进行扩展和缩减,无需中断。它还提供了 SQL Server 中没有的额外功能,包括内置的高可用性、智能化和管理功能。

Azure SQL 托管实例

Azure SQL 托管实例 是 Azure 的 PaaS 产品,类似于完整的 Microsoft SQL Server 数据库引擎实例。它非常适合将本地应用程序迁移到 Azure,且几乎无需数据库更改。Azure SQL 托管实例包括 Azure SQL 数据库的所有 PaaS 优势,但还添加了以前仅在 Azure 虚拟机上的 SQL Server 中可用的功能(如下一节所述),包括本地虚拟网络和与本地 SQL Server 几乎 100% 的兼容性。

SQL Server 在 Azure 虚拟机上

SQL Server 在 Azure 虚拟机上 是一种 Azure 基础设施即服务 (IaaS) 服务,允许您在 Azure 虚拟机内运行完整的 SQL Server。SQL Server 在 Azure 虚拟机上非常适合使用“提升和迁移”方法将现有的本地数据库迁移到 Azure,几乎无需对数据库进行任何更改。通过 SQL Server 在 Azure 虚拟机上,您对 SQL Server 实例以及运行在 Azure 虚拟机上的底层操作系统具有完全的管理控制。然而,拥有这种完全控制权的同时,您还需负责升级、维护和备份虚拟机上的软件。如果您的组织已经有 IT 资源来管理虚拟机,这将不成问题。

这是 SQL Server 在 Azure 虚拟机上的一些其他好处:

  • 您可以在 Windows Server 虚拟机或 Linux 虚拟机上安装和托管您的 SQL Server。

  • 所有最新版本和版本的 SQL Server 都可以在 Azure 虚拟机中安装。

  • 您可以使用现有的 SQL Server 许可证来在 Azure 虚拟机上运行 SQL Server,或者使用一个预构建的 SQL Server 虚拟机镜像,其中已经包括了 SQL Server 许可证。这同样适用于通过 Azure 混合权益的 PaaS 服务。

  • SQL Server 在 Azure 虚拟机上允许您构建一个具有高度自定义性的系统,以满足应用程序的性能和可用性需求。

  • 您可以使用 SQL Server 在 Azure 虚拟机上快速启动一个环境来开发和测试传统的 SQL Server 应用程序。

总结本节内容时,我们将讨论这三种 Azure 数据库服务的关键区别。

Azure SQL 数据库、Azure SQL 托管实例和 SQL Server 在 Azure 虚拟机上的关键区别

这三种 Azure 数据库服务之间最显著的区别是,SQL Server 在 Azure 虚拟机上允许您对数据库引擎进行完全控制。而 SQL 数据库和 SQL 托管实例是基于 PaaS 的,这意味着您无需管理 SQL 数据库和 SQL 托管实例的升级或备份。另一方面,SQL Server 在 Azure 虚拟机上是基于 IaaS 的,因此您需要自己管理操作系统、数据库软件和备份的升级。您应该根据迁移需求选择合适的 Azure 数据库服务。

另一项被许多组织广泛采用的技术是容器。

容器

容器因其允许您轻松地将应用程序从一个环境迁移到另一个环境,而无需更改应用程序而广泛流行。关于容器,Azure 提供了多种选择,包括:

  • Azure Kubernetes 服务(AKS)

  • Azure 容器实例(ACI)

  • Web 应用程序容器

ACI 允许你为不需要完整容器编排的小型应用程序创建独立的容器。这些实例启动迅速,可以利用 Azure 虚拟网络和公共 IP。ACI 非常适合 概念验证 (PoC) 应用程序。

要了解更多关于 ACI 的内容,请访问 azure.microsoft.com/services/container-instances/

AKS 简化了在 Azure 上部署托管 Kubernetes 集群的过程。由于许多管理责任已被转移到 Azure,因此管理 Kubernetes 的复杂性和操作开销大大减少。

Azure 管理 Kubernetes 主节点并处理关键任务,如维护和健康监控。这意味着你只需要管理代理节点。因此,你只需为代理节点付费,而不需要为集群中的主节点付费;作为托管的 Kubernetes 服务,AKS 是免费的。如果你希望创建 AKS 集群,你可以在 Azure 门户中进行创建。或者,你可以使用 Azure CLI 或各种模板驱动的部署选项,如 Azure 资源管理器 (ARM) 模板和 Terraform。

当部署 AKS 集群时,所有节点(包括主节点和代理节点)都会为你自动部署和配置。在部署过程中,你还可以配置额外的功能,如 Azure AD 集成、先进的网络和监控。AKS 还支持 Windows Server 容器。

要了解更多关于 AKS 的信息,请访问 docs.microsoft.com/azure/aks/intro-kubernetes

使用 Web 应用程序容器,你可以轻松地在 Windows 和 Linux 上部署和运行容器化应用程序。它提供了内建的自动扩展和负载均衡。你可以通过 GitHub、Azure 容器注册表和 Docker Hub 自动化你的 持续集成/持续部署 (CI/CD) 流程。你还可以设置自动扩展以满足工作负载需求。例如,你可以设置扩展规则,以在非高峰时段降低成本。

要了解更多关于 Web 应用程序容器的内容,请访问 azure.microsoft.com/services/app-service/containers/

VMware 工作负载

使用 Azure VMware 解决方案,你可以无缝地将 VMware 工作负载从本地环境迁移到 Azure。这使你可以继续使用熟悉的工具管理现有的 VMware 环境,同时将 VMware 工作负载原生运行在 Azure 上。

你可以在 azure.microsoft.com/services/azure-vmware/ 了解更多关于 Azure VMware 解决方案的信息。

另一种将 VMware 工作负载迁移到 Azure 的方法是使用 Azure Migrate: Server Migration 工具。你可以通过两种方式将 VMware 虚拟机迁移到 Azure:

  1. 无代理迁移

  2. 基于代理的迁移

我们将在下面突出每种类型迁移所涉及的步骤,并提供链接以便您获取详细的迁移指导。

无代理迁移

以下是无代理迁移所涉及的步骤概述:

  1. 设置Azure Migrate设备。

  2. 复制虚拟机(VM)。

  3. 跟踪并监控迁移状态。

  4. 进行测试迁移。

  5. 迁移虚拟机(VM)。

  6. 完成迁移。

有关无代理迁移的更多信息,请访问:docs.microsoft.com/azure/migrate/tutorial-migrate-vmware

基于代理的迁移

以下是基于代理迁移所涉及的步骤概述:

  1. 准备 Azure 以便与 Azure Migrate 配合使用:

    1. 创建一个Azure Migrate项目。

    2. 验证 Azure 账户权限。

    3. 设置 Azure VM 迁移后将加入的网络。

  2. 准备基于代理的迁移:

    1. 设置 VMware 账户。这是为了使Azure Migrate能够发现需要迁移的机器,并且可以在您希望迁移的机器上安装 Mobility 服务代理。

    2. 准备一台将充当复制设备的机器。

    3. 添加Azure Migrate: Server Migration工具。

  3. 设置复制设备。

  4. 复制虚拟机(VM)。

  5. 为了检查一切是否按预期工作,请进行测试迁移。

  6. 完成完整的迁移到 Azure。

有关基于代理迁移的更多信息,请访问:docs.microsoft.com/azure/migrate/tutorial-migrate-vmware-agent

有 SAP 工作负载的公司可能有兴趣迁移到 Azure。我们将在下一部分讨论这个问题。

SAP 工作负载

Azure 针对 SAP 工作负载进行了优化,您可以将大多数现有的 SAP NetWeaver 和 S/4HANA 系统迁移到 Azure,而不会遇到任何问题。Azure 的可扩展性极强,可以提供拥有超过 200 个 CPU 和数 TB 内存的虚拟机(VM)。对于最具挑战性的工作负载,Azure 还提供HANA 大型实例HLIs)。HLIs 基于 Azure 数据中心中的专用物理硬件,运行 Intel Optane,这是 Azure 独特的云服务。

为了成功将您的 SAP 工作负载部署到 Azure IaaS,您必须了解传统托管提供商和 Azure IaaS 提供的差异。传统托管提供商会根据客户要托管的工作负载调整基础设施(例如服务器类型、存储和网络)。而对于 Azure IaaS,责任在于客户,客户需要识别工作负载的需求,并选择适当的 Azure VM、存储和网络组件进行部署。

为了规划成功的迁移,您应该注意以下事项:

  • 什么类型的 Azure VMs 可以支持您的 SAP 工作负载需求?

  • 哪些 Azure 数据库服务可以提供您的 SAP 工作负载所需的支持?

  • 了解支持的 Azure VM 类型和 HLI SKU 提供的各种 SAP 吞吐量。

此外,有必要了解 Azure IaaS 资源和带宽限制与本地资源实际消耗之间的对比。因此,你必须了解 Azure 虚拟机和 HLI 在 SAP 支持下的各种能力,包括:

  • 内存和 CPU 资源

  • 存储 IOPS 和吞吐量

  • 网络带宽和延迟

要了解更多关于 SAP 迁移到 Azure 的信息,请访问:azure.microsoft.com/solutions/sap/migration/

要了解微软如何将其 SAP 应用程序迁移到 Azure 以及其他 SAP 在 Azure 上的应用场景,请访问:www.microsoft.com/itshowcase/sap-on-azure-your-trusted-path-to-innovation-in-the-cloud

具有复杂计算和过程密集型任务的组织通常需要 HPC 资源。我们将在接下来的部分详细了解 Azure 的 HPC 产品。

高性能计算

随着公司获取更多的数据和更复杂的处理方法,高性能计算(HPC)变得越来越普及。近年来,越来越多的组织开始理解如何利用 HPC 解决方案重新构建和转型他们的业务。然而,许多这些组织在 HPC 方面没有历史积累,因此没有现有的硬件集群或其他 HPC 硬件投资作为起点。这正是 Azure HPC 可以提供其最大价值的地方。Azure HPC 使你能够开发和托管改变游戏规则的应用程序和体验,而无需在本地部署基础设施。

以下是不同产业及其使用 HPC 的例子:

行业 他们使用 HPC 来做什么?
金融 风险建模,防止欺诈
工程 计算流体力学 (CFD),有限元分析 (FEA),电子设计自动化 (EDA),化学工程仿真,自动驾驶车辆开发
生命科学 基因组测序,DNA 拼接,分子生物学,制药开发
地球科学 天气建模(WRF),地震处理,油藏建模
制造业 数字车辆工程,工业 4.0,预测性维护,数字双胞胎

表 4.4:HPC 如何在不同行业中应用

Azure 使你能够在云中运行企业级 HPC 工作负载,而不需要投资在本地规划、部署和管理自己的 HPC 集群,从而避免了成本和风险。Azure HPC 系统的优势在于,你可以根据需要动态配置资源,并在需求下降时将其关闭。Azure 使得在多个虚拟机(VM)之间协调 HPC 任务变得容易,并且支持多种 VM 大小、处理器类型以及 HPC 数据要求常见的存储选项。

在 Azure 中,你可以选择多种技术来满足你的 HPC 需求:

  • H 系列虚拟机:基于 CPU 的虚拟机,具有高性能互联

  • N 系列虚拟机:基于 GPU 和其他加速器的虚拟机,具有高性能互联

  • Cray 超级计算机:专用、完全托管环境选项

  • Azure Cycle Cloud:用于扩展环境和集群

  • Azure HPC Cache:用于本地/外部大数据同步

  • Azure Batch:用于扩展应用程序任务

一些领先的行业独立软件供应商(ISV)在 Azure 上运行,包括 AnsysAltairWillis Towers Watson。让我们来详细了解这些 Azure HPC 服务。

注意

Linux 是高性能计算(HPC)工作负载中最常见的操作系统,因此 Azure 完全支持 Linux 作为 HPC 虚拟机的默认操作系统。

Azure H 系列虚拟机

H 系列虚拟机针对具有极高内存带宽和可扩展性需求的高性能计算(HPC)应用进行了优化,例如:

  • 计算化学

  • 电子设计自动化

  • 有限元分析

  • 流体动力学

  • 热传导模拟

  • 量子模拟

  • 渲染

  • 油藏模拟

  • 风险分析

  • 地震处理

  • Spark

  • 气象建模

H 系列还支持使用 RDMA InfiniBand 的极快互联,使其在处理过程中需要大量服务器间通信的紧密耦合工作负载中表现出色。

你可以通过 azure.microsoft.com/pricing/details/virtual-machines/series/ 了解更多关于 Azure 虚拟机 HPC 实例的信息。

Azure N 系列虚拟机

N 系列虚拟机支持多种 GPU,适用于计算和图形密集型工作负载,包括:

  • 深度学习

  • 高端远程可视化

  • 预测分析

这些虚拟机还支持使用 RDMA InfiniBand 的极快互联,使其在处理过程中需要大量服务器间通信的紧密耦合工作负载中表现出色。

你可以通过 azure.microsoft.com/pricing/details/virtual-machines/series/ 了解更多关于 N 系列虚拟机的信息。

Cray 超级计算机

Azure 中的 Cray 为你提供一个专用、完全托管的超级计算机,运行在你的虚拟网络上。微软和 Cray 合作,提供极致的性能、可扩展性和弹性,能够处理最苛刻的 HPC 工作负载。你现在可以将自己的 Cray 超级计算机作为托管服务获取,并与其他 Azure 服务一起运行,推动大规模计算工作流。

你可以通过 azure.microsoft.com/solutions/high-performance-computing/cray/ 了解更多关于 Azure 中 Cray 的信息。

Azure CycleCloud

Azure CycleCloud是一个企业级工具,用于在 Azure 上管理和编排 HPC 环境。它面向希望使用特定调度器部署 HPC 环境的 HPC 管理员。Azure CycleCloud 开箱即用,支持许多广泛使用的 HPC 调度器,包括:

  • 网格引擎

  • HTCondor

  • PBS Professional

  • Platform LSF

  • Slurm 工作负载管理器

使用 Azure CycleCloud,HTC 管理员可以:

  • 自动扩展基础设施,以在任何规模下高效运行任务。

  • 创建并挂载不同类型的文件系统到计算集群节点,以支持 HPC 工作负载。

  • 为 HPC 系统提供基础设施。

有趣的是,Azure CycleCloud 和Azure Batch是姊妹产品。我们将在本节稍后讨论 Azure Batch。

你可以通过访问docs.microsoft.com/azure/cyclecloud/overview了解更多关于 Azure CycleCloud 的信息。

Azure HPC 缓存

Azure HPC 缓存通过将文件缓存到 Azure 中,并帮助提高对 HPC 任务数据的访问速度,将云计算的可扩展性带入现有工作流。你甚至可以使用 Azure HPC 缓存通过广域网(WAN)链接访问数据,例如在本地数据中心的网络附加存储NAS)环境中。我们将在本章后面进一步讨论 Azure HPC 缓存。

你可以通过访问azure.microsoft.com/services/hpc-cache/了解更多关于 Azure HPC 缓存的信息。

Azure Batch

Azure Batch是一个用于在 Azure 上处理大规模并行计算和计算密集型任务的服务。与 HPC 虚拟机和 Microsoft HPC Pack 不同,Azure Batch 是一个托管服务。你提供数据和应用程序,指定是否在 Linux 或 Windows 上运行,使用多少台机器,以及适用于自动扩展的规则。Azure Batch 处理计算能力的供应,并优化并行工作的方式。你只需为使用的基础计算、网络和存储付费。Azure Batch 的调度和管理服务是免费的。

Azure Batch 是处理重负载的理想服务,如金融风险建模、3D 渲染、媒体转码和基因序列分析。把 Azure Batch 看作是 Azure 平台上灵活的管理和调度服务层。尽管你可能能在没有 Azure Batch 帮助的情况下配置数千台虚拟机以支持重负载,但没有 Azure Batch,你需要自己处理所有虚拟机的调度工作,并根据可用的计算资源分配任务。

你可以通过访问docs.microsoft.com/azure/batch/batch-technical-overview了解更多关于 Azure Batch 的信息。

Azure 的 HPC 服务将高性能计算技术带到您的指尖,使您能够执行新的任务。您已经了解了 Azure 上可用于 HPC 工作负载的解决方案:Azure Batch、HPC 虚拟机和 Microsoft HPC Pack。现在,您可以选择最适合您 HPC 工作负载的选项。

本节概述了常见工作负载迁移场景。下一节,我们将探讨如何在 Azure 中实现云规模并最大化性能。

实现云规模并最大化性能

在这里,我们将探讨将工作负载迁移到 Azure 后,如何实现云规模并最大化性能。我们将首先了解 Azure 的扩展方式,以及自动缩放如何帮助实现这一目标。然后,我们将讨论可用于计算和存储性能优化的选项。

Azure 自动缩放

自动缩放使系统能够根据用户需求的变化调整所需的资源,同时控制与这些资源相关的成本。您可以在许多 Azure 服务中使用自动缩放,例如 Azure 虚拟机规模集。自动缩放要求您配置自动缩放规则,指定何种条件下应增加或移除资源。

假设您经营一家在线专卖店。在假期季节,您的网站可能会经历短期的流量激增。此类流量峰值可能随时发生,这使得很难为潜在的流量激增进行规划。事件的不可预测性意味着手动扩展不可行,而且为了随时应对突发流量,保持网站资源的可用性将是非常昂贵的。这就是 Azure 自动缩放派上用场的地方。它会根据您配置的自动缩放规则自动调整资源的增减,给您带来安心。

与扩展类似,我们还需要考虑计算和存储性能。

计算和存储性能考虑

正如您在本章的 选择您的基础设施 部分中所回忆的,我们重点介绍了用于计算和存储的各种 Azure 服务。关于计算性能考虑,Azure 虚拟机规模集 是一种提供高性能和高可用性的服务,可替代可用性集。关于存储性能,Azure Ultra Disk 提供最高的性能和最低的延迟。在本节中,我们将深入探讨这两项服务,以帮助您优化计算和存储性能。

计算性能考虑:虚拟机规模集

使用虚拟机规模集,您可以创建和管理一组多样化的负载均衡虚拟机,并根据实际需求和使用情况,或根据您定义的自定义计划,自动调整虚拟机数量的增减。最棒的是,您无需单独手动配置每个虚拟机。

在底层,虚拟机规模集使用负载均衡器将请求分配到虚拟机实例,并通过健康探测来判断每个实例的可用性。其工作原理如下:

  1. 虚拟机规模集使用健康探测来检测实例。

  2. 如果实例响应,虚拟机规模集确定该实例仍然可用。

  3. 如果 ping 失败或超时,虚拟机规模集将确定该实例不可用,并停止向其发送请求。

虚拟机规模集支持 Azure 中的 Linux 和 Windows 虚拟机,并允许你集中管理、配置和更新异构虚拟机组。随着需求增长,规模集中运行的虚拟机数量会增加。相反,需求减少时,多余的虚拟机可以被关闭。每个可用性区域中的单个虚拟机规模集最多可以包含 1,000 个虚拟机。

如果你处理的是需求变化大且不可预测的大型工作负载,虚拟机规模集是一个理想的解决方案。你可以完全控制规模集内的单个虚拟机,并通过灵活的编排模式确保大规模的高可用性。你可以在不重新部署规模集的情况下更改虚拟机大小,或在同一规模集内混合使用 Azure Spot 虚拟机 和按需虚拟机,以优化成本。你还可以使用相同的 API 管理虚拟机和虚拟机规模集,并通过在虚拟机创建过程中定义故障域加速部署。

要了解更多关于 Azure 虚拟机规模集的信息,请访问:azure.microsoft.com/services/virtual-machine-scale-sets/

在讨论了计算后,我们将探讨你在高性能计算(HPC)工作负载中应考虑的存储选项。

高性能文件缓存考虑因素:Azure HPC 缓存

如前所述,Azure HPC 缓存通过在 Azure 中缓存文件来加速 HPC 任务对数据的访问。通过 Azure 门户,你可以轻松启动并监控 Azure HPC 缓存。即使你更改后端存储目标,客户端访问依然保持简单,因为新的 Blob 容器或现有的 NFS 存储可以成为 Azure HPC 缓存聚合命名空间的一部分。

要了解更多信息,你可以观看关于 Azure HPC 缓存的简短视频,链接如下:azure.microsoft.com/resources/videos/hpc-cache-overview/

延迟敏感存储考虑因素:Azure NetApp 文件

Azure NetApp 文件是一项企业级、按需计量的文件存储服务,让你可以选择所需的服务和性能等级。默认情况下,它是高度可用的,具备高性能,支持所有工作负载类型。该服务允许你按需设置快照,并管理策略(目前处于预览阶段),该策略可以定时自动创建卷快照。

Azure NetApp Files 使企业 LOB(线性业务)和存储专业人员能够轻松迁移并运行复杂的基于文件的应用程序,而无需修改代码。它是首选的共享文件存储服务,适用于多种场景,包括迁移符合 POSIX 标准的 Linux 和 Windows 应用程序(迁移与转移)、企业 Web 应用程序、数据库、SAP HANA、以及 HPC 应用程序和基础设施。

存储性能考虑:Azure Ultra Disks

正如本章前面所讨论的,如果你的 Azure 虚拟机需要最高的性能、吞吐量和 IOPS,并且具有最低的延迟,你应该考虑使用 Azure Ultra Disk。Azure Ultra Disk 提供顶级性能,并与现有磁盘产品保持相同的可用性水平。Azure Ultra Disk 的一大优点是,你可以根据工作负载动态调整 SSD 性能,而无需重新启动 Azure 虚拟机。这使其成为适合高负载、事务密集型工作负载(如 SAP HANA、SQL Server 和 Oracle)的理想选择。

要了解更多关于 Azure Ultra Disks 的信息,请访问docs.microsoft.com/azure/virtual-machines/disks-enable-ultra-ssd

在接下来的部分,我们将讨论业务连续性和灾难恢复,并介绍如何使用适当的 Azure 工具来实现它们。

企业级备份和灾难恢复

在撰写本文时,主要由于疫情,大小组织纷纷选择将其运营迁移到 Microsoft Azure,以实现安全的远程办公并提高运营效率。此外,迁移到 Azure 的组织可以显著减少资本支出,因为在部署公共云工作负载时几乎没有或根本没有需要在初期投资中购买的基础设施。然而,设计一个可靠的基础设施至关重要,这将帮助你保持数据和应用程序的可用性,确保它们始终可以访问。

为了帮助你保护数据和关键应用免受潜在故障的影响,始终备份数据并为这些备份提供安全访问至关重要,以确保业务连续性。Azure Backup 可以帮助你备份数据并在 Azure 中恢复。

Azure Backup

在云中执行备份可以帮助组织降低成本,并改善存储管理的一致性。Azure Backup 旨在帮助你将数据备份并恢复到云中。

虽然 Azure 已知至少保留三份数据副本,并使用 Azure 存储进行存储,但保持备份并通过启用对数据损坏、意外删除或勒索软件的保护来提升安全性至关重要。

由于 Azure Backup 是一项完全托管的服务,内建于 Azure 中,你可以备份本地或云中的数据,并将其恢复到特定的时间点,以确保业务连续性。

Azure 备份无需你设置任何基础设施,这使得它既简单易用,又能降低拥有成本。Azure 备份与在 Azure 上运行的不同工作负载(如 Azure 虚拟机、SQL Server 数据库、Azure PostgreSQL、SAP 和 Azure 文件)提供原生集成,因此无需为执行备份而预配任何基础设施。

那么,Azure 备份是如何存储数据的呢?在后台,Azure 备份主要依赖于 Azure Blob 存储来存储你的备份,并确保可靠性,因为你可以从多种冗余选项中选择用于备份的存储方式,例如本地冗余存储LRS)、地理冗余存储GRS)、只读访问地理冗余存储RA-GRS)或区域冗余存储ZRS)。Azure 备份提升了安全性,因为它具备加密能力,以确保数据在传输和静态时的安全性,并提供如基于角色的访问控制等功能,同时提供最多 14 天的备份数据软删除功能,且无需额外收费。

随着组织的数据量以及跨多个 Azure 订阅、区域甚至租户的工作负载的增加,确保数据和资源的安全性和合规性变得至关重要。因此,治理功能对于监控和执行备份治理标准变得尤为重要。

要了解有关 Azure 备份的更多指南和最佳实践,请访问docs.microsoft.com/azure/backup/guidance-best-practices

备份中心是一个全新的本地集中管理功能,帮助你监控、操作、治理并获取所有备份数据的洞察。你可以管理所有保管库中的数据源和备份实例。你还可以选择特定的数据源,以获取有关备份的更多详细信息。通过备份中心,你可以启动数据恢复,并根据图 4.1中的示例添加策略和保管库:

备份中心页面概览

图 4.1:备份中心页面

使用备份中心,你可以集成治理功能,如 Azure 策略,允许组织审计和部署策略,以达到预期的备份目标状态。然后,你可以使用备份合规性检查你的组织是否遵循了这些策略。

现在我们已经回顾了 Azure 备份的工作原理,构建可靠系统的另一个考虑因素是恢复能力。让我们看看 Azure 如何通过 Azure 站点恢复帮助你改进故障切换和恢复过程。

Azure 站点恢复

作为一个组织,你需要确保业务连续性,并在灾难发生时减少停机时间。业务连续性和灾难恢复的规划意味着采用一种机制,确保你的工作负载和数据在计划内或计划外的停机事件中是安全且具备恢复力的。

Azure 站点恢复ASR)可以帮助您在计划内或计划外停机期间保持应用程序和工作负载的运行。ASR 能够复制在本地或虚拟机上运行的工作负载,并将其恢复到不同的位置。这样,如果您的主要位置发生停机,您可以将工作负载复制到次要位置,确保业务连续性。主位置恢复后,您可以将其恢复。

通过这种灾难恢复机制,ASR 帮助降低基础设施成本,因为它消除了建设或维护昂贵的二级数据中心的需要。而且,只有在虚拟机启动时(即实际故障转移时)才需要支付计算资源费用。

此外,部署和管理非常简单。提供了一个图形用户界面,可以通过点击设置复制和执行持续操作,包括无影响的灾难恢复演练。这意味着整个灾难恢复计划可以通过故障转移到备用站点进行测试,而不会影响生产站点。最后,它还与其他 Azure 服务无缝集成。

假设有一个组织希望为其在 Azure 上运行的虚拟机上的应用程序启用灾难恢复场景。启用 ASR 时,ASR 需要在虚拟机上安装一个扩展程序——这个扩展程序就是如图 4.2所示的站点恢复移动服务:

Azure Site Recovery

图 4.2:Azure 站点恢复

注意

必须在要复制的虚拟机上安装站点恢复移动服务。如果你计划在 Azure 网络虚拟设备NVA)上启用 ASR,我们强烈建议你验证是否能够安装该扩展程序,因为许多 NVA 拥有封闭的操作系统,无法为这些虚拟机启用 ASR。

在复制过程中,虚拟机磁盘写入会发送到源区域的缓存存储帐户,数据则从缓存存储帐户传送到目标区域或次要区域。此时,Azure 会从复制的数据中建立恢复点。

在执行虚拟机故障转移时,ASR 会利用恢复点将虚拟机恢复到目标区域。

总体而言,要在虚拟机上启用 ASR,您必须:

  • 创建恢复服务保管库以存储将要复制的数据以及虚拟机的配置信息。建议在订阅中至少拥有贡献者角色。

  • 启用复制并在执行故障转移时配置源和目标设置。所有资源,包括虚拟机和网络组件,都将在目标区域创建。

  • 准备虚拟机以确保外向连接并验证虚拟机是否安装了根证书。

  • 进行测试故障切换,建议使用非生产网络进行测试,以避免对生产网络中的资源产生任何影响。

请注意,通过 Azure 备份只能访问由 ASR 库使用的存储帐户。这样可以提高安全性并保护您的数据。

以上是我们关于业务连续性和灾难恢复的讨论。在最后一部分,我们将介绍一些有用的资源,帮助您顺利完成 Azure 云迁移旅程。

Azure 迁移最佳实践与支持

根据您的需求,您可以浏览以下资源,获取文档、教程等内容。

官方 Azure 文档

官方 Azure 文档提供了丰富的信息,涵盖如何入门、如何设计和架构您的云应用、所有 Azure 产品的文档、教程等内容:docs.microsoft.com/azure/

Azure Migrate

了解如何使用 Azure Migrate 发现、评估并将您的本地基础设施、数据和应用程序迁移到 Azure:docs.microsoft.com/azure/migrate/migrate-services-overview

Azure 迁移计划

了解 Azure 迁移计划如何通过最佳实践、资源和指导加速您的云迁移之旅:azure.microsoft.com//migration/migration-program/

Azure 架构中心

通过遵循行业中的验证实践,了解如何在 Azure 上设计安全、弹性、可扩展和高可用的应用程序:docs.microsoft.com/azure/architecture/guide/

Azure 应用服务

了解如何通过快速入门、教程和示例使用 Azure 应用服务:docs.microsoft.com/azure/app-service/

Azure SQL 数据库

了解更多关于 Azure SQL 系列 SQL Server 数据库引擎产品在云中的信息:docs.microsoft.com/azure/azure-sql/

使用 Microsoft Learn 免费培训

为确保团队能够获得并保持 Azure 的熟练度,Microsoft Learn 提供了一个免费的培训平台,您可以通过互动在线学习获得新技能和认证:docs.microsoft.com/learn/

联系 Azure 销售专家

与微软的专家团队联系,了解微软如何帮助您迁移到 Azure:azure.microsoft.com/migration/web-applications/app-migration-contact-sales/

摘要

在本章中,我们全面审视了如何规划、设计和实施可靠的云系统。我们深入探讨了微软 Azure 良构架构倡议及其如何帮助您采纳最佳实践,以改善在云中运行的工作负载质量。然后我们深入研究了 Azure 的基础架构,为您提供了实现迁移目标的最佳方式所需的所有信息。我们还讨论了常见的工作负载迁移场景以及如何在 Azure 上实现云规模和最大化性能。

最后,我们回顾了如何利用 ASR 和 Azure 备份帮助您快速转向员工的远程工作,确保业务在故障切换期间的连续性,并以安全的方式访问您的数据。

在下一章中,我们将回顾如何在启用远程工作时改善您的安全姿态。

在上一章中,我们学习到,向云过渡不仅仅是将本地资源迁移到云端,而是一个涉及提升可扩展性、安全性和基于云的生产力的过程,从而实现随时随地的远程协作工作。

在本章中,我们将讨论组织在启用远程工作时常见的基础设施挑战,以及如何利用 Azure 核心基础设施组件(如网络、身份、安全、计算和存储)来赋能现代数字工作空间。本章将覆盖以下内容:

  • 部署远程工作基础设施的基本原理

  • Azure Active Directory

  • 启用远程连接

  • 保护和管理流量到您的工作负载

  • 使用 Windows 虚拟桌面赋能远程工作者

我们将从讨论如何使用 Azure 部署远程工作基础设施的基本原理开始。

第五章:部署远程工作基础设施的基本原理

远程工作在过去一年里成为大多数组织的必要转型,并为曾经全职在公司办公室工作的人员带来了多重挑战。

启用居家办公是帮助人们保持跨组织以及与合作伙伴和客户连接的关键。通过利用Azure Active DirectoryAzure AD),您不仅能够启用远程工作,还可以允许用户安全地访问他们需要的应用程序,即使是在公司网络外部。

在云中拥有强大的身份基础至关重要,而 Azure AD 是赋能远程工作的关键组件。Azure AD 是微软提供的基于云的身份和访问管理服务。这意味着 Azure AD 可以跨不同环境使用,使得员工可以访问位于实际本地数据中心或云应用中的资源。

Azure AD 是全球最大规模的基于云的身份服务,已有超过 20 万个组织使用,每天处理超过 300 亿次身份验证请求。Azure AD 还帮助您检测和修复安全威胁。组织在使用身份和访问管理服务时面临的主要挑战之一是入职流程。

让我们快速了解一下可以帮助您安全启用应用程序访问的关键组件和配置。

Azure Active Directory

在我们回顾 Azure AD 启用远程工作的能力之前,重要的是要理解,Azure AD 是一个基于云的身份和访问管理服务。因此,它适用于不同类型的用户,例如:

  • IT 管理员希望控制对应用程序的访问,同时保护用户身份和凭证,以满足治理要求。

  • 应用开发人员可以利用 Azure AD 的功能和与 Azure AD API 的集成来提供个性化的应用程序体验。

  • 订阅多个服务的用户,如 Microsoft 365、Dynamics 365 或 Microsoft Azure。

在选择 Azure AD 时,您需要考虑一些因素,接下来我们将讨论这些内容。

规划您的环境

在执行 Azure AD 部署之前,我们需要确保拥有正确的许可模型,以便能够正确配置 Azure AD,并为我们的组织提供所需的功能。Azure AD 主要有三个许可层级:

  • Azure AD 免费

  • Azure AD Premium P1

  • Azure AD Premium P2

Azure AD 免费开始,此层级将为您提供一些基本功能,如用户和组管理、本地目录同步、云用户的自助密码更改,以及跨云平台(如 Azure、Microsoft 365 和第三方 SaaS 解决方案)的单点登录,如图 5.1所示:

Azure AD 免费层工作流程的表示

图 5.1:Azure AD

如果您希望允许组织中的用户访问本地和云端资源,那么Azure AD Premium P1可能会满足您组织的主要需求。此层级支持动态组和自助组管理,并启用 Microsoft Identity Manager 和云端回写功能,允许您的本地用户执行自助密码重置,如图 5.2所示:

Azure AD 混合环境的表示

图 5.2:Azure AD 混合环境

Azure AD Premium P2 是理想的层级,如果您的组织希望利用先进的安全功能,例如基于 Azure AD 身份保护的风险访问策略,可以通过云规模的机器学习算法检测恶意活动,如图 5.3所示:

Azure AD 条件访问的表示

图 5.3:Azure AD 条件访问

当您的组织注册使用 Microsoft 服务,如 Azure、Microsoft Intune 或 Microsoft 365 时,将会获得一个专用的 Azure AD 服务实例,称为租户。租户代表一个组织。

您可以通过 Azure 门户创建 Azure AD 租户,在其中配置和执行所有与 Azure AD 相关的管理任务。此外,您还可以利用 Microsoft Graph API 访问 Azure AD 资源。

现在我们已经了解了 Azure AD 的各种场景和许可模型,接下来我们将回顾实际部署 Azure AD 租户的配置。

配置 Azure AD 和混合环境

尽管您可能熟悉大部分Active Directory 域服务AD DS)的功能,但需要强调的是,Azure AD 和 AD DS 有一些相似之处和差异,值得进行简要回顾,以便更好地理解每个产品的范围。下表总结了它们的一些核心差异:

Azure Active Directory 与 Active Directory 域服务的比较

表 5.1:AD DS 和 Azure AD 的比较

如果您的组织有 Linux 工作负载并需要为这些资源提供安全访问和通信,则可以使用 Azure AD 管理标识。

为了开始使用 Azure AD,您需要使用一个租户,通常表示一个组织。您可以选择使用现有租户,也可以创建一个新的 Azure AD 租户。

当您创建 Azure 订阅时,它将与 Azure AD 建立信任关系,以验证用户、服务和设备。您的组织可以拥有多个 Azure 订阅,建立与 Azure AD 实例的信任关系,并利用安全主体来提供访问已由 Azure AD 租户保护的资源。

根据您的应用程序要验证的用户类型,可以创建两种主要的环境:

  • Azure AD 账户(或 Microsoft 账户)

  • Azure AD B2C 账户

Azure AD 账户或 Microsoft 账户指的是像 outlook.com 和 live.com 这样的账户,或与工作和学校相关的账户。Azure AD B2C 账户指的是使用本地或社交账户,如您的 Facebook 或 Twitter 社交身份,以及其他身份,来获得对您的应用程序和 API 的单点登录访问权限。

创建您的 Azure AD 租户

新的 Azure AD 租户可以通过 Azure 门户创建。一旦您的 Azure 订阅准备好使用,下一步是进入 Azure 门户,然后选择 Azure Active Directory 选项,如图 5.4所示:

在 Azure 门户中选择 Azure Active Directory 选项

图 5.4:Azure 门户中的 Azure AD

在概览页面,点击创建租户,如图 5.5所示:

点击概览面板中的创建租户按钮

图 5.5:创建租户

然后,在基础面板中,您可以选择要创建的租户类型。选择 Azure Active Directory 或 Azure Active Directory (B2C),如图 5.6所示:

选择 AzureAD 租户类型

图 5.6:Azure AD 租户类型

在配置面板中,您可以为组织提供一个名称,并输入您想使用的初始域名,如图 5.7所示:

在配置标签下提供组织和初始域名

图 5.7:Azure AD 配置

接下来,Azure 将验证您的部署。完成后,点击创建,如图 5.8所示:

审查并验证 Azure AD 租户的配置

图 5.8:创建 Azure AD 租户

您应该在 Azure 门户中看到与创建 Azure AD 租户相关的通知,如此处所示:

通知显示租户创建过程

图 5.9:租户创建中

几分钟后,你的新 Azure AD 租户应该已经准备好。你将在 Azure 门户中看到通知,如图 5.10所示:

确认 Azure AD 租户成功创建的通知

图 5.10 Azure AD 租户创建成功

点击通知以跳转到你的新租户页面,如图 5.11所示:

点击通知以打开新租户页面

图 5.11:Azure AD 租户

对于混合环境,建议使用 Azure AD Connect 实现混合身份集成,因为它提供了同步本地用户与 Azure AD 所需的功能,同时允许用户在本地和云端使用相同的密码,无需额外的联合环境基础设施。

虽然联合是一个可选配置,但 Azure AD Connect 对于使用本地Active Directory 联合服务AD FS)基础设施的混合配置是非常有用的。

为 Windows 虚拟桌面准备基础设施

无论你的组织是否已经在本地部署了 Active Directory,还是刚开始使用 Azure AD,都可以通过混合环境启用远程办公,并利用Azure 资源管理器ARM)模板简化云环境的创建。如图 5.12所示的 ARM 模板将帮助你部署一个安装了 Active Directory 和 Azure AD Connect 的虚拟机:

描绘不同 ARM 模板组件之间的关系

图 5.12:ARM 模板组件

该 ARM 模板将提供以下资源:

  • 一个虚拟网络

  • 一个子网

  • 一个网络安全组NSG):

    • 允许 AD 流量,允许远程桌面协议RDP)传入流量,并限制隔离区DMZ)访问
  • 配置 DNS 指向域控制器

  • 一个虚拟机:

    • 已安装并配置 AD DS。

    • 在域中创建测试用户。

    • Azure AD Connect 已安装并准备好进行配置。

  • 分配一个公共 IP 地址用于通过 RDP 进行远程管理

一旦 ARM 模板部署完成,状态将更改为完成。此时,域控制器已准备好进行 RDP 连接。

注意

你还可以根据需要尝试不同的 ARM 模板,并从 Azure 快速入门模板中获取,例如:

新域高可用 2 个 DC 区域: github.com/Azure/azure-quickstart-templates/tree/master/active-directory-new-domain-ha-2-dc-zones

active-directory-new-domain-module-use: github.com/Azure/azure-quickstart-templates/tree/master/active-directory-new-domain-module-use

active-directory-new-domain: github.com/Azure/azure-quickstart-templates/tree/master/active-directory-new-domain

现在我们可以继续配置 Azure AD Connect 与 AD DS。您可以通过此链接连接到最近配置的 Azure 虚拟机来安装 Azure AD Connect:www.microsoft.com/download/confirmation.aspx?id=47594

配置 Azure AD Connect 与 AD DS

如前所述,Azure AD Connect 将帮助您实现混合身份集成,因为它提供了将本地用户同步到 Azure AD 的功能。

该过程的下一步是连接到域控制器并配置 Azure AD Connect。如果您的组织采用单森林拓扑,则可以使用Express 设置

您可以在此处找到有关安装 Azure AD Connect 的更多详细信息:docs.microsoft.com/azure/active-directory/hybrid/how-to-connect-install-custom

下图展示了 Azure AD Connect 向导:

Azure AD Connect 向导

图 5.13:Azure AD Connect 向导

到目前为止,我们已经回顾了与 AD DS 同步的 Azure AD Connect。一旦您的组织正确配置了 Azure AD,保护员工身份的安全就显得尤为重要,必须采用更强的认证机制,最大限度地减少潜在的身份攻击。

保护您的身份基础设施

我们生活在一个密码已不再足够安全的世界,大多数攻击都与密码漏洞和数据泄露有关,其中大部分涉及钓鱼攻击。保护身份的安全需要更强的认证机制。Azure AD 多重身份验证MFA)就是其中之一——我们来看看。

Azure AD 多重身份验证

使用 Azure AD 的强身份验证可以防止 99.9%的身份攻击。在制定强化凭据的策略时,您应该为组织和用户部署最安全、最易用且最具成本效益的方法。使用 Azure AD 的主要优势之一是它支持 MFA(多重身份验证),要求至少使用两种验证方法。通过这种方式,Azure AD MFA 有助于保护对数据和应用程序的访问。

Azure AD MFA 功能通过不同的方式提供并授权。你可以参考文档获取更多详细信息:docs.microsoft.com/azure/active-directory/authentication/howto-mfa-mfasettings

Azure AD MFA 至少需要以下两种身份验证方法:

  • 你知道的某物——用户名和密码是用户提供凭据的最常见方式。

  • 你拥有的某物——这可以是你的手机或硬件密钥等受信设备。

  • 你是的某物——例如指纹或面部扫描。

作为管理员,你可以定义可使用的二次身份验证形式。

Azure AD 身份保护

使用 Azure AD 身份保护实施用户风险安全策略可以帮助你识别潜在风险,并在需要时对每个风险采取手动措施。你可以识别不同的风险检测类型,作为管理员,你可以使用关键报告进行调查。使用 Azure AD 身份保护需要 Azure AD Premium P2 版或 EMS E5 订阅。

在 Azure AD 中,主要有两种风险策略可以启用:登录风险策略用户风险策略。虽然这两种策略都致力于自动响应环境中的风险检测,但了解它们之间的区别是值得的:

  • 登录风险策略是一种自动响应,你可以为特定的登录风险级别配置它,阻止访问资源,并要求用户通过 MFA 证明其身份,以便访问特定资源。在配置登录风险策略时,你需要设置其适用的用户和组。

  • 另一方面,IT 管理员可以根据用户之前的高风险登录自定义登录体验,使用用户风险策略。用户风险策略也是一种自动响应,当用户达到特定风险级别或其凭据有高概率被泄露时,会对其进行修复。此策略将允许你阻止访问资源,或要求用户重置密码以保持其身份安全。

这是配置风险策略的参考:docs.microsoft.com/azure/active-directory/identity-protection/howto-identity-protection-configure-risk-policies

特权身份管理

特权身份管理PIM)对于那些正在迁移到云端(如果尚未迁移)并希望最小化风险的组织特别有用,尤其是当涉及到分配给组织角色的特权账户时。我们指的是那些可以访问大量资源和数据的账户。

PIM 是 Azure AD 中的一项服务,通过强制执行 按需访问JIT)和 足够访问JEA)来帮助您降低这些风险。

PIM 强制组织中的管理员在需要使用管理权限时提升其权限,因此需要批准才能激活特权规则并强制执行 MFA。

您可以按照以下步骤为您的组织配置 PIM:docs.microsoft.com/azure/active-directory/privileged-identity-management/pim-security-wizard

Azure AD 应用代理

Azure AD 中的安全体验为您提供了所有身份安全功能的一站式服务。通过使用 Azure AD 应用代理,您可以启用对本地资源的远程访问。这意味着,Azure AD 应用代理允许您将本地应用程序发布给企业网络外的用户,同时将 Azure AD 功能扩展为所有组织内应用程序的中央管理点。

这带来了一些好处,如 MFA 和条件访问。更重要的是,它避免了传统解决方案(如 VPN)的局限性,因为无需开放整个网络的访问权限。Azure AD 应用代理允许您控制哪些资源应可访问,并支持多种设备,包括移动设备和桌面设备。

一个组织可以在 DMZ 内拥有多个部门跨应用的企业网络,并且有多个子网,同时也有需要访问企业网络资源的外部用户。

要启用 Azure AD 应用代理,您首先需要在网络中安装本地代理,称为 连接器

这些连接器是运行在您企业网络中的 Windows 服务器上的代理,负责在本地应用程序与 Azure AD 应用代理之间进行通信。

连接器还可以根据所需的单点登录机制与本地 Active Directory 集成。需要注意的是,Azure AD 应用代理需要 Azure AD Premium P1 或 P2 许可证:

Azure AD 应用代理工作流程

图 5.14:Azure AD 应用代理工作流程

图 5.14所示,Azure AD 应用代理的工作流程如下:

  1. 您的组织可以通过一个公共访问端点来拥有一个面向外部的应用程序,该端点可以是一个 URL。

  2. 外部用户可以使用该 URL 连接到应用程序。

  3. 外部用户将被重定向到云服务;身份提供者,即 Azure AD,将使用 MFA、条件访问或其他任何方法来验证用户。

  4. 一旦验证通过,Azure AD 会将令牌发送到用户的客户端设备。

  5. 然后,Azure AD 会将令牌发送到 Azure AD 应用程序代理服务,用户将通过应用程序代理连接器重新定向到本地应用程序。

  6. 如果配置了单一登录,Azure AD 应用程序代理连接器将代表用户执行额外的身份验证。

  7. 最后,连接器将请求发送到本地应用程序,并通过连接器和 Azure AD 应用程序代理服务将响应发送回用户。

正如你所看到的,Azure AD 应用程序代理可用于需要从公司网络外部访问的本地应用程序。

Azure AD 条件访问

为了使用户能够访问本地和云中的应用程序,管理员需要确保合适的人拥有访问资源的权限。条件访问是 Azure AD 的一项高级功能,通过提供基于策略控制资源访问的机制来解决这些挑战。

使用 Azure AD 条件访问,作为管理员的你可以轻松保护组织资产,并通过基于一些常见信号(如设备、应用程序、IP 位置以及用户或组成员身份)配置的策略来应用合适的访问控制。

Azure AD 条件访问的示例包括:

  • 位置:当用户在公司网络之外访问资源时,应该要求使用 MFA(多因素身份验证)。

  • 设备平台:为每个设备平台定义一个阻止访问的策略。例如,只允许 iOS 设备访问,但不允许 Android 设备。

  • 云应用:要求当 Azure AD 检测到存在风险的登录时,阻止使用敏感信息的应用程序。

这就是我们对 Azure AD 的详细介绍。接下来我们将讨论 Azure 如何帮助你启用远程连接的其他方式。

启用远程连接

在连接性方面,Azure Virtual Network 是扩展到 Azure 并为组织、合作伙伴和客户提供最佳应用体验和连接性的基本构建块。Azure 提供了多种网络功能,以便安全地提供连接并支持远程工作。

这些网络功能包括多个 Azure 网络服务。有三个主要服务可以支持远程办公:Azure Virtual WAN、Azure VPN 和 ExpressRoute。

Azure Virtual WAN

Azure Virtual WAN 提供了一个统一的网络安全和路由框架,帮助你在不同地区之间建立连接并扩展。它还允许你在 Virtual WAN 中心部署 Azure 网络虚拟设备NVA)。

Virtual WAN 中心本质上是一个虚拟网络,你可以在其中部署集成了 ExpressRoute 和 NVA 的网关。为了支持远程办公,你可以利用 Azure Virtual WAN 的功能,为远程用户提供更好的连接体验。它可以通过站对站 VPN 连接多个分支,通过点对站 VPN 连接远程用户。

使用 Azure Virtual WAN 时,你可以通过多个中心扩展连接,构建一个完全网状的中心,允许你实现任意到任意的连接方式。这样,你可以将远程用户连接到 Azure 的同时,也能将 ExpressRoute 终端或通过站对站 VPN 连接的分支互联起来。

需要强调的是,每个 Azure Virtual WAN 都有一个路由器,控制与中心内其他网关的路由。它还支持网络到网络的传输功能,聚合能力可达 50 Gbps。

Azure Virtual WAN 具有内置的安全功能。你可以为每个区域部署一个中心,并配置多个防火墙,这些防火墙可以通过 Azure Firewall Manager 进行管理。这样,你可以使用 Azure Firewall Manager 跨订阅、区域和部署工作,并创建策略来保护所有通过网络的流量。

目前大多数组织依赖合作伙伴和供应商通过硬件或虚拟设备启用这些网络功能。这些设备可以迁移到 Azure,因为你可以通过 Azure Marketplace 部署 NVA,并将其集成到 Virtual WAN 中心中。此外,Azure 还内置了 BGP 功能,支持跨多个网络的传输路由,并交换路由信息,通知本地设备和 Azure VPN 网关它们是否可达:

Azure 网络服务概览

图 5.15:Azure 网络

你可以在 Azure 中跨多个区域配置多个虚拟网络,为远程工作者提供点对站点 VPN 连接或站对站 VPN 连接,连接你从本地网络到虚拟网络的 VPN 网关。如图 5.15所示。

Azure VPN

Azure VPN 网关使你能够通过互联网或其他虚拟网络发送加密流量,连接本地位置和 Azure 虚拟网络。你可以有多个连接到同一个 VPN 网关,但每个虚拟网络只能有一个 VPN 连接。

在配置特定类型的 VPN 网关之前,我们需要了解可用的 VPN 网关连接配置,并评估哪个最适合你的组织。Azure 提供了多种连接拓扑,你可以选择最适合你组织需求的连接方式:站对站S2S)、多站点、点对站P2S)和 ExpressRoute。

让我们逐一讨论它们。

站对站和多站点

站点到站点 VPN 网关最适合您的组织,如果您希望实现本地位置与虚拟网络之间的混合配置。S2S 是通过 IPsec/IKE(IKEv1 或 IKEv2)VPN 隧道建立的连接,这意味着要部署此类型的连接,您需要在本地数据中心部署 VPN 设备,并为其分配一个公共 IP 地址。下图展示了 S2S VPN 连接架构:

站点到站点 VPN 连接示例

图 5.16:站点到站点 VPN

如果您的组织有多个本地位置,您可以通过基于路由的 VPN 实现多站点连接方法,将多个分支连接到同一虚拟网络。请记住,虚拟网络只能有一个 VPN 网关;所有通过同一 VPN 网关的连接将共享可用带宽:

多站点 VPN 连接示例

图 5.17:多站点 VPN

此外,您可以配置网络到网络的连接,并将其与如图 5.17所示的多站点配置结合使用。您可以与同一订阅、不同订阅、不同区域和不同部署模型中的多个虚拟网络建立连接。

点对站点 VPN

如果您希望远程用户访问 Azure 中的资源,可以利用 P2S VPN 网关连接。在此部署模式下,您无需在本地部署 VPN 设备;连接直接从客户端设备建立,如图 5.18所示:

点对站 VPN 连接示例

图 5.18:点对站 VPN

如果您希望让少量远程用户通过虚拟网络访问云中的资源,这种类型的连接具有成本效益。

ExpressRoute

在行业中常常听到这样一句话,ExpressRoute 就是您通往 Azure 的以太网电缆。它通过一个名为连接提供商的合作伙伴提供私有连接,连接您本地位置与 Azure。ExpressRoute 提供第三层连接,支持任何对任何网络连接、点对点以太网连接或虚拟跨连接。

根据您组织的需求和连接提供商,您可以选择如何创建到云的连接。有四种创建连接的方式:

  • CloudExchange 联合定位:如果您的数据中心与云交换设施位于同一地点,您可以通过服务提供商的以太网交换利用第二层跨连接或托管的第三层跨连接,连接您的基础设施与 Azure。

  • 点对点以太网连接:在此模型中,您可以通过提供第二层连接或托管第三层连接的以太网服务商将您的数据中心连接到 Azure,并通过点对点以太网链路构建您的私有连接。

  • 任意对任意(IPVPN)连接:你可以启用 Azure 与分支机构或数据中心之间的 WAN 连接,通常以托管的第三层连接形式提供。

  • ExpressRoute Direct:你可以接入微软的全球网络,并实现规模化的 Active/Active 连接,满足不同的需求,例如大规模数据导入到 Azure 服务或连接隔离。

图 5.19所示,ExpressRoute 电路提供从 50 Mbps 到 10 Gbps 的宽带,并且可以在不中断的情况下动态扩展:

ExpressRoute 连接模型

图 5.19:ExpressRoute

此外,可以同时拥有 ExpressRoute 电路和 S2S 连接。尽管它们可以共存,但这需要为同一个虚拟网络配置两个虚拟网络网关,一个使用 VPN 类型的网关,另一个使用 ExpressRoute 类型的网关。

在建立了与 Azure 的连接后,我们来看看如何保护和管理流量到你的云应用程序。

保护和管理流量到你的工作负载

安全性是微软、合作伙伴和客户之间的共同责任。Azure 提供安全控制和服务来保护身份、网络和数据资源。

在上一节Azure Active Directory中,我们回顾了如何利用 Azure AD 提供的身份和管理功能,确保对数据和资源的安全访问。保护基础设施和远程访问的工作负载是日常工作中的一项关键任务,微软提供了企业级解决方案来保障应用程序的流量,无论它们是通过 Azure 提供,还是来自本地环境。

Azure 可以通过使用网络安全控制来保护你的云基础设施,管理流量,配置访问规则,将连接扩展到本地资源,并保护你的虚拟网络。

你可以用来保护 Web 应用程序的主要服务之一是Azure Web 应用防火墙WAF),如图 5.20所示:

Azure WAF 概述

图 5.20:Azure WAF

Azure WAF 符合各种合规标准,包括但不限于 PCI-DSS、HIPAA、SOC、ISO 和 CDSA。完整的合规服务列表可以在此找到:docs.microsoft.com/azure/compliance/

带有 WAF 的应用程序网关

您的组织可能在云端或本地运行应用程序,远程用户尝试访问这些工作负载。应用网关是一个关键的平台即服务PaaS)组件,可以帮助实现这一目标。它是一个轻量级的应用交付控制器ADC),提供 SSL 终止、会话亲和性和基于内容的路由支持。这一系列功能使得应用网关成为一个灵活的服务。它可以与 Azure WAF 或 Azure Front Door 一起部署,以提高扩展能力,并保护您的应用程序,无论是在本地还是在云中,免受 OWASP 和其他漏洞的影响,而无需额外配置。

应用网关和 Azure WAF 都是 PaaS 托管服务,因此您可以节省时间,并在 Azure 负责底层基础设施的同时为您的应用程序提供正确的保护,如下图所示:

Azure 应用网关与 Azure WAF 模型

图 5.21:Azure 应用网关和 Azure WAF

Azure WAF 的主要好处包括:

  • 预配置的防护,防止 OWASP 十大攻击。

  • 机器人保护。

  • 自定义规则引擎(地理过滤、IP 限制、HTTP 参数过滤和大小限制)。

  • 用于检测和警报的日志和指标。

另一个常见的用例是与 Azure Front Door 的集成,Azure Front Door 提供全球应用加速和交付服务,除了为 Web 应用提供区域负载均衡外,还能加速传输。

使用 Azure Front Door 配合 Azure WAF 的一个关键好处是能够在攻击到达虚拟网络之前,检测并防止针对您 Web 应用程序的攻击。您可以在恶意攻击接近源头时将其阻止,防止它们进入虚拟网络,并创建速率限制或请求阈值,以保护您的应用免受洪水攻击。我们可以在图 5.22中看到它是如何工作的:

Azure Front Door 与 Azure WAF 概述

图 5.22:Azure Front Door 和 Azure WAF

这可以让您发布和保护您的 Web 应用程序,无论它们是托管在本地还是云中。

Azure 防火墙

组织可以用于保护虚拟网络资源的下一个边界安全控制是 Azure 防火墙。Azure 防火墙允许您创建、强制执行并记录应用程序和网络连接策略,覆盖 OSI 模型的第 3 层到第 7 层,并跨订阅和虚拟网络进行管理。

在考虑远程办公时,Azure 防火墙至关重要,它能为你在 Azure 上部署的 Windows 虚拟桌面基础设施提供保护,同时提供威胁情报,确保远程用户能够正确访问其虚拟桌面。建议在使用 Windows 虚拟桌面时,使用完全限定域名FQDNs)来简化访问。Azure 防火墙通过启用出站流量过滤功能,为 Windows 虚拟桌面提供简化集成,如图 5.23所示:

Azure 防火墙概述

图 5.23:Azure 防火墙

需要注意的是,Azure 防火墙是一个完全基于云的托管服务,Azure 会负责底层基础设施。

Azure 负载均衡器与跨区域负载均衡

很多时候,当应用流量增加,组织会面临基于云的工作负载挑战,并希望提供更好的客户体验。Azure 提供了内置的负载均衡功能,供云资源使用,这样你就可以创建高可用且可扩展的 Web 应用程序。

实现高可用性的主要组件是 Azure 负载均衡器,如图 5.24所示。它在 OSI 模型的第 4 层运行,并代表客户端的单一接入点。Azure 负载均衡器经过优化,能将流量分配到后端池实例,适用于云工作负载。

Azure 负载均衡器可以面向公网,负载均衡来自互联网的流量到你在 Azure 上的应用程序,或者它可以面向内网,仅在前端需要私有 IP 地址:

Azure 负载均衡器架构

图 5.24:Azure 负载均衡器

你将发现 Azure 负载均衡器有两种主要配置文件:Basic 和 Standard。以前,你只能将与虚拟机或虚拟机规模集相关联的网络接口添加到负载均衡器的后端池中。然而,由于最近的改进,允许跨 IP 地址进行负载均衡,现在你可以通过 Standard 配置文件,使用私有 IPv4 或 IPv6 地址对 Azure 中的资源进行负载均衡,从而扩展了容器负载均衡的能力。

过去,Azure 负载均衡器只能在特定区域内进行负载均衡。现在,你可以使用 Azure 负载均衡器进行跨区域负载均衡,分配流入流量,并启用地理冗余高可用性场景:

跨区域负载均衡器概述

图 5.25:跨区域负载均衡器

在现有的负载均衡器解决方案上构建跨区域功能是可能的,一个重要的好处是能够使用静态前端 IP 配置。

Azure Bastion 和即时(JIT)访问

有时,组织需要提供远程访问 Azure 中的资源,并希望提供一种安全的方式连接这些资源,而不需要 VPN 连接或为虚拟机分配公共 IP。

Azure Bastion 通过提供 RDP/SSH 连接,让你以安全的方式管理资源,允许你通过虚拟网络中的虚拟机,而无需直接使用公共 IP。

Azure Bastion 概览

图 5.26:Azure Bastion

Azure Bastion 是一种托管解决方案,后端是一个部署在你的虚拟网络中的虚拟机规模集,远程用户可以通过 RDP/SSH 连接,而无需暴露公共 IP。这意味着它还具备按需扩展的能力,取决于并发会话的数量。

除了保护和连接功能,Azure 安全中心还可以用于实施 JIT 访问,使你能够限制虚拟机的入站流量,减少遭受攻击的风险,并轻松审核对虚拟机的访问。

JIT 访问还可以与 Azure 防火墙一起使用,通过创建策略来减少对网络流量攻击的暴露,定义你想保护的端口,例如,设置端口应保持打开的时间,并过滤应该访问虚拟机的 IP。

现在我们已经讨论了能够帮助你的组织更好地保护和管理应用程序流量的主要服务,让我们来看看最后一块拼图:通过 Azure Windows 虚拟桌面基础设施启用远程工作。

启用远程工作与 Windows 虚拟桌面

在过去几个月里,我们都经历了如何与组织内的同事、合作伙伴和客户进行协作的改变。各类企业都投入了采用可以支持远程工作的协作工具,并为员工提供最佳的体验,使他们在业务中断期间保持联系并提高生产力。

虚拟桌面基础设施VDI)是一种虚拟化解决方案,为远程用户提供类似于在本地计算机上工作的桌面环境。Windows 虚拟桌面使远程工作成为可能,同时提供最佳的体验来维护基础设施,甚至可以在几分钟内构建完成。

Windows 虚拟桌面支持多种操作系统,包括 Windows 10 企业版、Windows 10 企业版多会话版、Windows 7 企业版,以及 Windows Server 2012 R2、2016 和 2019。根据组织的需求,你可以选择特定的许可模式,如 Microsoft 365 E3、E5、A3、A5 或 F3;Business Premium;Windows E3、E5、A3 或 A5;或 RDS 客户端访问许可证。图 5.27 展示了 Windows 虚拟桌面的工作原理:

Windows 虚拟桌面架构

图 5.27:Windows 虚拟桌面架构

  • 左侧的终端通常位于本地网络中,可以通过 S2S 或 Express Route 扩展连接,而 Azure AD Connect 可以将本地 AD DS 与 Azure AD 集成。

  • 你的组织可以管理 AD DS、Azure AD、Azure 订阅、虚拟网络、存储以及 Windows 虚拟桌面主机池和工作区。

  • 微软管理 Windows 虚拟桌面的控制平面,负责处理 Web 访问、网关、代理、诊断以及扩展性组件(如 REST API)。

为了让你的组织能够使用 Windows 虚拟桌面,你需要 Azure AD,一个与 Azure AD 同步的 Windows Server Active Directory 实例,以及一个 Azure 订阅。Windows 虚拟桌面的虚拟机可以是标准的域加入或混合 AD 加入。

基于 ARM 的新体验使 Windows 虚拟桌面的管理变得更加轻松。它包括一个集成的新监控 UI,结合了日志分析和通过 Azure 门户的管理 UI。它还允许你使用 Azure PowerShell 模块来管理 Windows 虚拟桌面环境。

基于 ARM 的体验还提供了更好的管理员访问控制,因为它利用了 Azure 基于角色的访问控制RBAC)和内置的自定义角色。你还可以通过 Azure AD 用户组和单个用户来发布应用程序并管理访问权限。此外,现在你可以指定你希望用于存储的地理位置。

以下图表为你提供了 Windows 虚拟桌面架构的高级概述:

Windows 虚拟桌面架构的高级概述

图 5.28:Windows 虚拟桌面结构

通过 Azure 门户,你将获得无缝的体验来管理 Windows 虚拟桌面的部署,包括主机池、应用程序组、工作区和用户:

通过 Azure 门户管理 Windows 虚拟桌面

图 5.29:通过 Azure 门户管理 Windows 虚拟桌面

你可以使用 ARM 功能来配置 Windows 虚拟桌面。你需要注册 Microsoft.DesktopVirtualization 资源提供程序,然后根据需要创建主机池,包括指定虚拟机详细信息,并提供 Azure 虚拟网络的参数。完成这些操作后,你可以继续创建应用程序组,并将 Azure AD 用户或用户组添加到其中。最后,配置你的 Windows 虚拟桌面工作区,然后在客户端设备上安装 Windows 虚拟桌面客户端。

在 Microsoft Learn 上有一条学习路径,教你如何通过 Windows 虚拟桌面从 Azure 提供远程桌面和应用程序:docs.microsoft.com/learn/paths/m365-wvd/

另外,你还可以利用 ARM 模板来自动化部署 Windows 虚拟桌面环境的过程:github.com/Azure/RDS-Templates/

你可以在 Windows 虚拟桌面中管理的组件

以下表格比较了 Microsoft 在 Windows 虚拟桌面中管理的资源与你可以管理的资源:

资源管理的责任

表 5.2:资源管理的责任

以下是由 Microsoft 管理的组件:

  • Web 访问:通过该服务,用户可以使用兼容 HTML5 的 web 浏览器访问其桌面。

  • 网关:该服务使远程用户能够从任何能够执行 Windows 虚拟桌面客户端的设备连接到 Windows 虚拟桌面应用和桌面。

  • 连接代理:该服务管理用户连接并提供负载均衡功能。

  • 诊断:这是一个基于事件的聚合器,用于识别组件可能出现的故障。

  • 扩展性组件:这包括可以为 Windows 虚拟桌面启用的第三方工具和额外的扩展。

这些是你管理的组件:

  • Azure 虚拟网络:你可以根据组织的政策配置网络拓扑,以提供对桌面和应用程序的访问。

  • Azure AD:虽然这是使用 Windows 虚拟桌面的前提条件,但你可以管理 Azure AD 集成和安全功能,以确保你的环境符合合规要求。

  • AD DS:这是启用 Windows 虚拟桌面的前提条件,包括与 Azure AD 的同步。你还可以使用 Azure AD Connect 将 AD DS 与 Azure AD 关联。

  • Windows 虚拟桌面会话主机:你可以运行各种操作系统,包括 Windows 10 企业版;Windows 10 企业版多会话版;Windows 7 企业版;Windows Server 2012 R2、2016 和 2019;以及自定义 Windows 镜像。

  • Windows 虚拟桌面工作区:这是一个用于管理和发布主机池资源的工作区。

确定 Windows 虚拟桌面环境的规模

过去,由于只有一些基本的指导,确定 Windows 虚拟桌面环境的规模是一个挑战。现在,你可以使用 Windows 虚拟桌面体验评估器,这是一款可以帮助你根据组织需求找到合适规模的工具。

Windows 虚拟桌面体验评估器可以通过 azure.microsoft.com/services/virtual-desktop/assessment/ 获取。

初始时,你将看到一个表格,展示了从当前位置出发的最低往返时间区域,并提供了虚拟机和网络服务的大小参考,这些服务对于你的实现至关重要:

不同 Azure 区域的往返时间

表 5.3:不同 Azure 区域的往返时间

根据您当前的位置,您可以选择一个首选区域,以提供更好的用户体验。请记住,还有一些其他组件可能会影响您的部署,如网络条件、终端设备和虚拟机的配置。

网络指南

正如我们已经讨论过的,网络组件对于支持远程工作至关重要。带宽是您在规划环境时需要关注的关键度量标准之一,因为它会影响用户体验。下表展示了基于不同类型工作负载的一些建议,您可以在docs.microsoft.com/windows-server/remote/remote-desktop-services/network-guidance找到:

不同工作负载类型的推荐带宽

表 5.4:不同工作负载类型的推荐带宽

显示分辨率是与带宽一起影响用户体验的另一个因素。下表展示了为获得最佳用户体验推荐的带宽:

30fps 下不同显示分辨率的推荐带宽

表 5.5:30 fps 下不同显示分辨率的推荐带宽

关于 Windows 虚拟桌面环境中的虚拟机,Microsoft 提供了不同工作负载类型的示例,帮助您正确配置所需的虚拟机大小:

不同工作负载类型的示例

表 5.6:不同工作负载类型的示例

此外,您应该考虑的一个度量标准是同时有多少用户访问相同的应用程序。也就是说,您可以根据组织的需求考虑多会话或单会话的建议。

Microsoft 根据每个虚拟 CPUvCPU)的最大建议用户数量提供虚拟机大小,并提供与最小虚拟机配置匹配的 Azure 实例示例:

多会话建议

表 5.7:多会话建议

一般建议是,对于关键工作负载,使用高级 SSD 磁盘,并且如果计划在虚拟机上运行图形密集型程序,可以考虑使用 GPU。

使用 Azure 文件和 NetApp 文件管理用户配置文件

虽然 Azure 提供了多种存储解决方案,但 FSLogix 配置文件容器是 Windows 虚拟桌面服务推荐的用户配置文件解决方案之一,因为它们被设计用于在无状态的远程计算环境中漫游配置文件。

当用户执行登录操作时,一个容器会动态地附加到计算环境中。您还可以使用 Azure NetApp Files 创建配置文件容器,以快速为 Windows 虚拟桌面配置 SMB 卷。

以下表格比较了适用于 Windows 虚拟桌面 FSLogix 配置文件容器用户配置文件的不同解决方案:

不同 WVDFSLogix 配置文件容器用户配置文件的比较

表格 5.8:Windows 虚拟桌面 FSLogix 配置文件容器用户配置文件

若要查找 Azure NetApp Files 和其他产品的区域可用性详细信息,请访问 azure.microsoft.com/global-infrastructure/services/

以下表格比较了 Azure 存储为 Windows 虚拟桌面提供的存储解决方案,这些解决方案在 Azure 上支持 FSLogix 配置文件容器用户配置文件:

在 Azure 上支持 FSLogix 配置文件容器用户配置文件的 Windows 虚拟桌面存储解决方案

表格 5.9:Azure 存储为 Windows 虚拟桌面提供的存储解决方案

以下是一些相关链接,供进一步了解:

  1. 微软合规性产品:docs.microsoft.com/compliance/regulatory/offering-home

  2. Azure 文件与 AD 集成:docs.microsoft.com/azure/storage/files/storage-files-active-directory-overview

  3. Azure NetApp Files 与 AD 集成:docs.microsoft.com/azure/azure-netapp-files/azure-netapp-files-faqs#does-azure-netapp-files-support-azure-active-directory

Windows 虚拟桌面的 Azure 监视器

您需要尽量减少 Windows 虚拟桌面环境中的故障风险。Azure 提供与 Azure 监视器的原生集成,可以通过单一仪表板快速识别问题。

您可以查看以下活动日志:

  • 管理活动

  • 连接

  • 主机注册

  • 错误

  • 检查点

为了监控您的 Windows 虚拟桌面环境,您需要通过 Azure 门户或 PowerShell 创建一个 Log Analytics 工作区,然后将虚拟机连接到 Azure 监视器。

一旦您将 Windows 虚拟桌面引入 Log Analytics,您将能够使用 Kusto 查询语言KQL)运行自定义查询,以分析您的 Windows 虚拟桌面环境的健康状况。一个简单的用例是,如果需要按用户查找会话持续时间,如以下代码所示:

let Events = WVDConnections | where UserName == "userupn" ;
Events
| where State == "Connected"
| project CorrelationId , UserName, ResourceAlias , StartTime=TimeGenerated
| join (Events
| where State == "Completed"
| project EndTime=TimeGenerated, CorrelationId)
on CorrelationId
| project Duration = EndTime - StartTime, ResourceAlias
| sort by Duration asc

在此代码中,我们使用了一个 let 语句来定义名为 WVDConnectionsEvent 实例,并对表格进行筛选,提取与 connected 状态的用户匹配的行。然后,作为良好的实践,我们使用 project 来选择我们需要的列,再执行 join。我们先提取第一个 EventType 的事件,再提取第二个 EventType 的事件,然后根据 CorrelationId 将这两组数据连接起来。

在此之后,我们重命名时间戳列并按升序排序结果。

你可以使用 Azure Monitor 工作簿创建 Windows 虚拟桌面性能的自定义可视化。你可以在这里找到一个 Windows 虚拟桌面的工作簿示例:github.com/wvdcommunity/AzureMonitor/blob/master/WVD-ARM-monitoring-workbook.json

Windows 虚拟桌面合作伙伴集成

微软合作伙伴是完全启用组织远程工作能力的关键组件;Windows 虚拟桌面与 Citrix 和 VMware 之间有合作伙伴集成。

Citrix 将其虚拟应用和桌面服务扩展到 Azure,可以作为托管服务消费,并通过 Azure 市场提供。这是新技术和新权益的结合。它支持多会话 Windows 10 体验,如果你拥有合适的 RDS 许可证,还可以使用 Windows Server。它还支持持久性和非持久性的单会话或多会话体验。

你可以在这里阅读更多关于 Azure 虚拟应用和桌面的信息:azure.microsoft.com/services/virtual-desktop/citrix-virtual-apps-desktops-for-azure/

VMware 是认证的 Windows 虚拟桌面提供商,通过其 Horizon 控制平面简化了混合 Windows 虚拟桌面环境的部署,使本地和云端部署都能通过单一管理界面进行管理。

客户可以利用 Windows 10 多会话功能,并且该平台通过 Horizon Universal License 提供,包含在任何受支持平台上部署 VMware Horizon 的能力:

总结

在这一章中,我们回顾了组织在尝试启用远程工作时面临的常见基础设施挑战,以及 Azure AD 如何帮助你的组织保护员工的身份和资源。我们还学习了如何使用 Azure 网络组件来实现连接性,并确保组织的工作负载在本地和云端的安全访问。最后,我们回顾了如何通过 Windows Virtual Desktop 提供更好的终端用户体验,并查看了关于环境规模和配置的指导。

下一章将为你提供安全基准,并推荐如何使用可用的安全服务,以便你可以将标准的安全控制框架应用到你的 Azure 部署中,并在所有资源上强制执行治理。

本章将帮助您了解 Azure 安全基础,并引导您通过可用的安全服务。我们将回顾如何使用微软服务在您的组织中实施零信任策略,以及您可以利用的解决方案来保护您的工作负载并评估和提升您的安全姿态。本章内容包括:

  • 启用远程工作人员的安全

  • 使用Azure 安全中心获得对整个基础设施的可见性

  • 使用Azure Defender为您的混合云和多云环境实现高级威胁防护

  • 保护您的网络

  • 使用Azure Sentinel现代化安全操作

  • 统一的 SecOps 体验

在深入了解可以用来保护环境的服务之前,了解如何有效实施安全实践以保护您的环境非常重要,无论它们是在本地还是在云端。那么,让我们先来探讨一下当今面临的主要挑战,以及如何为您的组织制定有效的安全策略。

第六章:启用远程工作人员的安全

COVID-19 不仅影响了不同规模和行业的企业,也助长了网络犯罪。与这一大流行相关的恐惧心理导致不同技能和动机的网络犯罪分子通过模仿受信任的来源和国家卫生组织,使用不同的战术和技术进行资本化。

启用远程工作一直是一个挑战,尤其是对于那些习惯于仅在公司网络内提供对本地应用程序访问的组织。安全是微软和其客户共同的责任;在今天的世界里,组织的安全漏洞可能意味着数百万美元的损失。

鉴于疫情,所有规模的组织都不得不采用新的系统和控制措施,以确保对本地和云资源的访问安全。

安全操作卓越

由于许多员工可能继续远程工作,因此需要启用混合工作环境。采用零信任原则可以帮助组织确保员工能够访问所需的资源,无论这些资源是在私有数据中心还是云端。

零信任方法涉及对所有企业服务、应用程序和网络连接进行持续验证和监控。简单来说,就是“永不信任,始终验证”。

通过采用零信任安全模型,组织可以摆脱使用传统虚拟专用网络(VPN)来访问遗留应用程序,转而将其迁移到 Microsoft Azure。

云应用程序可以通过互联网访问,对于那些无法完全迁移到 Azure 的应用程序,可以通过 Azure Active DirectoryAzure AD)应用代理进行发布,正如我们在 第五章使用 Azure AD 和 WVD 实现安全的远程工作 中所述。

员工将能够通过 Windows 虚拟桌面WVD)以更安全的方式访问他们日常使用的应用程序,并限制对其他资源的访问。该方法使您的组织能够调整云优先的安全策略,确保员工在需要时能够访问所需的应用程序,并且拥有正确的访问权限。

微软提供了一个安全基线,通过身份驱动的安全解决方案保护人员、设备、基础设施和数据免受漏洞的威胁。因此,微软强化了产品和服务,以快速高效地识别和解决漏洞。为了确保您能够在安全策略中采用最佳实践,微软提供了两个核心平台:

  • 安全工程门户

  • Microsoft 安全响应中心

微软通过运营管理和威胁缓解实践不断改善对服务和数据的保护。您可以使用安全工程门户了解微软用于保护应用程序和服务的安全实践。

另一方面,您可以使用 Microsoft 安全响应中心MSRC)来保持系统的保护并管理安全风险。在 MSRC 门户上,您将看到最新的安全更新、产品家族的详细信息、漏洞的严重性和影响,并可以下载适用于您系统的安全更新。

网络防御运营中心

Microsoft 网络防御运营中心 执行入侵检测并响应安全漏洞和攻击,帮助您更好地保护远程员工的安全。它保护云基础设施以及客户使用的服务、产品和设备,并且超越传统的安全边界,保护微软的内部资源。

Microsoft 网络防御运营中心 汇集了公司的安全响应专家,帮助全球范围内保护、检测和响应对微软 IT 基础设施和资产的安全威胁,全天候 24x7。

微软的网络安全态势致力于保护、检测和响应网络安全威胁。基于以下三个支柱,微软可以提供一个有用的框架来制定安全策略和能力。

保护

微软致力于保护客户和员工使用的计算资源,以确保云基础设施和服务的恢复能力。微软的保护策略依赖于九个主要类别:

  • 对物理环境进行监控和控制,如对数据中心的物理访问、筛查以及在设施外围、楼内和数据中心楼层的访问批准。

  • 使用软件定义网络组件保护云基础设施免受入侵和攻击,如分布式拒绝服务DDoS)攻击。

  • 通过多因素身份验证的身份和管理控制,确保关键资源和数据得到保护。

  • 使用适当管理JEA)和及时JIT)权限来确保正确的资源访问权限。

  • 配置管理和适当的系统维护,通过反恶意软件软件和系统更新来实现。

  • 识别并开发部署在微软基础设施中的恶意软件特征,以便进行高级检测和防御。

  • 通过微软安全开发生命周期SDL)加强所有应用程序、在线服务和产品的安全性。

  • 通过限制服务来最小化攻击面。

  • 采取适当措施保护机密数据,启用数据传输和静态加密,并执行最小权限访问原则。

检测

尽管微软不断投资于这些保护层,但网络犯罪分子总是寻找利用漏洞的途径。没有完全保护的环境,因为系统可能失败,人员可能犯错。因此,微软已采纳假设已遭入侵的立场,确保能够快速检测到安全漏洞并采取适当措施。

微软的检测策略依赖于六大类:

  • 监控网络和物理环境。

  • 基于身份和行为分析突出异常活动。

  • 使用机器学习工具发现不规则行为。

  • 通过分析工具和流程识别异常活动。

  • 通过使用自动化的软件处理过程来提高效率。

  • 确定系统异常的修复流程和响应措施。

响应

加速分类、缓解和恢复是微软承诺通过自动响应系统提供相关和可操作信息的一个重要部分。主要目标是修补漏洞、减轻攻击并应对网络安全事件。

微软的响应策略依赖于以下六大类:

  • 通过自动化响应系统标记需要干预的事件。

  • 通过提供明确定义、文档化和可扩展的事件响应流程来实现快速响应,并使所有响应人员都能使用该流程。

  • 微软各团队的专业知识确保深入了解云数据中心中运行的平台、服务和应用程序,以应对各种事件。

  • 通过广泛的企业级搜索,跨云端和本地数据及系统来确定事件范围。

  • 通过深入的法医分析,更好地理解事件。

  • 通过安全软件工具和自动化实现快速响应时间和恢复。

组织可以从微软网络防御运营中心学习,采用最佳实践来确保其环境安全并提升安全姿态,同时使用微软智能安全联盟提供的解决方案和集成。

微软智能安全联盟

微软智能安全联盟MISA)是来自网络安全行业的独立软件供应商生态系统,其最终目标是通过共享专业知识和集成解决方案,提升组织的安全性,以更好地防御日益增长的威胁。

MISA 会员的好处包括:

  • 微软安全产品以扩展解决方案能力

  • 一种享受联合营销机会的市场战略

  • 客户连接

  • 访问产品团队以区分您的解决方案

MISA 提供构建应用程序、工作流以及与微软安全管理、威胁保护、信息保护和身份与访问管理解决方案的集成指导和资源,以便您可以构建连接的安全解决方案并支持跨产品场景的体验。

您可以通过以下网址找到 MISA 会员:www.microsoft.com/misapartnercatalog

在本节中,我们回顾了微软如何确保安全运营卓越,并介绍了公司应遵循的策略,以保护、检测和响应潜在的安全威胁。

为了提升您的安全姿态,重要的是要在您的环境中具备可见性,并能够使用机制来防范安全威胁。在下一节中,我们将介绍安全中心的关键功能以及如何使用该服务。

通过 Azure 安全中心获取您的整个基础设施的可见性

跨环境的统一可见性对于监控您的安全姿态、检测威胁并快速响应至关重要。安全中心可以提供监控您的环境并主动响应安全威胁的机制。

如果您导航到 Azure 门户并搜索 Security Center,您将能够看到您的订阅中的服务,如 图 6.1 所示:

Azure 安全中心概览

图 6.1:Azure 安全中心概览

安全中心 页面上,您可以查看订阅中资源的安全姿态概览,以及加强这些资源安全性的建议:

  1. 安全评分:Azure 安全中心云安全态势管理功能的核心是安全评分。这是对所有资源的安全建议当前状态的衡量标准。它通过计算健康资源与总资源的比例,并加权一些安全建议的重要性来得出。得分越高,识别出的风险水平越低。

  2. 合规性:提供您已应用于订阅的各种法规和行业标准的合规性水平的洞察。必须启用 Azure Defender 才能监控您的合规性评分。

  3. Azure Defender:这是安全中心集成的云工作负载保护平台。您可以从安全中心访问 Azure Defender,保护在服务器、SQL、存储、容器和物联网中运行的混合云和多云工作负载。Defender 是微软 扩展检测与响应XDR)解决方案的一部分。

  4. 防火墙管理器:将 Azure 防火墙管理器集成到 Azure 安全中心的主仪表板中,允许客户检查所有网络的防火墙覆盖状态,并集中管理 Azure 防火墙策略。

安全态势管理与多云

随着多个云服务提供商云服务的快速采用,组织能够简化运营、实现远程办公,并提高员工生产力。跨多个云平台使用云应用程序引入了新的风险和威胁。

云安全态势管理CSPM)是一个术语,用来描述安全解决方案应该包含的关键特性,以提供可见性和能力,帮助您了解环境并更好地保障它的安全,无论是在云端还是本地。

通过 Azure 安全评分,安全中心可以帮助您改善安全态势,降低资源被攻击的可能性。这不仅适用于 IaaS 或 PaaS,还适用于 SaaS。事实上,Azure 安全中心的总经济影响研究指出,Azure 安全中心可以将安全漏洞的风险降低 25%。

您可以通过以下网址阅读有关 TEI 研究的更多内容:query.prod.cms.rt.microsoft.com/cms/api/am/binary/RWxD0n

微软的云安全平台可以改善云基础设施的安全配置,并帮助您检测和保护 Azure、内部环境以及其他云中的环境。

已采纳多云策略的组织现在能够轻松改善其安全态势,因为 Microsoft 通过安全中心提供统一的基础设施安全管理系统,帮助加强云端和本地资源的安全态势,同时提供威胁保护和深入分析。通过安全中心,你可以持续评估资源的安全状态,包括运行在其他云和本地数据中心的资源。

安全中心为你提供了保护服务和强化网络所需的工具。你可以在 Azure 订阅中启用安全中心,并利用扩展的检测和响应功能,为在 Azure、本地和其他云环境中运行的工作负载提供威胁保护。

大多数迁移到 Azure 的组织通常会将一些具有传统安全控制的应用程序迁移到云端,以尝试保护这些工作负载。但实际上,云威胁与本地威胁不同。因此,安全中心解决了云原生工具的需求,能够识别资源中的潜在漏洞,并提供有关如何解决这些漏洞的建议。

保护混合云和多云环境有多种策略、战术和工具可供选择。以下是保护多云环境的四阶段建议策略:

保护多云环境的四阶段建议策略

图 6.2:保护你的多云环境的四个阶段

阶段 1:识别组织安全态势的状态

理解并评估资源的状态及其实际使用情况非常重要;为此,你可以使用 Cloud Discovery 分析通过网络传输的所有流量。识别异常的过程可以通过机器学习、异常检测引擎或主要关注发现和调查过程的自定义策略来完成。

阶段 2:检测工作负载中的可疑行为

建议使用云监控工具,这样你可以从警报中学习,调整活动检测以识别真实的安全入侵,并改进处理大量误报的过程。你可以遵循一些具体的建议,例如配置 IP 地址范围、调整监控使用情况和警报灵敏度,以及调整异常检测策略。

阶段 3:评估并修复配置错误和合规性状态

安全中心可以评估给定订阅中的所有资源,并为整个环境提供建议。当你选择特定的建议时,安全中心会将你重定向到该建议的详细信息页面,在那里你可以看到更多详细信息和如何修复已识别问题的说明。

对于多云方法,如果您的组织正在使用亚马逊网络服务AWS)或谷歌云平台GCP),您可以深入了解 AWS 的安全配置细节。当您将 AWS 连接到 Azure 安全中心时,您将能够在安全中心中看到 AWS 的建议,帮助您实现多云方法。

第 4 阶段:自动化保护和策略执行以保障云资源

本阶段的重点是通过执行控制和访问资源的策略,实时保护您的云资源免受数据泄漏。这将防止数据外泄和恶意文件上传到您的云平台。

可以创建会话策略,阻止上传标签错误的文件,并配置策略以强制正确创建标签。这样,您可以确保保存到云中的数据具有正确的访问权限。

Azure 安全中心架构

由于安全中心与 Azure 本地集成,您可以监控几乎所有属于您环境的资源,并在无需额外部署的情况下保护它们。如前所述,安全中心可以保护非 Azure 服务器,并通过安装安全中心代理来支持 Windows 和 Linux 服务器,如图 6.3所示:

Azure 安全中心与 Azure Sentinel 架构

图 6.3:Azure 安全中心与 Azure Sentinel 架构

该代理收集所有安全事件,然后在安全分析引擎中进行关联,为您提供基于定义的安全策略的定制建议。安全策略基于在 Azure 策略中创建的策略计划,可以用于定义工作负载的期望配置,以确保您遵守组织或任何特定法规的安全要求。

安全中心包含三种主要的安全策略:

  • 内置默认策略:这是在启用安全中心时自动分配的策略。它们是内置计划的一部分,您可以稍后进行自定义。

  • 自定义策略:如果您的环境未遵循您创建的策略,您可以使用自定义安全策略并添加自定义计划,以接收建议。您可以通过安全中心配置自定义计划,选择您希望添加自定义计划的订阅或管理组,并为其定义参数。

  • 合规性监管政策:您将能够看到一个合规性仪表板,显示您环境中所有评估的状态,以帮助改善您的合规性监管。

Azure 安全基准

安全是微软与您的组织及客户之间的共同努力。我们必须确保我们的工作负载在本地或云端都能保持安全。为了帮助您提高在云中运行的工作负载、数据和服务的安全性,微软为 Azure 提供了安全基准,专注于云中心的控制领域,并通过Azure 安全基准ASB)应用指令性指导和最佳实践来加强安全。

ASB 主要专注于云中心的控制领域。通过这种方式,您可以遵循包括云采纳框架、Azure 良好架构框架和微软安全最佳实践在内的建议和指导。

理解 Azure 安全基准中的背景和术语非常重要,因此我们需要强调一些术语:

  • 控制:这是一个描述功能或活动的术语,非特定于某项技术,必须解决的内容。例如,数据保护是一个安全控制,包含应采取的具体行动,以确保您的数据得到保护。

  • 基准:这包含特定技术的安全建议,并可以按所属控制分类。例如,ASB 包含针对 Azure 的特定安全建议。

  • 基准:这是对 Azure 服务实施安全基准的过程。例如,一个组织可以按照 Azure SQL 安全基准启用 Azure SQL 的安全功能。

如果您的组织是 Azure 新用户,并希望获得建议来保护部署、改善现有环境的安全态势,或满足高度监管客户的合规要求,ASB 是理想的起点。它包含工具、跟踪和安全控制,并与知名的安全基准一致,例如互联网安全中心CIS)控制版本 7.1 和美国国家标准与技术研究院NIST)SP800-53。

ASB 可以通过一系列安全建议来帮助您保护在 Azure 中使用的服务,这些建议包括:

  • 安全控制:这些是您可以在 Azure 租户和服务中应用的建议。

  • 服务基准:这些可以应用于 Azure 服务,以便获取关于特定服务安全配置的建议。

要实施 ASB,您可以从规划实施并验证适合您组织需求的企业控制和服务特定基准开始。接下来,使用安全中心的合规性仪表板监控合规性。最后,通过Azure 蓝图Azure 策略建立保护措施以强制执行合规性。ASB 包含以下控制领域:

  • 网络安全

  • 身份管理

  • 特权访问

  • 数据保护

  • 资产管理

  • 日志记录与威胁检测

  • 事件响应

  • 姿态和漏洞管理

  • 端点安全

  • 备份与恢复

  • 治理与策略

ASB 是 Azure 安全中心的默认安全策略,因此您可以在 Azure 中扩展安全建议的丰富性。结果,Azure 安全评分将反映出更广泛的建议集,并覆盖更广泛的 Azure 资源。

此外,ASB 在合规性仪表板中的完整控制集布局现在对所有 Azure 安全中心客户开放,包括 Azure 安全中心免费版以及现有的 Azure Defender 客户。客户可以在查看详细的安全评分影响时,在合规性视图中查看与基准控制的合规性。通过使用安全评分指标优先修复安全建议,客户可以在实现更高安全评分的同时,达到合规性目标。

您可以在以下 GitHub 仓库中查看完整的安全中心安全基准映射文件的最新更新:github.com/MicrosoftDocs/SecurityBenchmarks/

通过 Azure Defender 实现混合云和多云环境的高级威胁保护

随着过去几个月居家工作的人员数量急剧增加,组织需要确保员工能够通过多种设备访问公司资源的需求大大增加。因此,调整安全策略以支持远程工作并保持数据安全变得至关重要。如前一节所述,安全中心可以改善您的云安全姿态管理CSPM)并提供云工作负载保护CWP)能力。

您可以在任何给定的订阅中免费使用安全中心,其中包括检测您 Azure 资源中的安全配置错误、通过安全评分来改善您的混合云姿态,并启用 Azure Defender 为您的 Azure 混合工作负载提供高级保护。

Azure Defender 集成到与安全中心相同的云原生服务中,并提供额外的安全功能,如安全警报和高级威胁保护。

Azure Defender 原生支持 Azure 服务,如虚拟机、SQL 数据库、存储、容器、Web 应用程序、网络以及托管在本地或其他云平台(如 AWS 和 GCP)上的非 Azure 服务器。

为了扩展在其他云或本地运行的 SQL 数据库和服务器的混合云保护,建议您使用 Azure Arc 和 Azure Defender。您可以在以下网站查看资源覆盖范围和定价的详细信息:azure.microsoft.com/pricing/details/azure-defender/

Azure Defender 仪表板

如果你进入 Azure 门户并查找 安全中心,在 安全中心 中,你会找到 Azure Defender 仪表板,如 图 6.4 所示:

Azure 安全 Defender 仪表板概览

图 6.4:Azure 安全 Defender 仪表板

Azure Defender 仪表板将为你提供资源的整体覆盖情况、安全警报、先进的保护措施,以及对你最常受攻击的资源的洞察,并附带虚拟机的漏洞警报:

Azure Defender 仪表板

图 6.5:Azure Defender 仪表板

让我们来看一下 Azure Defender 在服务器、SQL、存储和容器注册表方面能做什么。

Azure Defender for 服务器

Azure Defender 与 Azure Monitor 集成,用于保护你的基于 Windows 的机器。当安全中心展示警报和修复建议时,Azure Defender 会从机器中收集审计记录,包括通过 auditd 收集的 Linux 机器的记录,auditd 是一个存在于内核中的常见 Linux 审计框架。

你的组织可以通过使用 Azure Defender for 服务器获益,从多个方面提供威胁检测和防护功能,具体包括以下内容:

  • 与 Microsoft Defender for Endpoint 集成,因此当检测到威胁时,会触发警报,并显示在安全中心中。

  • 使用 Qualys 漏洞扫描器,我们稍后会详细讨论。

  • JIT 访问可以用于锁定进入虚拟机的流量,从而减少受到攻击的暴露面。

  • 变更监控或文件完整性监控,可以帮助你检查操作系统、应用程序的文件和注册表,以及可能表明攻击的文件大小、访问控制列表和内容哈希的变化。

  • 你可以使用自适应应用程序控制,作为一个智能化、自动化的解决方案,创建一个允许列表,列出可以在机器上运行的应用程序,并在发现有未定义为安全的应用程序运行时,获取安全警报。

  • 自适应网络硬化可以通过 网络安全组NSG)硬化帮助你改善安全态势。

  • 安全中心可以评估你的容器,并将其配置与 互联网安全中心CIS)的 Docker 基准进行比较。

  • 你可以使用 无文件攻击检测,并获得带有描述和元数据的详细安全警报。

  • Linux auditd 警报和日志分析集成可以用来收集丰富的记录,这些记录可以汇总成事件。

Azure Defender for SQL

Azure Defender for SQL 可以用于保护你的工作负载免受潜在的 SQL 注入攻击、异常数据库访问和查询模式以及可疑活动的威胁。它可以用于 IaaS 和 PaaS 服务。简而言之,它支持以下两个范围:

  • SQL 数据库服务器:包括 Azure SQL 数据库、Azure SQL 托管实例和 Azure Synapse 中的专用 SQL 池。

  • 机器上的 SQL 服务器:这为基于 Azure 的 SQL 服务器提供扩展保护,同时也适用于其他云端和本地环境,例如 Azure 虚拟机上的 SQL 服务器、在 Windows 机器上运行的本地 SQL 服务器以及启用 Azure Arc 的 SQL 服务器。

Azure 存储防御

对于远程工作人员访问云中具有上传文件功能的应用程序,我们需要确保能够判断上传的文件是否可疑。通过 Azure 存储防御,我们可以使用哈希信誉分析,并在发现任何可疑活动、异常行为或潜在的恶意软件上传时触发警报。

Azure 存储防御会显示警报,并且可以通过电子邮件通知存储的所有者,要求批准删除这些文件。

Azure 容器注册表防御

使用 Azure 容器注册表,你可以在托管的私有 Docker 注册表服务中构建、存储和管理容器镜像和工件。

你可以通过 Azure Defender 扫描容器镜像中的漏洞,并在安全中心的安全推荐列表中查看按严重性分类的发现。

镜像可以在三个不同阶段进行扫描:推送时、最近拉取的镜像时和导入时。这些镜像从注册表中拉取后,会在与 Qualys 扫描器隔离的沙箱中运行。然后,安全中心将呈现发现的结果。

Qualys 漏洞扫描器

Azure Defender 包含三个 Qualys 扫描器:一个用于机器,一个用于容器注册表,另一个用于 SQL。Qualys 扫描器,如图 6.6所示,已集成到安全中心,并通过安装在实际资源上的扩展监控你的机器。然后,Qualys 的云服务执行漏洞评估并将结果发送到安全中心:

Azure 安全中心漏洞扫描器

图 6.6:Azure 安全中心漏洞扫描器

漏洞扫描器的工作原理如下:

  1. 一旦为你的订阅启用 Azure Defender,你可以使用推荐 应在虚拟机上启用漏洞评估 来部署集成的漏洞扫描器扩展。

  2. 扩展安装后,代理会收集必要的安全信息,包括操作系统版本、开放端口、已安装的软件、环境变量和与文件相关的元数据。每 4 小时进行一次扫描,所有数据都会发送到 Qualys 云服务进行分析。

  3. Qualys 分析信息并按机器构建发现。这些发现会被发送到安全中心。

  4. 然后,你可以从安全中心的推荐页面查看机器的漏洞。

通过将非 Azure 机器连接到安全中心并通过 Azure Arc 进行扩展部署,可以扫描这些机器。对于大规模部署,您可以使用Azure 资源管理器ARM)修复脚本、PowerShell、Azure Logic Apps 或 REST API。

警报

由于安全中心可用于保护您在 Azure、其他云平台和本地部署的资源,它可以生成多种类型的警报,这些警报是通过 Azure Defender 的高级检测触发的。

如果在任何资源上检测到威胁,将生成这些安全警报。安全中心为您提供一个单一视图,显示包含事件的攻击活动。安全事件是相关警报的集合。

您将能够检查安全警报并查看更多相关细节,如图 6.7所示:

检查安全警报并在安全警报窗口中查看详细信息

图 6.7:安全警报详细信息

随着环境的不断增长,您可能会在安全中心看到更多的警报,您将需要更好地控制这些警报并根据优先级进行处理。安全中心会根据四个类别为这些安全警报分配严重性级别:

  • 信息性:如果您深入到由多个警报组成的安全事件中,您将看到这些类型的警报。

  • :这些类型的警报可能表示一个已被阻止的攻击或一个低影响的误报。

  • 中等:这些警报表明由于可疑活动,某个资源可能已被攻破。例如,来自异常位置的登录。

  • :高风险警报表示您的资源很可能已被攻破,您应立即采取行动。

安全中心允许您以不同方式导出警报。您可以在警报仪表板上下载 CSV 报告,配置持续导出,或使用 SIEM 连接器(如 Azure Sentinel)进行安全警报流式传输。

虽然 Azure Defender 可以帮助您保护和修复潜在漏洞,但同样重要的是在配置对您的工作负载至关重要的资源时,实施最佳实践,例如网络资源。

确保网络安全的最佳实践

在本章的前一节中,安全操作卓越性,我们回顾了零信任原则。这一原则假设攻击是不可避免的,因此我们必须确保设置合适的控制措施来验证每一个请求。身份管理在这一过程中起着至关重要的作用。

在零信任模型中,确保网络安全的三个主要目标是:

  • 提前准备应对攻击

  • 减少攻击面和损害程度

  • 加强您的云端基础设施,包括您环境中的资源和配置,以减少被攻破的可能性。

如果贵组织正在启用远程工作并实施端到端的 Zero Trust 框架,则有一些最佳实践需要遵循,以实现这些目标:

  • 网络分段

  • 威胁保护

  • 加密

让我们更详细地了解一下它们。

网络分段

保护企业网络是首要任务,但随着远程工作重新定义了安全边界,这比以往任何时候都更具挑战性。现在的安全边界不再由组织的物理位置定义,而是扩展到访问企业数据和服务的每个终端。因此,仅依赖传统的防火墙和 VPN 已经无法保护这一新的数字化资产。

众所周知,没有一种通用的架构设计适用于所有组织;每个组织都有不同的业务需求需要满足。采用 Zero Trust 方法可以帮助确保远程工作人员的安全性,同时不影响应用体验。

传统企业曾使用传统网络控制来保护企业边界。传统网络通常只有少数的网络安全边界,并且是平坦的开放网络,这使得攻击者可以迅速横向移动,快速遍布整个网络。Zero Trust 网络是完全分布式的,采用微分段。细粒度的网络分段消除了网络中的信任,大大减少了横向移动和数据外泄的风险。

Zero Trust 网络采用机器学习威胁保护和基于上下文的过滤,这可以有效阻止即使是最复杂的攻击。在传统网络中,并非所有流量都被正确加密,这使得它们更容易受到中间人攻击、窃听和会话劫持的威胁。而在 Zero Trust 网络中,所有流量都使用行业标准进行加密,以确保数据在传输过程中保持机密性。

主要目标是通过微型边界将传统的集中式网络转变为更全面和分布式的网络分段。通过这种方式,应用程序可以跨多个 Azure 虚拟网络进行划分,并通过中心-辐射模型连接。此外,建议在中心虚拟网络中部署 Azure 防火墙,以检查所有流量。

为支持这种方法,Microsoft Azure 提供了多种云原生网络组件,以支持远程工作并缓解网络问题。组织正在通过 Microsoft Azure Marketplace 使用第三方 NVA 来提供跨多云和本地环境的关键连接。

威胁保护

暴露于互联网的云应用面临更高的攻击风险,因此我们必须确保扫描所有经过这些应用的流量。威胁保护涉及到能够缓解已知和未知攻击的能力。

未知攻击主要是指那些无法与任何已知签名匹配的威胁。对于已知攻击,大多数情况下会有可用的签名,我们可以确保每个请求都经过检查。

Azure 中提供的服务,如Web 应用防火墙WAF),可用于保护 HTTP(S) 流量。您可以将 Azure WAF 与 Azure Front Door 或 Azure Application Gateway 一起使用,而 Azure Firewall 可用于在 OSI 模型的第四层进行基于威胁情报的过滤。

加密

Azure 使您能够确保对敏感数据的保护。它在多个加密领域提供支持,包括静态数据加密、传输中数据加密以及密钥管理。静态数据加密适用于持久存储资源,如磁盘或文件存储,并且在 SaaS、PaaS 和 IaaS 服务中均可用。

通过服务器端加密,您可以使用服务管理密钥或客户管理密钥,结合 Key Vault 或客户控制硬件。客户端加密包括由运行在本地或 Azure 之外的应用程序处理的数据,以及接收到 Azure 后进行加密的数据。

在零信任模式下,我们必须确保从用户到应用程序的所有流量都经过加密。我们可以通过使用 Azure Front Door 强制执行暴露给互联网的应用程序的 HTTPS 流量,并利用 VPN 网关(P2S 或 S2S)等网络服务和功能来实现这一目标。

此外,如果您通过虚拟机启用对 Azure 中资源的访问,您可以使用 Azure Bastion 来确保通信安全,如第五章《使用 Azure AD 和 WVD 启用安全远程工作》中所述。

现在我们已经审查了确保网络和流量安全的最佳实践,接下来同样重要的是,您需要一个机制来从您环境中的资源中获取洞察,并能够主动分析环境中的潜在威胁。

使用 Azure Sentinel 现代化您的安全操作,一款云原生的 SIEM

支持远程工作的组织需要一种方式来监控并从其环境中获得更多洞察,无论它们是运行在云端还是本地。

Azure Sentinel 是一款云原生的安全信息与事件管理SIEM)服务,它允许您通过内置连接器简化从多个数据源收集数据的过程,包括本地环境和多云环境,以便您能够主动分析潜在的威胁,并简化安全操作。

Azure Sentinel 关联来自您所有应用程序、服务、基础设施、网络和用户的安全日志和信号。Azure Sentinel 可以基于您的数据识别攻击,并将其显示在地图上,以便您分析所有流量。

首先,您需要连接您的资源,这些资源可以包括网络组件、应用程序和数据源。Azure Sentinel 为您提供了多种连接器,用于拉取数据,包括 Microsoft 服务,如 Microsoft 365 Defender、Azure AD、Microsoft Defender for Identity(前身为 Azure ATP)、Microsoft Cloud App Security 以及来自 Security Center 的 Azure Defender 警报,如图 6.8所示:

Azure Sentinel 数据连接器

图 6.8:Azure Sentinel 数据连接器

或者,您可以选择第三方解决方案或创建自己的自定义连接器,因为 Azure Sentinel 支持通用事件格式、Syslog 和 REST API 来连接您的数据源。所有收集的数据都存储在日志分析工作区中,这是一个容器,用于收集和聚合数据。当您在订阅中启用 Azure Sentinel 时,您将能够选择一个特定的日志分析工作区。

一旦连接了您的资源,您将能够选择一个特定的工作簿,这个工作簿为数据分析提供了一个画布,并使您能够在 Azure 门户中创建自定义的可视化报告。您可以根据业务需求创建自己的工作簿,并将来自多个来源的数据整合在一个报告中,同时加入自定义的可视化效果。

通过Azure Sentinel仪表盘,如图 6.9所示,您可以获得组织安全态势的高层次概览,其中包含随着时间推移的事件和警报、按状态划分的事件以及潜在的恶意事件:

Azure Sentinel 仪表盘中组织安全态势的高层次概览

图 6.9:Azure Sentinel 仪表盘

让我们探索一下 Azure Sentinel 提供的其他一些功能:威胁检测与狩猎、调查与事件响应以及管理多个租户。

启用威胁检测与狩猎

将您组织使用的威胁指标流式传输到 Azure Sentinel,以增强您的安全分析,并在组织的数据源中进行安全威胁狩猎,无论这些数据是否存储在 Azure、其他云端或本地环境中。

Azure Sentinel 为您提供了狩猎功能,如图 6.10所示,其中包括内置的查询,可以筛选提供商或数据源,帮助您的安全分析师快速发现您现有数据中的问题。每个查询都提供了使用案例的详细描述,您可以根据需要自定义查询:

Azure Sentinel Hunting 窗口

图 6.10:Azure Sentinel Hunting

查询基于Kusto 查询语言,并与 Azure Monitor 完全集成。一旦您自定义了一个查询,提供了有关潜在攻击的高价值见解,您可以保存该查询,并使用笔记本运行自动化的狩猎活动。

调查与事件响应

Azure Sentinel 允许您查看事件操作的变化。事件是基于分析规则创建的,并包含调查的相关证据;因此,它们可以包含多个警报。如果您组织中的分析人员希望调查事件,Azure Sentinel 提供了可通过事件页面访问的事件管理功能。您可以查看您有多少事件是打开、进行中或已关闭的:

Azure Sentinel 事件表属性和过滤器

图 6.11:Azure Sentinel 事件表属性和过滤器

您可以深入查看每个事件,查看时间戳以及事件的状态和严重性。还可以使用调查图,它提供了与警报相关的实体以及与其关联的资源的示意图。

然而,目标是能够响应安全警报,并尽可能地自动化对这些安全警报的响应。Azure 安全剧本可以帮助您编排和自动化响应。这些安全剧本基于 Azure 逻辑应用程序,并可以改善您对安全警报的响应方式。

当您收到安全警报时,您可以手动运行剧本或自动化您的安全剧本。要手动执行安全剧本,您可以通过事件页面,在警报选项卡中配置您希望从可用剧本列表中运行的剧本。

自动化响应涉及从安全警报中配置触发器。您可以配置当安全警报匹配时触发安全剧本的动作。

管理多个租户/多租户环境

使用 Azure Sentinel 来现代化您的安全操作的一个巨大好处是,您可以从自己的 Azure 租户中管理客户的 Azure Sentinel 资源,因此无需连接到客户租户。这种多租户能力对于作为托管安全服务提供商为其他组织或客户提供服务的公司尤其有用。

从您自己的 Azure 租户中管理多个 Azure Sentinel 租户的能力是通过 Azure Lighthouse 实现的,Azure Lighthouse 提供了多租户管理功能并增强了资源和租户之间的治理。如果您的组织为多个客户提供托管服务,您可以使用更全面的管理工具,委派资源管理,通过 Azure 门户查看跨租户的信息,使用 ARM 模板进行客户入驻,执行管理任务,还可以通过 Azure Marketplace 提供托管服务。

基于行业垂直领域和档案,组织必须遵守规定的合规要求,这些要求指明了必须采用的安全控制措施,例如 PCI-DSS、NIST、ISO27001 等。

在云环境或混合环境中,满足这些监管合规要求可能是一个重大挑战。在最后一部分,我们将介绍 Azure 中的一些功能,帮助您执行这些组织标准。

统一的 SecOps 体验

随着组织部署云应用并为远程工作人员提供访问权限,保持一致性以确保云合规性、避免配置错误、降低潜在攻击风险以及实现组织范围的治理可能成为一项巨大的挑战。

您可以使用 Azure Policy 强制执行组织标准,通过策略定义评估资源的属性来评估合规性。Azure Policy 提供一个合规性仪表盘,您可以通过它查看每个资源或每个策略的更详细信息,从而确保您的资源符合合规要求。此外,您可以定义 Azure 举措,这些举措是 Azure 策略定义的集合,帮助您实现目标并简化策略管理:

政策合规性窗口

图 6.12:政策合规性

在这种背景下,您的组织可以利用 Azure Policy 中的一个新功能——监管合规性,该功能在本文撰写时处于预览阶段,提供内置的举措定义,帮助您了解控制项和合规领域。这意味着您可以看到哪个合规领域预期由您的组织、微软或共享合规领域来覆盖。

您将在合规性页面中看到一个名为控制的新标签页,您可以通过合规领域进行过滤,并查看每一行的详细信息:

合规页面上的控制标签

图 6.13:政策中的控制页面

通过使用 Azure Policy 中的监管合规性功能,您的组织可以实现符合业务需求的合规性。在合规页面上,您可以看到某个合规领域是由微软、客户负责,还是属于共同责任。 如果您正在查看的控制项是微软负责的,您还可以查看审计结果的更多详细信息。

总结

启用远程工作使得安全操作变得更加具有挑战性,因为需要监控和保护的端点和环境的数量显著增加。通过采纳零信任策略,我们可以降低潜在攻击和安全泄露的风险。

在本章中,我们回顾了微软提供的帮助您在组织中实施零信任策略并快速、智能地响应威胁的一些核心服务。

我们回顾了如何利用 Azure Sentinel(一款云原生 SIEM)来增强安全运营团队的能力,帮助他们在面对对手时始终保持领先。同时,我们也了解了如何使用 Azure Security Center 监控几乎所有属于你的环境的资源,并无需额外部署即可保护这些资源,以及如何使用 Azure Defender 保护你的工作负载,无论它们是在云端还是本地部署。

在下一章,我们将探讨如何利用 Azure 订阅中的工具来优化云成本,追踪资源使用情况,管理所有环境中的成本,并实施治理政策以有效地进行成本管理。

在上一章中,你了解了保护应用程序免受网络犯罪的基础知识。现在我们将重点介绍 Azure 提供的各种优惠和 Microsoft 提供的支持,以优化成本,介绍可用于降低成本的各种工具,以及管理这些成本的建议。

随着组织开始迈向云端,必须学习的关键事项之一就是如何优化成本。从客户的角度来看,成本预测可以基于如何减少数据中心的占地面积、运营支出定价模型、员工生产力以及其他因素。

本章将涵盖以下内容:

  • 理解和预测你的成本

  • 优化成本的策略

第一步是理解并规划你组织所面临的成本。

第七章:理解和预测你的成本

组织应该及时分析他们的 Azure 发票,以监控成本并减少管理 IT 资源所需的开销。使用 Azure 成本管理和计费以及 Azure 顾问等工具,你可以分析、管理并优化工作负载。在我们深入了解这些工具及其提供的好处之前,我们必须先理解在云基础设施中预测成本时最关键的因素。

云经济学

企业理解云经济学至关重要,这样他们才能预测成本并最大化云投资。企业应该分析从本地工作负载迁移到云端或从其他工作负载切换到 Azure 时的投资回报率ROI)。首先,你需要基准测试当前数据中心的运行成本。这可能包括资本支出、维护和运营成本以及软件许可费用。你还应确定将 IT 操作迁移到云端的成本。

总结云经济学,你组织的关注点应该是以下八点公式:

  1. 通过简化操作来减少数据中心占地面积。

  2. 聚焦于将按需云服务作为运营支出模型的一部分来利用。

  3. 通过解放员工免于维护任务,提升生产力。

  4. 力求业务可持续发展。

  5. 探索你的可扩展性选项,并在需要时提供资源。

  6. 满足安全和合规标准。

  7. 使用高可用性的云基础设施来确保业务连续性。

  8. 优化工作负载和使用成本。

Azure 提供的解决方案可以帮助你实现这些目标,我们将在接下来的章节中进行探讨。

成本管理工具

Azure 提供了一系列工具,以提供卓越的开发和运维体验,并帮助了解在 Azure 中使用的资源的成本。本章讨论的所有成本管理解决方案,如果正确使用,将对业务产生影响。让我们来看看 Azure 中可用的工具列表。

Azure 成本管理和计费

Azure 成本管理和计费具有完整的云成本管理功能,并提供跨所有云的单一统一视图,帮助您提高组织的问责制,并自信地管理云支出。成本管理和计费服务使您能够查看计费范围,深入分析成本管理,审查管理组,并诊断和排除问题:

Azure 门户中的成本管理 + 计费窗格

图 7.1:成本管理 + 计费页面

管理组是一种独特的方式,用于对订阅和成本进行分组。虽然本章并不讨论管理组,但值得注意的是,它们仍然是管理订阅的有用 Azure 资源。

组织需要采取独特的方法,向非财务部门的用户提供成本管理访问权限。有多种方式可以使这些成本结构对组织的运营和开发人员可见。可以使用 Power BI 仪表板和 API 来提取报告,并创建整洁、独特的仪表板来访问成本信息;您可以在此处阅读更多内容:docs.microsoft.com/power-bi/connect-data/desktop-connect-azure-cost-management。除了 Power BI,Azure 还允许与自定义应用程序集成,以及与像 CRM 这样的 SaaS 应用程序集成,以消化和使用您的数据。

如前所述,管理组可以帮助提供更好的成本视图,您还可以使用标签在组织内分配预算代码。以下截图展示了如何按服务基础来可视化成本:

按服务分组的成本概览

图 7.2:按服务分组的成本

借助 Azure,您的组织可以轻松地从一个位置管理混合云环境(例如 Azure 和 AWS)的成本,从两个云的数据中获得最佳的洞察。

让我们快速了解一下 成本管理 部分,适用于按需付费模式(我们将在本章后面讨论的定价模型):

Azure 门户中的成本管理部分

图 7.3:成本管理部分

如您所见,成本管理部分允许您分析成本、创建成本警报、分配预算并获取顾问推荐。当您点击 成本分析 时,您将获得资源组范围内资源的详细分解,例如数据存储或无服务器帐户。

您还可以设置成本警报,这是一个极好的工具,可以通过设置阈值来监控非生产环境的超支,并收到警报。警报可以与预算结合使用,如下截图所示:

Azure 门户中显示的成本警报窗格

图 7.4:预算阈值警报

在组织可视化当前支出后,预算和警报是一个不可或缺的下一步。您应当监控和分析您的 Azure 账单,确保没有任何费用或隐藏的基础设施被遗漏。这在非生产环境中尤其重要,因为这些环境的控制通常不如生产环境严格。

当触发警报时,您应进行成本审查以找出原因,并确定是否需要采取任何措施。这可能包括修订预算或实施额外的 Azure 策略控制等。为不同团队的项目和业务部门分配预算,也有助于控制其成本。

要了解 Azure 策略及其在治理中的重要作用,请访问 docs.microsoft.com/azure/governance/policy/overview

要了解更多关于 Azure 成本管理和计费的功能,请访问 docs.microsoft.com/azure/cost-management-billing/cost-management-billing-overview

Azure 定价计算器

Azure 定价计算器是一个免费的工具,可以用来实时估算订阅服务的成本。您可以通过中央仪表板个性化查看估算。定价计算器还可以与其他工具结合使用,例如 Azure 总拥有成本TCO)计算器,以实现更好的成本优化。我们可以创建估算并将其保存到账户中,或与相关方共享。

Azure 区域有时会影响 Azure 资源的成本,因此在选择资源之前,使用 Azure 定价计算器来预测成本是非常有帮助的:

Azure 定价计算器概览

图 7.5:Azure 定价计算器

Azure 定价计算器可以在此找到:azure.microsoft.com/pricing/calculator/

使用定价计算器时,组织可能会遇到的一大障碍是考虑到资源周围的基础设施,以便获得准确的估算。您应始终考虑部署应用程序到云所需的所有网络基础设施。

例如,考虑一个有两个虚拟机(VM)的组织,一个运行网站,另一个运行支持该网站的服务,它希望将这两个虚拟机迁移到云端。他们使用定价计算器,输入这两个虚拟机的信息,并发现它们的平均月度成本。

在这种情况下,他们应该做的一件事是查看虚拟机的使用情况,以便在 Azure 中正确配置其资源。许多组织过度分配了未来扩展所需的机器,但在云端,你可以随时扩展资源,因此无需配置过大的资源。该组织还忽视了路由器和防火墙,并未考虑虚拟机规模集,或者在虚拟机故障时保护基础设施的能力。如你所见,一个好的计划可以带来长远的效益。

总拥有成本计算器

当企业想要更全面地了解将 Azure 解决方案迁移的意义时,他们可以使用 TCO 计算器。这个工具提供了关于将本地工作负载迁移到云端的详细信息,并帮助企业了解如何使迁移过程更加顺利。

你可以在azure.microsoft.com/pricing/tco/calculator/找到更多关于该计算器的信息。

Azure Migrate

另一个可以使用的工具是 Azure Migrate,特别是当你决定从本地迁移到云时。Azure Migrate 提供了一个集中的、统一的视图,用于评估和迁移本地服务器、基础设施、应用程序和数据到云端。它为组织提供了一系列工具和选项,帮助评估和迁移这些不同的资源和工作负载到 Azure。

有关如何使用 Azure Migrate 的更多信息,请访问docs.microsoft.com/azure/migrate/migrate-services-overview

选择合适的定价模型

除了工具外,了解 Azure 提供的各种定价模型同样重要,这有助于更好地预测资源和成本。在 Azure 中,服务有两种标准定价模型:

  • 按需付费模型,也称为基于消费的模型

  • 固定价格模型

大多数 Azure 资源,如 PaaS 或无服务器服务,都将使用基于消费的模型。固定价格的一个例子是 Azure 预留虚拟机实例RIs),或者更广泛的 Azure 预留

固定价格模型更具可预测性,而按需付费模型则可能变化,因此在选择两者时需要考虑业务需求。我们将在接下来的章节中详细讨论这两种模型。

基于消费的模型

按消耗付费或按需付费模型遵循基于公用事业的结构。这意味着你只为实际使用的部分付费,资源没有固定的月度费用或固定成本。举个例子,像功能应用程序这样的服务,你为一百万次应用使用支付一美元。

这种按使用付费的模型可以帮助你控制成本,但也可能导致成本增加。举个例子,像 CosmosDB 这样的服务基于使用量或请求单元收费,取决于查询运行的次数,最终可能会非常昂贵。

你可以使用架构模式,如基准负载平衡和服务的自动伸缩,来帮助实现固定的最低性能水平。如果需要突发工作负载,可以使用类似节流模式的方式,在负载下保持服务的质量。

固定价格模型

在固定价格模型下,无论资源是否被使用,你都需要为其支付费用。我们已经提到过 Azure 预留实例(RIs),但另一个例子是 Azure 中的应用服务计划。当你选择某种资源类型时,你会产生每月费用,无论有多少人使用该应用,你仍然需要支付这个费用。这个定价模型帮助组织更好地预测在 Azure 中的支出,但也可能根据使用情况出现问题。

当组织计划大规模使用虚拟机(VM)来支持应用时,它们会购买预留实例。作为对固定期限资源承诺的回报,Azure 会提供折扣价格。当你首次迁移到云时,可能会对资源使用情况产生不确定性,因此根据你的工作负载,最好在考虑预留实例之前先掌握这些情况。

在保持成本结构的过程中,规模扩展性与可预测性之间存在权衡,大多数组织选择两种定价模型的混合方式。

欲了解更多定价模型的信息,请访问docs.microsoft.com/azure/architecture/framework/cost/design-price

现在我们了解了 Azure 在帮助你评估和管理成本方面的各种方法,我们将继续讨论如何优化这些成本。

优化你的成本

成本优化是通过识别浪费、资源管理不当、资源规模不匹配以及预留容量来降低资源成本的过程。由于成本管理是云治理五大原则之一,因此关注如何为云资源制定支出计划和预算非常重要。您还需要使用监控和警报来执行这些预算,并检测开发实践中出现的异常。微软提供了云采用框架作为指导,其中详细介绍了工具、最佳实践和文档,帮助组织在云中取得成功。您可以在docs.microsoft.com/azure/cloud-adoption-framework/. 获取更多信息。

估算成本和对我们之前讨论的定价模型进行调整的一般方法是通过监控工作负载的峰值吞吐量。例如,如果利用率一直很高,那么按需付费模式在基准成本估算时就不够高效。因此,尽管按需付费模式提供了灵活性,但单靠它并不总能实现成本节约。

如前所述,最佳的成本优化是拥有一个计划,因此您应当利用手头的工具,从定价计算器到清单,来制定您的政策、预算和控制措施,以限制解决方案的支出。Azure 良好架构框架是建立这些政策的一个很好的起点,也是一个宝贵的信息来源。它位于docs.microsoft.com/azure/architecture/framework/cost/. 我们在第四章,云迁移:规划、实施和最佳实践中讨论了 Azure 良好架构框架。

当我们在接下来的几个部分中开始探索 Azure 提供的优化选项时,您应该记住,这不仅仅是将工作负载迁移到 Azure,还包括周围的所有事项。在迁移到云时,许多组织会忽略一些相关的基础设施成本。

Azure 顾问

通过 Azure 成本管理,您可以访问的一个有用服务是 Azure 顾问。Azure 顾问分析您的资源配置和使用情况,提供个性化的优惠和建议,帮助您优化资源以提高成本效益、安全性和性能。例如,它可以帮助您发现未使用的资源或长期处于空闲状态的资源,包括调整资源规模,如 SQL。

要了解有关 Azure 顾问的更多信息,请访问docs.microsoft.com/azure/advisor/advisor-overview

需要特别指出的是,你应该为云计算正确调整资源。大多数组织会过度购买内部基础设施,只是为了未来的增长。当迁移到 Azure 时,你可以横向和纵向扩展,因此如果你的机器需要更多资源,可以增加更多资源。你还可以使用混合方法,不需要将所有工作负载迁移到云端——你可以将那些需要更多性能或实例级可扩展性的工作负载部分迁移过去。

Azure 混合福利

Azure 混合福利是一项许可福利,可以大幅降低在云中运行工作负载的成本。它允许你在 Azure 上使用本地启用软件保障的 Windows 或 SQL Server 许可证,以及 Red Hat 和 SUSE Linux 订阅。此类福利可以使成本降低 40%或更多。此外,当你将 Windows Server 或 SQL Server 2008 及 2008 R2 工作负载迁移到 Azure 时,还将获得额外三年的安全更新,完全免费。

微软的混合福利模型的主要目标之一是通过使用 Windows 或 SQL Server 混合许可证节省成本,这能使托管实例的成本降低近 85%。这些福利也可以应用于虚拟机操作系统。图 7.6显示了一些涉及预留实例(RI)和 Azure 混合福利的潜在成本节省:

比较不同的 Azure 定价模型和潜在的成本节省

图 7.6:潜在的成本节省

推荐使用混合福利计算器来计算使用混合模型的整体成本节省,计算器可以在azure.microsoft.com//pricing/hybrid-benefit/#calculator找到。

Azure 预留

Azure 预留可以帮助你在为资源承诺一年或三年的费用时节省资金。这些承诺可以使费用比按需定价节省最多 72%,因为这是一项预付费用的资源使用时间合同。只有在你有长期应用计划并且符合时间要求时,预留才应使用。它们仅适用于 Azure 中的特定资源,如虚拟机(VM)。

要了解更多有关预留的信息,请访问以下链接:

Spot 虚拟机

Spot 虚拟机允许您以大幅折扣使用 Azure 未使用的计算能力。需要注意的是,当 Azure 需要恢复该计算能力时,它会驱逐您的 Spot 虚拟机。因此,Spot 虚拟机非常适合那些可以中断的工作负载,如批处理、非生产环境、大数据分析、基于容器的大规模无状态应用程序等。可用的计算能力因地区而异,取决于一天中的时间或工作负载的大小;因此,这些虚拟机没有服务级别协议(SLA)。您可以在 Azure 门户中查看所选 Spot 虚拟机的价格历史和驱逐率。

如果您想了解更多关于使用 Spot 虚拟机的信息,请访问docs.microsoft.com/azure/virtual-machines/spot-vms

DevTest 定价

Azure DevTest 使开发人员可以创建虚拟机或其他 PaaS 资源,而无需快速批准。它允许团队开发非生产环境,以快速测试应用程序,并使组织能够为这些非生产资源或沙箱区域设置一致的预算。此外,它还允许您为虚拟机设置自动启动和关机计划,以降低成本,并允许设置策略以确保不使用更大的资源。

要了解更多关于如何使用 Azure DevTest,请访问docs.microsoft.com/azure/devtest-labs/devtest-lab-overview

优化清单

基于我们在本章中学到的内容,以下是一些您可以立即实施的 Azure 成本优化方法:

  1. 根据需要调整未使用资源的大小,因为它们可以在云中水平和垂直扩展。

  2. 在未使用时关闭您的资源。这可以通过自动化脚本来处理。

  3. 利用云中的混合模型,仅将必要的工作负载迁移到云中。获取更多信息,请访问docs.microsoft.com/azure/cost-management-billing/costs/tutorial-acm-opt-recommendations

  4. 对您知道会在云中长时间使用的大型虚拟机资源使用预留实例。

  5. 设置预算,将成本分配到不同的组,并在接近预算时接收警报。

  6. 设置 Azure DevTest 环境,用于开发和测试,然后再发布到您的公共工作负载中。

  7. 探索其他 Azure 服务,如 PaaS、SaaS 或无服务器,以优化您对云的使用并控制成本。

  8. 按照 Azure 顾问的最佳实践建议优化您的工作负载成本。

  9. 使用 Microsoft Azure 优良架构评审评估和设计文档审查您的工作负载架构,看看在哪里可以优化成本。

  10. 利用 Azure 提供的优惠和许可条款,如 Azure 混合权益、通过预订为可预测的工作负载支付预付款、Azure Spot 虚拟机和 Azure 开发/测试定价。如需了解更多 Azure 提供的优惠信息,请访问 azure.microsoft.com/support/legal/offer-details/

总结

如您所见,组织建立全公司范围的成本管理和保护措施是有益的,这有助于解放团队,让他们能够提供更多的创新。在云中平衡性能、弹性与保持成本之间的关系可能很繁琐,您不应让成本成为唯一的驱动力。

在本章中,我们回顾了优化成本的方式,从正确配置资源或围绕未使用资源创建自动化,到为您的团队建立预算和警报来监控开支。

在 Azure 中,本地数据中心与将这些数据中心虚拟化到云中之间存在明显的成本差异。我们回顾了在 Azure 中处理这些成本和成本模型的一些方法。我们讨论了采用 Azure 的独特优势,包括通过混合模型将工作负载扩展到云中,以适应那些不完全需要在云中运行的工作负载。我们还看到了一些有助于管理和优化成本的工具。

总结一下,记住始终要:

  • 选择适合您需求的 Azure 计算服务

  • 正确配置资源

  • 关闭未使用的资源

  • 配置自动扩展

  • 预留实例

  • 使用 Azure 混合权益

  • 为不同的团队和项目设定预算

我们不应该让成本驱动我们使用 Azure,但要意识到那些可能影响最终结果的因素。

感谢您阅读《Azure 战略与实施指南,第四版》。在不同的章节中,我们回顾了如何开始在 Azure 云上开展工作,使用 Microsoft Azure Well-Architected 框架,并采用最佳实践来提高云中工作负载的质量。为了满足您组织的解决方案需求,在 Azure 上运行工作负载有很多不同的场景。我们学习到,运用设计原则的重要性,并意识到在将资源迁移到 Azure 时,规划至关重要。

我们希望这本端到端的指南能帮助您更好地理解最新的 Azure 技术和创新,了解它们如何帮助您的业务,并为您的 Azure 采纳战略提供框架。

第八章:资源

以下是一些有用的资源,帮助您在 Azure 迁移旅程中迈出下一步:

词汇表

  • 年化故障率(AFR):估算设备或组件在使用一年期间发生故障的概率。

  • 应用现代化:指的是对现有 IT 资产进行现代化,包括重构或重新架构,或者两者兼有。应用现代化的目标通常是为了在云中实现成本和运营效率。

  • 可用性区域:在 Azure 区域内的一个故障隔离区域,配有冗余的电力、冷却和网络组件。

  • Azure AD 多重身份验证(MFA):一种身份验证方式,要求用户通过额外的身份验证方式,如指纹或手机上的验证码,来验证自己的身份。

  • Azure Arc:使您能够通过 Azure 管理界面和操作模型查看和管理计算资源,无论它们是本地的、跨多个供应商云,还是分布在网络边缘。

  • Azure 连接机器代理:一款软件包,允许您管理 Linux 和 Windows 机器,无论它们是否托管在 Azure 外部,跨多云环境,还是本地部署。

  • Azure 磁盘存储:一种高性能、高耐用性的块存储,专为与 Azure 虚拟机一起使用而设计。

  • Azure DevOps:Azure 的核心是自动化和扩展。您可以利用 Azure DevOps 将代码和基础设施部署到 Azure 中,以保持稳定和一致的部署过程。

  • Azure 治理:Azure 治理是一组帮助组织遵守 Azure 合规性和安全政策的控制措施。Azure 治理帮助确保所有相关方的目标一致,并理解他们在迁移到 Azure 过程中的责任。

  • Azure 基础设施即服务(IaaS):Microsoft 提供的一套计算、存储和应用能力,作为一种服务来支持您在云中的工作负载。Azure IaaS 提供安全性,并能即时扩展您的基础设施,以便在任何地方管理和操作工作负载,同时降低成本。

  • Azure 定价计算器:您用来在构建之前估算基础设施成本的工具。

  • Azure Private Link:Azure 服务,提供从虚拟网络到 Azure 平台即服务(PaaS)、客户拥有的服务或 Microsoft 合作伙伴服务的私有连接。

  • Azure 资源管理器(ARM):资源可以通过门户在 Azure 中进行配置,也可以通过编程方式进行配置。将 ARM 模板与 Azure Pipelines 集成,可以帮助您实现持续集成和持续部署CI/CD)。

  • Azure 安全中心:一款改善安全态势的工具。它可以保护您的工作负载,无论它们是托管在 Azure、本地环境还是其他云中。

  • Azure Sentinel:一项云原生的 SIEM 服务,内置 AI 进行分析,消除了实现集中式和近实时查看您环境中活跃威胁的成本和复杂性。

  • Azure Stack HCI:Azure 服务,通过软件定义基础设施确保为您的 Linux 和 Windows 工作负载提供一致的环境。该超融合基础设施非常适合混合和本地环境。

  • 成本分析:成本分析是一种有助于控制基础设施支出的工具。您可以利用监控和警报来帮助您更加主动和高效地控制成本。

  • 网络安全:一个常用术语,用来指代为应对数据中心基础设施攻击而采取的预防措施。

  • 边缘计算:它并不总是要求保持连接到互联网。边缘计算允许您在没有全时连接的情况下构建解决方案。

  • 加密:一种信息编码方法。Azure 处理主要的加密问题,包括静态加密和传输加密,以及密钥管理。

  • ExpressRoute:Azure 提供的一项服务,用于在 Azure 数据中心与基础设施之间建立私有连接,通常在联合环境中使用。

  • 固定最低性能:在 Azure 中,为了正确配置基础设施,您需要确保设定一个最低性能标准。这有助于了解运行应用程序所需的最低资源数量,从而帮助定义您的扩展需求。

  • 高可用性:系统或网络的特性,确保在特定时间段内保持运营连续性,并避免停机。

  • 混合云:并非所有事物都适合云计算。混合解决方案是一种在不完全将工作负载迁移至云中的情况下构建应用程序的方式。

  • 混合许可证:混合许可证是指在 Azure 中利用本地或预购许可证来帮助管理成本。这对于那些对本地资源有特殊定价的组织特别有用。

  • 基础设施即代码(IaC):IaC 是 ARM 模板为确保基础设施部署一致性所生成的内容。

  • 多云:云服务供应商没有一刀切的解决方案。多云策略使得组织能够将其云资产、应用程序和资源分布到不同的云供应商之间。多云模型用于保持关键任务应用程序的高可用性。

  • 多云战略:无论是为了政府还是公司董事会合规,多云战略使组织能够解决许多问题。这些问题可能包括避免被云供应商锁定价格,设计具有弹性的灾难恢复计划,以及巧妙地管理数据存储的政府监管。无论需求或愿望是什么,这些战略使组织能够使用多个云供应商。

  • 平台即服务(PaaS):涵盖了基础设施即服务(IaaS)的好处,还可以包括中间件、数据库管理、容器编排器和商业智能(BI)服务。PaaS 解决方案通常包括预先编码的应用组件,如安全功能、目录服务和工作流功能。

  • 无密码:任何无需用户提供密码即可验证用户身份的方法,例如使用指纹等生物识别手势或设备特定的 PIN 码。

  • 私有云:仅由单一组织使用、不可公开访问的云计算资源。托管私有云的组织负责管理和维护云资源模型运行所在的基础设施。

  • 弹性:网络或系统在面对故障、威胁和挑战时,能够在保持足够的可操作性水平的同时从故障中恢复的能力。

  • 无服务器:一种云计算执行模型,在这种模型中,计算资源由客户的云服务提供商按需分配。无服务器应用环境、无服务器功能和无服务器 Kubernetes 是 Azure 中可用的无服务器计算资源的示例。

  • 服务水平协议(SLA):定义您期望从供应商那里获得的服务水平。在此情况下,SLA 描述了微软在正常运行时间和连接性方面的承诺。

  • 共享责任:当迁移到云端时,你需要学习一种新的基础设施代码共享责任。理解并清楚知道你的责任在哪里终止,云服务提供商的责任从哪里开始是很重要的。

  • 站点恢复移动服务:移动服务代理会捕获机器上的数据写入,然后将其转发到站点恢复进程服务器。

  • Azure Spot 虚拟机(Spot VMs):Spot 虚拟机是 Azure 的一项服务,允许你以较低的折扣购买未使用的 Azure 计算能力(虚拟机)来处理可中断的工作负载。需要注意的是,当底层容量需要时,Azure 可能会驱逐 Spot 虚拟机。

  • 租户:通常用于表示 Azure AD 中的一个组织。

  • 透明数据加密(TDE):TDE 是 Azure 中默认将数据存储库静态加密的方式。

  • Windows 虚拟桌面:一个用于桌面和应用虚拟化的系统,运行在 Azure 上。

  • 零信任原则:包括一种安全模型,旨在使用户能够更安全地工作。它包括身份验证和授权、限制访问资源的控制措施以及入侵预测。简而言之,永不信任,总是验证

posted @ 2025-07-08 12:23  绝不原创的飞龙  阅读(19)  评论(0)    收藏  举报