生产就绪情况核对清单

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

生产先决条件

  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 DevOps 或 Jenkins

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

  21. 规划 应用程序扩展。

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

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

可选最佳做法

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

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

后续步骤