你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure VMware 解决方案工作负载的应用程序注意事项

本文讨论Azure VMware 解决方案工作负载的应用程序平台设计领域。 此区域涵盖与部署、配置和维护在Azure VMware 解决方案环境中托管的应用程序相关的特定任务和职责。 应用程序所有者负责Azure VMware 解决方案环境中的应用程序。 此个人或团队管理与应用程序的部署、配置、监视和维护相关的方面。

架构良好的应用程序的主要目标包括:

  • 针对缩放进行设计。 在不降级或服务中断的情况下,正常处理更高的用户需求和并发事务。
  • 性能。 提供快速、低延迟的响应时间,并有效地管理资源利用率。
  • 可靠性和复原能力。 设计冗余的容错模式,以帮助确保应用程序保持响应并快速从故障中恢复。

本文旨在为开发人员、架构师和应用程序所有者提供特定于Azure VMware 解决方案的最佳做法。 这些做法可帮助你构建在整个生命周期内保持可靠、安全、可缩放且可维护的应用程序。

设计可伸缩性和高效资源分发

影响:可靠性、性能效率、安全性

本部分介绍在Azure VMware 解决方案私有云中跨虚拟机 (VM) 和工作负荷的有效分配和利用计算资源。 这些资源可以包括 CPU、内存、存储和网络资源。 本部分还探讨了响应式缩放技术的实现。 可以使用这些技术动态调整资源预配,以适应需求波动。 主要目标是通过缓解可能导致效率低下和费用增加的未充分利用和过度预配,实现最佳资源利用率。

使用容错域

Azure VMware 解决方案 中的容错域表示拉伸群集中资源的逻辑分组。 这些资源共享一个通用的物理容错域。 容错域有助于提高各种故障方案中的可用性。 将资源组织到容错域有助于确保应用程序的关键组件分布在多个故障域中。

通过将 VM 和其他资源放入单独的容错域,应用程序团队可帮助确保应用程序在数据中心或基础结构故障期间保持可用。 例如,可以将 VM 分成分布在地理上分布式数据中心的容错域。 然后,如果一个数据中心遇到完全故障,应用程序可以保持正常运行。

应用程序团队应考虑定义基于容错域的 VM-VM 相关性和反关联规则。 VM-VM 关联规则将关键 VM 置于同一容错域中,以确保它们不会分散到多个数据中心。 反关联规则可防止相关 VM 放置在同一容错域中。 这种做法有助于确保冗余。

在三层应用程序中使用 VM-VM 反关联策略

在 Azure VMware 解决方案 中,VM-VM 反关联策略的用例涉及三层应用程序。 目标是增强每个应用程序层的高可用性、容错性和复原能力。 若要实现此目标,可以使用反相关性策略将层分散到Azure VMware 解决方案私有云中的不同主机。

若要实现此用例,请跨三个层使用 VM-VM 反关联策略创建分布式容错体系结构。 此设置可提高整个应用程序的可用性,并帮助确保单个主机的故障不会中断整个层或整个应用程序。

例如,在为用户请求提供服务的前端 Web 层中,可以应用 VM-VM 反关联策略,将 Web 服务器分散到不同的物理主机。 此方法有助于提高高可用性和容错能力。 同样,可以使用反关联措施来帮助保护业务层中的应用程序服务器,并增强数据库层中的数据复原能力。

显示使用 VM-VM 相关性策略分段的三层应用的体系结构图。

建议
  • 创建显示 VM 相互依赖性、通信和使用模式的映射,以确保要求邻近性。
  • 确定放置策略 VM-VM 相关性是否有助于满足性能指标或服务级别协议 (SLA) 。
  • 通过实施放置 VM-VM 反关联策略来防止主机故障并在多个主机之间分发应用程序,从而设计高可用性。
  • 若要避免过度预配,请将工作负载分散到小型 VM,而不是几个大型 VM。
  • 定期监视、审查和微调相关性策略,以识别潜在的资源争用。 根据需要随时间推移调整这些策略。

使用 VM-主机关联策略进行性能隔离

一些在不同应用层中运行 VM 的工作负载在并置时性能更好。 当应用程序需要以下情况时,通常会发生此用例:

  • 资源密集型高性能计算工作负载的性能隔离
  • 遵守许可协议。 例如,系统规范可能需要将 VM 与一组特定核心关联的映射,以保持与 Windows 或SQL Server许可的合规性。
  • 法规合规性和数据完整性 ,以确保属于特定安全域或数据分类的 VM 仅限于特定主机或群集中的一部分主机。
  • 将 VM 置于同一主机上的 简化网络配置 。 在这种情况下,可简化层之间的网络配置。 这些层共享相同的网络连接,不需要额外的网络跃点。

如果必须维护应用程序层的并置,则可以选择 VM-主机 相关性策略,以确保将层部署在同一主机和同一可用性区域中。

显示使用 VM-主机相关性策略分段的三层应用的体系结构图。

注意

平台团队负责设置 VM 放置、主机相关性规则和资源池。 但应用程序团队应了解每个应用程序的性能要求,以确保满足应用程序需求。

应用程序团队必须全面评估 VM 放置并参与细致的规划。 VM 放置可能会带来潜在的挑战,例如资源不平衡和工作负载分布不均匀。 这些情况可能会导致对性能和资源优化产生不利影响。 此外,将所有工作负载放在一个可用性区域中可能会造成灾难中的单一故障点。 请考虑跨多个可用性区域复制配置,以在发生故障时增强数据中心复原能力。

建议
  • 仔细规划放置策略 VM-主机相关性策略的使用方式。 如果可能,请考虑替代解决方案,例如负载均衡、VMware vSphere 中的资源池、分布式数据库、容器化和可用性区域。
  • 定期监视资源利用率和性能,以确定任何不平衡或问题。
  • 选择均衡且灵活的 VM 放置策略。 此方法可帮助你最大程度地利用资源,同时保持高可用性并确保符合许可要求。
  • 测试和验证放置策略 VM-主机相关性配置,以确保它们符合应用程序的特定要求,并且不会对整体性能和复原能力产生负面影响。

使用应用程序或网络负载均衡器分配流量

除了使用放置策略外,负载均衡也是新式应用程序的关键组件,可帮助确保:

  • 高效的资源分发。
  • 提高了应用程序可用性。
  • 最佳应用程序性能。

负载均衡满足这些条件,同时保持工作负载缩放和管理的灵活性。

在 VM 上部署应用程序后,请考虑使用负载均衡工具(例如Azure 应用程序网关)创建后端池。 应用程序网关是一种托管的 Web 流量负载均衡器和应用程序交付服务,可以管理和优化传入到 Web 应用程序的 HTTP 和 HTTPS 流量。 作为 Web 流量的入口点,应用程序网关提供各种类型的功能。 示例包括 TLS/SSL 终止、基于 URL 的路由、会话相关性和 Web 应用程序防火墙功能。

显示流量如何从浏览器流经应用程序网关到后端池的体系结构图。

后端池中的资源可用后,请创建侦听器以指定传入请求的端口和路由规则。 然后,可以创建运行状况探测来监视 VM 的运行状况,并指示何时从轮换中删除不正常的后端资源。

实现 TLS/SSL 终止和证书管理

需要对应用程序和用户浏览器之间的所有通信强制实施 TLS/SSL 加密。 此加密有助于保护会话数据免受窃听和中间人攻击。 如果应用程序需要 TLS/SSL 终止,请在 应用程序网关 中配置必要的 TLS/SSL 证书,以从后端 VM 卸载 TLS/SSL 处理。

生成 TLS/SSL 证书后,将它们放在 Azure 密钥保管库 等服务中,以帮助你安全地存储和访问它们。 使用 PowerShell、Azure CLI 或 Azure 自动化 等工具来更新和续订证书。

管理 API

Azure API 管理可帮助你安全地发布内部和外部部署的 API 终结点。 终结点的一个示例是后端 API,该 API 位于负载均衡器或应用程序网关后面的Azure VMware 解决方案私有云中。 API 管理可帮助你管理 API 的方法和行为,例如通过应用安全策略来强制实施身份验证和授权。 API 管理还可以通过应用程序网关将 API 请求路由到后端服务。

在下图中,来自使用者的流量将传送到API 管理公共终结点。 然后将流量转发到在Azure VMware 解决方案上运行的后端 API。

连接到中心中心的Azure VMware 解决方案数据中心的体系结构图。中心托管应用程序网关和API 管理。

建议
  • 若要增强Azure VMware 解决方案应用程序的安全性和性能,请将应用程序网关与Azure VMware 解决方案后端配合使用,将流量分发到应用程序终结点。
  • 确保托管Azure VMware 解决方案的后端段与包含应用程序网关或负载均衡器的子网之间建立连接。
  • 配置运行状况证明可监视后端实例的运行状况。
  • 将 TLS/SSL 终止卸载到应用程序网关,以减少后端 VM 上的处理开销。
  • 安全地将 TLS/SSL 密钥存储在保管库中。
  • 通过自动执行证书更新和续订等任务来简化流程。

优化拉伸群集以增强业务连续性和灾难恢复准备

影响:可靠性

拉伸群集为 VMware 群集提供跨多个地理位置分布式数据中心的高可用性和灾难恢复功能。

以下设置支持主动-主动体系结构。 (vSAN) 虚拟存储区域网络跨两个数据中心。 第三个可用性区域映射到 vSAN 见证,用作拆分大脑方案的仲裁。

显示跨两个可用性区域的 vSAN 拉伸群集的体系结构图。第三个区域包含 vSAN 见证。

跨多个可用性区域和区域分发应用程序有助于确保在数据中心故障期间持续可用性。 跨两个数据中心部署应用程序层和数据层,并启用同步复制。

配置容错和故障以容忍 (FTT) 策略

应用程序的总可用容量取决于多个变量。 示例包括独立磁盘的冗余数组 (RAID) 配置、属性的值 failures to tolerate ,以及控制存储系统可以容忍的故障数 (FTT) 策略。 应用程序团队需要确定应用程序所需的冗余级别。 同样需要注意的是,较高的 FTT 值可以提高数据复原能力,但会增加存储开销。

建议
  • 跨共享存储部署应用程序,使 VM 数据在整个拉伸群集中保持一致。 启用同步复制。
  • 配置容错域以定义拉伸群集在故障情况下应如何响应。
  • 实现自动故障转移和故障回复,以尽量减少故障转移和恢复事件期间的手动干预。

配置数据同步和存储策略

当应用程序依赖于有状态数据和数据库来确保灾难期间的一致性和可用性时,数据同步方法非常重要。 数据同步有助于为运行应用程序的关键 VM 提供高可用性和容错能力。

应用程序所有者可以定义存储策略,以帮助确保:

  • 运行应用程序的关键 VM 接收所需的数据冗余和性能级别。
  • VM 的定位是利用Azure VMware 解决方案中拉伸群集的高可用性功能。

示例策略可能涉及以下因素:

  • vSAN 配置。 将 VMware vSAN 与跨可用性区域的拉伸群集配合使用。
  • 要容忍的失败数。 将策略设置为允许至少一个或多个故障。 例如,使用 RAID-1 布局。
  • 性能。 配置与性能相关的设置,以优化关键 VM 的 IOPS 和延迟。
  • 相关性规则。 设置相关性规则,以帮助确保 VM 或 VM 组放置在延伸群集内的单独主机或容错域中,以在数据中心故障期间最大程度地提高可用性。
  • 备份和复制。 指定与备份和复制解决方案的集成,以确保定期备份 VM 数据并将其复制到辅助位置,以便提供额外的数据保护。
建议
  • 在 vSAN 中定义数据存储策略,以指定各种 VM 磁盘所需的冗余和性能。
  • 将应用程序配置为在主动-主动或主动-被动配置中运行,以便关键应用程序组件在数据中心故障期间发生故障。
  • 了解每个应用程序的网络要求。 与可用性区域中流量在一起的应用程序相比,跨可用性区域运行的应用程序会产生更高的延迟。 将应用程序设计为容忍此延迟。
  • 对放置策略运行性能测试,以评估它们对应用程序的影响。

后续步骤

现在,你已检查应用程序平台,了解如何建立连接、为工作负载创建外围,以及如何将流量均匀分配到应用程序工作负载。

使用评估工具评估设计选项。