应用程序和群集是否准备好接收生产流量? 运行和测试应用程序和群集并不一定意味着它已准备好投入生产。 通过完成以下清单,使应用程序和群集保持平稳运行。 强烈建议检查所有这些项目。 显然,可以选择对特定行项使用替代解决方案(例如,你自己的诊断框架)。
生产先决条件
Azure Service Fabric 最佳做法: 应用程序设计、 安全性、 网络、 容量规划和缩放、 基础结构即代码以及 监视和诊断。
如果使用 Reliable Actors 编程模型,并且需要安全的服务间通信,请配置 FabricTransport 设置。
对于具有 20 个以上的核心或 10 个节点的群集,请为系统服务创建专用的主节点类型。 添加 放置约束 以保留系统服务的主节点类型。
将 D2v2 或更高版本的 SKU 用于主节点类型。 建议选择至少具有 50 GB 硬盘容量的 SKU。
在容器和服务上添加资源约束,以便它们不会消耗超过节点资源的 75%。
了解并设置 持续性级别。 对于运行有状态工作负载的节点类型,建议使用银级或以上的持久性等级,且在生产环境中是必需的。
了解并选取节点类型的 可靠性级别 。 建议使用银级或更高的可靠性,并且需要用于生产。
对工作负载进行负载测试和缩放测试,以确定群集的 容量要求。
监视服务和应用程序,并生成和存储应用程序日志,并发出警报。 例如,请参阅 向 Service Fabric 应用程序添加日志记录。
基础虚拟机规模集基础结构通过警报(例如,使用 Azure Monitor 日志)进行监视。
群集始终具有 主要证书和从属证书(以避免锁定)。
维护单独的群集,用于开发、过渡和生产。
关闭生产群集中的自动升级功能,并在开发和阶段环境群集中启用自动升级功能(根据需要进行回滚)。
为服务建立恢复点目标(RPO),并设置 灾难恢复过程 并对其进行测试。
计划手动或以编程方式 扩展 群集。
计划 修补 群集节点。
建立 CI/CD 管道,以便持续测试最新更改。 例如,使用 Azure DevOps 或 Jenkins
规划 应用程序扩展。
如果您使用 Service Fabric 的 Reliable Services 或 Reliable Actors 编程模型,请核对以下项目:
- 在本地开发期间升级应用程序,以检查您的服务代码是否正确处理
RunAsync方法中的取消令牌,并关闭自定义通信侦听器。 - 使用可靠集合时避免 常见陷阱 。
- 在运行负载测试时,监视 .NET CLR 内存性能计数器,并检查垃圾回收或失控堆增长率是否过高。
- 维护 Reliable Services 和 Reliable Actors 的脱机备份,并测试还原过程。
- 理想情况下,主节点类型虚拟机实例的数量应等于集群可靠性级别的最小值。当出现以下条件时,可以暂时超过该级别的最小值:例如在垂直扩展主节点类型虚拟机规模集 SKU 时。
可选最佳做法
虽然上述列表是进入生产的先决条件,但还应考虑以下项目:
- 将服务结构运行状况模型集成,以扩展内置的运行状况评估和报告功能。
- 部署一个自定义监视程序,用于监视应用程序并报告 负载 以用于 资源均衡。
后续步骤
- 部署 Service Fabric Windows 群集
- 部署 Service Fabric Linux 群集
- 了解 Service Fabric 应用程序生命周期。