生产就绪情况核对清单

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

生产的先决条件

  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. 理想情况下,主 NodeType 虚拟机实例计数应该等于群集可靠性层的最小值;适于超过层最小值的条件包括:在垂直缩放主 NodeTypes 虚拟机规模集 SKU 时临时超过。

可选的最佳做法

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

  1. 插入 Service Fabric 运行状况模型以扩展内置运行状况评估和报告。
  2. 部署一个监视应用程序并报告负载以实现资源均衡的自定义监视程序。

后续步骤