共用方式為

生产就绪情况核对清单

应用程序和群集是否准备好接收生产流量? 运行和测试应用程序和群集并不一定意味着它已准备好投入生产。 通过完成以下清单,使应用程序和群集保持平稳运行。 强烈建议检查所有这些项目。 显然,可以选择对特定行项使用替代解决方案(例如,你自己的诊断框架)。

生产先决条件

  1. Azure Service Fabric 最佳做法: 应用程序设计安全性网络容量规划和缩放基础结构即代码以及 监视和诊断

  2. 如果使用 Reliable Actors 编程模型,并且需要安全的服务间通信,请配置 FabricTransport 设置

  3. 对于具有 20 个以上的核心或 10 个节点的群集,请为系统服务创建专用的主节点类型。 添加 放置约束 以保留系统服务的主节点类型。

  4. 将 D2v2 或更高版本的 SKU 用于主节点类型。 建议选择至少具有 50 GB 硬盘容量的 SKU。

  5. 生产群集必须 安全。 有关设置安全群集的示例,请参阅此 群集模板。 对证书使用公用名,避免使用自签名证书。

  6. 在容器和服务上添加资源约束,以便它们不会消耗超过节点资源的 75%。

  7. 了解并设置 持续性级别。 对于运行有状态工作负载的节点类型,建议使用银级或以上的持久性等级,且在生产环境中是必需的。

  8. 了解并选取节点类型的 可靠性级别 。 建议使用银级或更高的可靠性,并且需要用于生产。

  9. 对工作负载进行负载测试和缩放测试,以确定群集的 容量要求

  10. 监视服务和应用程序,并生成和存储应用程序日志,并发出警报。 例如,请参阅 向 Service Fabric 应用程序添加日志记录

  11. 基础虚拟机规模集基础结构通过警报(例如,使用 Azure Monitor 日志)进行监视。

  12. 群集始终具有 主要证书和从属证书(以避免锁定)。

  13. 维护单独的群集,用于开发、过渡和生产。

  14. 应用程序升级群集升级 首先在开发和暂存群集中进行测试。

  15. 关闭生产群集中的自动升级功能,并在开发和阶段环境群集中启用自动升级功能(根据需要进行回滚)。

  16. 为服务建立恢复点目标(RPO),并设置 灾难恢复过程 并对其进行测试。

  17. 计划手动或以编程方式 扩展 群集。

  18. 计划 修补 群集节点。

  19. 建立 CI/CD 管道,以便持续测试最新更改。 例如,使用 Azure DevOpsJenkins

  20. 使用 故障分析服务 测试负载下的开发和暂存群集,并引入受控 的混乱

  21. 规划 应用程序扩展

如果您使用 Service Fabric 的 Reliable Services 或 Reliable Actors 编程模型,请核对以下项目:

  1. 在本地开发期间升级应用程序,以检查您的服务代码是否正确处理 RunAsync 方法中的取消令牌,并关闭自定义通信侦听器。
  2. 使用可靠集合时避免 常见陷阱
  3. 在运行负载测试时,监视 .NET CLR 内存性能计数器,并检查垃圾回收或失控堆增长率是否过高。
  4. 维护 Reliable Services 和 Reliable Actors 的脱机备份,并测试还原过程。
  5. 理想情况下,主节点类型虚拟机实例的数量应等于集群可靠性级别的最小值。当出现以下条件时,可以暂时超过该级别的最小值:例如在垂直扩展主节点类型虚拟机规模集 SKU 时。

可选最佳做法

虽然上述列表是进入生产的先决条件,但还应考虑以下项目:

  1. 服务结构运行状况模型集成,以扩展内置的运行状况评估和报告功能。
  2. 部署一个自定义监视程序,用于监视应用程序并报告 负载 以用于 资源均衡

后续步骤