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

Azure Well-Architected 框架评审 - Azure Service Fabric

Azure Service Fabric 是一种分布式系统平台,可用于轻松打包、部署和管理可伸缩的可靠微服务和容器。 这些资源将部署到一组联网的虚拟机或物理计算机上,称为 群集

Azure Service Fabric 中有两个群集模型: 标准群集托管群集

标准群集 要求定义群集资源以及多个支持资源。 这些资源必须在部署时正确设置,并在群集的整个生命周期内正确维护。 否则,群集和服务将无法正常工作。

托管群集简化了 部署和管理操作。 托管群集模型由一个 Service Fabric 托管群集资源组成,该资源封装并抽象出基础资源。

为简单起见,本文主要讨论 托管群集 模型。 但是,对于适用于 标准聚类 模型的任何特殊注意事项,会进行标注。

本文介绍 Azure Service Fabric 的体系结构最佳做法。 本指南基于卓越体系结构的五大支柱:

  • 可靠性
  • 安全性
  • 成本优化
  • 卓越运营
  • 性能效率

先决条件

可靠性

以下部分介绍特定于 Azure Service Fabric 和可靠性的设计注意事项和配置建议。

与 Azure Service Fabric 讨论可靠性时,请务必区分群集可靠性和工作负载可靠性。 群集可靠性是 Service Fabric 群集管理员及其资源提供程序之间的共同责任,而工作负载可靠性是开发人员的域。 Azure Service Fabric 针对这两个角色提供了注意事项和建议。

在下面的设计清单和建议列表中,我们进行了标注,以指示每个选项是否适用于群集体系结构和/或工作负荷体系结构。

有关 Azure Service Fabric 群集可靠性的详细信息,检查容量规划文档

有关 Azure Service Fabric 工作负载可靠性的详细信息,请参阅 Service Fabric 体系结构中包含的 可靠性子系统

设计清单

为 Azure Service Fabric 做出设计选择时,请查看为体系结构增加可靠性 的设计原则

  • 群集体系结构:标准 SKU 用于生产方案。 标准群集: 对于生产方案,请使用 持久性级别 Silver (5 个 VM) 或更高版本。
  • 群集体系结构:对于关键工作负荷,请考虑对 Service Fabric 群集使用 可用性区域
  • 群集体系结构: 对于生产方案,请使用标准层负载均衡器。 托管群集使用一个用于主要和辅助节点类型的静态公共 IP 创建 Azure 公共标准负载均衡器和完全限定的域名。 还可以 自带负载均衡器,它同时支持基本和标准 SKU 负载均衡器。
  • 群集体系结构: 为工作负载创建其他辅助节点类型。

建议

浏览以下建议表以优化针对服务可靠性的 Azure Service Fabric 配置:

Azure Service Fabric 建议 好处
群集体系结构: 将标准 SKU 用于生产方案。 此级别可确保资源提供程序保持群集可靠性。 标准群集: 标准 SKU 托管群集提供等效的持久性级别银级。 若要使用标准群集模型实现此目的,需要使用 5 个 VM (或更多) 。
群集体系结构:请考虑对 Service Fabric 群集使用 可用性区域。 Service Fabric 托管群集支持跨多个可用性区域的部署以提供区域复原。 此配置可确保关键系统服务和应用程序的高可用性,以防止单点故障。
群集体系结构:请考虑使用 Azure API 管理公开和卸载群集上托管的 API 的横切功能。 API 管理可以直接与 Service Fabric 集成
工作负载体系结构: 对于有状态工作负荷方案,请考虑使用 Reliable Services Reliable Services 模型允许服务在计算机发生故障或遇到网络问题的不可靠环境中,或者在服务本身遇到错误、崩溃或故障的情况下,服务也能保持正常运行。 对于有状态服务,即使遇到网络故障或其他故障,状态仍会得到保留。

有关更多建议,请参阅 可靠性支柱原则

安全性

以下部分介绍特定于 Azure Service Fabric 和安全性的设计注意事项和配置建议。

在与 Azure Service Fabric 讨论安全性时,请务必区分群集安全性和工作负载安全性。 群集安全性是 Service Fabric 群集管理员与其资源提供程序之间的共同责任,而工作负载安全性是开发人员的域。 Azure Service Fabric 针对这两个角色提供了注意事项和建议。

在下面的设计清单和建议列表中,我们进行了标注,以指示每个选项是否适用于群集体系结构和/或工作负荷体系结构。

有关 Azure Service Fabric 群集安全性的详细信息,检查 Service Fabric 群集安全方案

有关 Azure Service Fabric 工作负载安全性的详细信息,请参阅 Service Fabric 应用程序和服务安全性

设计清单

为 Azure Service Fabric 做出设计选择时,请查看向体系结构添加安全性 的设计原则

  • 群集体系结构: 确保将网络安全组 (NSG) 配置为限制子网和节点类型之间的流量流。 确保为应用程序部署和工作负载打开 正确的端口
  • 群集体系结构: 使用 Service Fabric 机密存储分发机密时,请使用单独的数据加密证书来加密值。
  • 群集体系结构:通过将客户端证书添加到 Azure 密钥保管库并在部署中引用 URI 来部署客户端证书。
  • 群集体系结构:为群集启用Microsoft Entra集成,以确保用户可以使用其Microsoft Entra凭据访问Service Fabric Explorer。 不要在用户访问资源管理器时分发群集客户端证书。
  • 群集体系结构:对于客户端身份验证,请使用管理员和只读客户端证书和/或Microsoft Entra身份验证。
  • 群集和工作负载体系结构: 创建用于监视客户端证书到期日期的过程。
  • 群集和工作负载体系结构: 为开发、过渡和生产维护单独的群集。

建议

请考虑以下建议来优化 Azure Service Fabric 配置的安全性:

Azure Service Fabric 建议 好处
群集体系结构: 确保将网络安全组 (NSG) 配置为限制子网和节点类型之间的流量流。 例如,你可能有一个API 管理实例 (一个子网) ,一个前端子网 (直接) 公开网站,后端子网 (只能由前端) 访问。
群集体系结构:将密钥保管库证书部署到 Service Fabric 群集虚拟机规模集。 在 Azure Key Vault 中集中存储应用程序机密就可以控制其分发。 Key Vault 可以大大减少机密意外泄露的可能性。
群集体系结构:将访问控制列表 (ACL) 应用于 Service Fabric 群集的客户端证书。 使用 ACL 可提供额外的身份验证级别。
群集体系结构: 使用 资源请求和限制 来管理群集中节点的资源使用情况。 强制实施资源限制有助于确保一个服务不会消耗过多的资源并耗尽其他服务。
工作负载体系结构: 加密 Service Fabric 包机密值。 对机密值进行加密可提供额外的安全级别。
工作负载体系结构: 在 Service Fabric 应用程序中包括客户端证书。 让应用程序使用客户端证书进行身份验证提供了在群集和工作负载级别实现安全性的机会。
工作负载体系结构: 使用 托管标识对 Azure 资源中的 Service Fabric 应用程序进行身份验证。 使用托管标识可以安全地管理代码中的凭据,以便对各种服务进行身份验证,而无需将它们保存在开发人员工作站本地或源代码管理中。
群集和工作负载体系结构: 托管不受信任的应用程序时,请遵循 Service Fabric 最佳做法 遵循最佳做法可提供要遵循的安全标准。

有关更多建议,请参阅 安全支柱原则

Azure 顾问可帮助确保和提高 Azure Service Fabric 的安全性。 可以在 本文的 Azure 顾问部分中查看建议。

策略定义

Azure Policy有助于维护组织标准并评估资源中的合规性。 配置 Azure Service Fabric 时,请记住以下内置策略:

  • Service Fabric 群集应将 ClusterProtectionLevel 属性设置为 EncryptAndSign。 这是托管群集的默认值,不可更改。 标准群集: 确保将 ClusterProtectionLevel 设置为 EncryptAndSign
  • Service Fabric 群集应仅使用 Microsoft Entra ID 进行客户端身份验证。

与 Azure Service Fabric 相关的所有内置策略定义都列在 内置策略 - Service Fabric 中

成本优化

以下部分介绍特定于 Azure Service Fabric 和成本优化的设计注意事项和配置建议。

使用 Azure Service Fabric 讨论成本优化时,请务必区分 群集资源的成本工作负载资源的成本。 群集资源是 Service Fabric 群集管理员及其资源提供程序之间的共同责任,而工作负载资源是开发人员的域。 Azure Service Fabric 针对这两个角色提供了注意事项和建议。

在下面的 设计清单 和建议 列表中 ,标注用于指示每个选项是否适用于群集体系结构和/或工作负载体系结构。

对于群集成本优化,请转到 Azure 定价计算器 ,并从可用产品中选择 Azure Service Fabric 。 可以在计算器中测试不同的配置和付款计划。

有关 Azure Service Fabric 工作负载定价的详细信息,检查应用程序规划的示例成本计算过程

设计清单

在为 Azure Service Fabric 做出设计选择时,请查看优化体系结构成本 的设计原则

  • 群集体系结构: 选择适当的 VM SKU。
  • 群集体系结构: 使用适当的节点类型和大小。
  • 群集和工作负载体系结构:使用适当的托管磁盘层和大小。

建议

浏览以下建议表,以针对成本优化 Azure Service Fabric 配置:

Azure Service Fabric 建议 好处
群集体系结构: 避免使用临时磁盘产品/服务的 VM SKU。 Service Fabric 默认使用托管磁盘,因此避免使用临时磁盘产品/服务可确保不为不需要的资源付费。
群集体系结构: 如果出于容量原因需要选择某个 VM SKU,并且它恰好提供临时磁盘,请考虑对无状态工作负荷使用 临时磁盘支持 充分利用要支付的资源。 使用临时磁盘而不是托管磁盘可以降低无状态工作负荷的成本。
群集和工作负载体系结构: 使 SKU 选择和托管磁盘大小与工作负载要求保持一致。 将所选内容与工作负载需求相匹配可确保无需为不需要的资源付费。

有关更多建议,请参阅 成本优化支柱的原则

卓越运营

以下部分介绍特定于 Azure Service Fabric 和卓越运营的设计注意事项和配置建议。

在与 Azure Service Fabric 讨论安全性时,请务必区分 群集操作工作负荷操作。 群集操作是 Service Fabric 群集管理员及其资源提供程序之间的共同责任,而工作负载操作是开发人员的域。 Azure Service Fabric 针对这两个角色提供了注意事项和建议。

在下面的 设计清单 和建议 列表中 ,标注用于指示每个选项是否适用于群集体系结构和/或工作负载体系结构。

设计清单

在为 Azure Service Fabric 做出设计选择时,请查看 设计原则 ,确保卓越运营。

建议

浏览以下建议表以优化针对卓越运营的 Azure Service Fabric 配置:

Azure Service Fabric 建议 好处
工作负载体系结构: 使用 Application Insights 监视工作负荷 Application Insights 与 Azure 平台(包括 Service Fabric)集成。
群集和工作负载体系结构: 创建用于监视客户端证书过期日期的进程。 例如,Key Vault 提供一项功能,该功能在证书 x% 的有效期过后会发送电子邮件。
群集和工作负载体系结构: 对于预生产群集,使用 Azure Chaos Studio 在虚拟机规模集实例故障时钻取服务中断。 练习服务中断方案将帮助你了解基础结构中存在的风险,以及如何在问题出现时最好地缓解这些问题。
群集和工作负载体系结构: 使用 Azure Monitor 监视群集和容器基础结构事件 Azure Monitor 与 Azure 平台(包括 Service Fabric)很好地集成。
群集和工作负载体系结构:Azure Pipelines 用于持续集成和部署解决方案 Azure Pipelines 与 Azure 平台(包括 Service Fabric)很好地集成。

有关更多建议,请参阅 卓越运营支柱的原则

性能效率

以下部分介绍特定于 Azure Service Fabric 和性能效率的配置建议。

在与 Azure Service Fabric 讨论安全性时,请务必区分 群集操作工作负荷操作。 群集性能是 Service Fabric 群集管理员及其资源提供程序之间的共同责任,而工作负载性能是开发人员的域。 Azure Service Fabric 针对这两个角色提供了注意事项和建议。

在下面的 设计清单 和建议 列表中 ,标注用于指示每个选项是否适用于群集体系结构和/或工作负载体系结构。

要详细了解 Azure Service Fabric 如何通过 Service Fabric 性能计数器减少工作负荷的性能问题,请参阅 Azure Service Fabric 的监视和诊断最佳做法

设计清单

建议

请考虑以下建议来优化 Azure Service Fabric 配置,提高性能效率:

Azure Service Fabric 建议 好处
群集体系结构:从Windows Defender中排除 Service Fabric 进程以提高性能。 默认情况下,Windows Server 2016 和 2019 会安装 Windows Defender 防病毒软件。 若要减少Windows Defender产生的任何性能影响和资源消耗开销,如果安全策略允许排除开源软件的进程和路径,则可以排除
群集体系结构: 请考虑对群集使用 自动缩放 自动缩放可提供极佳的弹性,并可在辅助节点类型上按需添加或减少节点。 通过监视和优化为工作负载提供服务的节点量,此自动和弹性行为可减少管理开销和潜在的业务影响。
群集体系结构: 请考虑使用 加速网络 加速网络支持从数据路径中绕过主机的高性能路径,从而减少最苛刻的网络工作负载的延迟、抖动和 CPU 利用率。
群集体系结构: 考虑 在主机上使用加密 而不是 Azure 磁盘加密 (ADE) 。 通过加密 Azure 存储服务中的数据,为 VM 支持所有 OS 类型和映像(包括自定义映像),此加密方法改进了 ADE。
工作负载体系结构: 查看 Service Fabric 编程模型 ,确定哪种模型最适合你的服务。 Service Fabric 支持多种编程模型。 每个都有其优缺点。 了解可用的编程模型有助于做出设计服务的最佳选择。
工作负载体系结构: 在适当的情况下,为工作负载利用松散耦合 的微服务 使用微服务可以充分利用 Service Fabric 的功能。
工作负载体系结构: 在适当的情况下,为工作负载利用 事件驱动的体系结构 使用事件驱动的体系结构可以充分利用 Service Fabric 的功能。
工作负载体系结构: 在适当情况下,为工作负载利用 后台处理 使用后台处理可以充分利用 Service Fabric 的功能。
群集和工作负载体系结构: 查看在 Service Fabric 中缩放解决方案的不同方式 可以使用缩放为解决方案启用最大资源利用率。

有关更多建议,请参阅 性能效率支柱原则

Azure 顾问建议

Azure 顾问是个性化的云顾问程序,可帮助遵循最佳做法来优化 Azure 部署。 下面是一些建议,可帮助你在使用 Azure Service Fabric 时提高可靠性、安全性、成本效益、性能和卓越运营。

安全性

  • Service Fabric 群集应将 ClusterProtectionLevel 属性设置为 EncryptAndSign。 这是托管群集的默认值,不可更改。 标准群集: 确保将 ClusterProtectionLevel 设置为 EncryptAndSign
  • Service Fabric 群集应仅使用 Microsoft Entra ID 进行客户端身份验证。

其他资源

有关创建和维护群集时拥有的所有选项的列表,请查看 Azure Service Fabric 托管群集配置 选项一文。

查看 Azure 应用程序体系结构基础知识 ,获取有关如何开发工作负载的指导。 虽然 Service Fabric 只能用作容器托管平台,但使用架构良好的工作负载可以利用 Service Fabric 的完整功能。

后续步骤

使用 ARM 模板或通过Azure 门户创建 Service Fabric 托管群集时,请使用这些建议: