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

优化操作任务的建议

适用于此 Azure Well-Architected 框架性能效率清单建议:

PE:10 优化操作任务。 监视软件开发生命周期和其他日常操作对工作负载性能的影响并将其降至最低。 这些操作包括病毒扫描、机密轮换、备份、重新编制数据库索引和部署。

本指南介绍优化操作任务的建议。 优化操作任务是最大程度地减少在路由工作负载操作过程中执行的任务的影响的过程。 操作活动使用与工作负荷本身相同的计算资源。 如果不考虑操作任务的影响,可能会导致工作负荷错过其性能目标。 它还会对客户工作负荷的性能产生负面影响。

定义

术语 定义
蓝绿部署 一种部署策略,它使用两个相同的环境,控制流量流向新部署 (绿色部署) 。
重新生成数据库索引 删除并重新创建索引的维护活动。
数据库索引重组 优化当前数据库索引的维护活动。
数据库架构 数据库的一般结构及其与其他数据的关系。
部署槽位 Azure 应用服务的一项功能,使你能够使用自己的主机名部署实时应用。
就地升级 升级组件或应用程序而不替换组件或应用程序或将其迁移到新环境的过程。
基础结构即代码 (IaC) 用于定义和部署基础结构的描述性模型,包括网络、虚拟机、负载均衡器和连接拓扑。

关键设计策略

你需要采取措施来降低软件开发生命周期和其他常规操作对工作负载性能的影响。 目标是确保常规操作(如病毒扫描、机密轮换、备份、索引优化 (重组或重新生成) 和部署)不会显著降低工作负荷的性能。

操作任务的帐户

设置性能目标时,请务必考虑操作任务。 通过将例行任务、常规任务和临时任务合并到性能目标中,可以确保工作负载高效运行。 若要考虑性能目标中的操作任务,请考虑以下要点:

  • 确定操作任务。 确定并包括性能目标中的相关操作任务。 例程任务的示例包括病毒扫描、数据库索引重组、数据库索引重新生成、磁盘或数据库备份、证书轮换、修补操作系统、轮换密码、轮换 API 密钥、渗透测试和生产中的审核评审。

  • 评估性能目标。 评估当前性能目标并对其进行调整,以考虑特定于工作负荷的操作任务。 这样做可确保性能目标与工作负载的操作要求保持一致。

优化部署

优化部署是指优化发布资源和代码的过程,以确保无缝性能和尽量减少中断。 它涉及规划、有效的资源分发,以及在将基础结构即代码 (IaC) 和应用程序代码引入到实时环境之前对其进行全面测试。 部署不足可能会导致工作负荷的速度和效率降低、潜在的资源限制以及操作设置中的用户体验受损。 若要优化部署,请考虑以下策略:

评估可接受的停机时间。 如果可以接受停机时间,则可以实施优先考虑速度和效率的部署策略。 但是,在做出该决定之前,请务必仔细评估停机对业务需求的影响。 另一方面,如果不能接受停机,则需要实施部署策略,以确保工作负载的持续可用性。 请考虑使用蓝绿部署或金丝雀部署等技术,在监视问题时逐步推出工作负载的新版本。 这些策略有助于最大程度地减少停机时间的影响,并确保无缝的用户体验。

按当前实例计数部署。 还应避免导致立即缩放操作的部署。 不应将资源部署到实例计数过低的实时系统中,以强制系统立即执行缩放操作。 例如,基础结构即代码 (IaC) 模板可能与部署时所需的实例数不匹配。 即使当前部署的环境正在运行 8 个实例,它的实例计数也可能为 2。 部署将删除 6 个实例,对性能产生负面影响。

使用蓝绿部署策略。 部署可能会导致服务中断和停机。 若要缓解这些问题,请选择可最大程度地降低性能影响的部署策略,例如蓝绿部署。 这些方法允许在环境之间无缝转换,并降低服务中断的风险。 使用蓝绿部署方法时,有两个单独的环境:蓝色和绿色环境。 如果在绿色环境中检测到任何问题或性能下降,可以轻松回滚到稳定的蓝色环境。 此策略有助于确保停机时间最短,并使你能够保持工作负荷的高级别性能。 若要使用蓝绿方法进行部署,请遵循以下常规步骤:

  • 部署新环境。 将新环境 (绿色) 与现有环境 (蓝色) 与应用程序的更新版本一起设置。

  • 验证新环境。 部署可能会造成延迟并增加响应时间。 请考虑在直接转换之前预热实例。 预热涉及通过模拟类似于生产环境的流量和工作负载来准备新环境,以确保环境已准备好处理预期的负载。 它有助于最大程度地减少对延迟和响应时间的影响。 全面测试和验证新环境,以确保其正常运行并满足性能预期。 测试有助于预热缓存、建立数据库连接,并确保环境已准备好处理预期的负载。

  • 逐渐转移流量。 新环境预热验证后,逐步将生产流量从旧环境 (蓝色) 转移到新环境 (绿色) 。 最初,将一小部分流量定向到绿色环境,并在验证其稳定性和预期的应用程序运行状况后逐渐增加该流量。 可以使用全局负载均衡器或流量管理机制。 通过受控流量转移,可以尽早识别任何性能问题,并在将工作负载完全转换到新环境之前采取纠正措施。

  • 监视和优化。 部署可能使用共享计算资源。 转移流量后,持续监视新环境的性能和运行状况。 进行必要的优化或调整,以确保获得所需的性能和用户体验。

  • 删除旧环境。 成功将所有流量转换为绿色环境后,请从现有连接中删除蓝色环境。 此步骤有助于优化维护旧环境的成本,并确保新环境没有配置偏差。

  • 重复此过程。 对于将来的部署,请反转蓝色和绿色环境的角色。 将更改部署到新的蓝色环境,对其进行验证,协调流量转换,并停用旧的绿色环境。

使用多个生成。 不同类型的生成有助于优化生成时间并确保部署质量。 例如,可以在每次提交代码时触发的持续集成 (CI) 生成。 可以有定期运行自动测试的夜间版本,以及用于部署到生产环境的发布版本。 每种类型的生成都应具有特定用途,例如持续集成、自动测试或生产部署。 部署前对工作负载进行测试和验证有助于在开发过程的早期识别和解决问题或 bug。

考虑功能标志。 在软件开发中使用功能标志来控制应用程序中某些功能的可见性和行为。 通过使用功能标志,开发人员可以启用或禁用特定功能,而无需重新部署应用程序。 功能标志的工作原理是在代码中引入条件逻辑,以确定是应启用或禁用某个功能。 此逻辑可以基于各种因素,例如用户角色、用户首选项或开发团队定义的特定条件。 通过使用功能标志,开发人员可以逐步向一部分用户推出新功能,或者为特定组启用功能以测试 (canary 测试) 。

优化升级

就地升级是升级到现有资源或应用程序。 就地升级可能会暂时减慢或中断工作负荷。 请务必确保升级与工作负载兼容。 在应用升级之前,建议在单独的环境中对其进行测试,以识别任何潜在问题。 提供回滚计划,以防在升级过程中出现任何问题。 在应用升级之前,必须完整备份关键数据和配置。 升级后密切监视升级的系统,以确保一切按预期运行。 如果需要,备份允许还原到良好状态。 应优先安排非高峰时段的升级,以尽量减少对用户和工作负荷性能的影响。 提前通知用户计划内升级,包括预期的停机时间和他们需要采取的任何必要操作。

权衡:等待在非高峰时段执行操作活动可能会影响运营效率。 在非高峰时段让具有适当技能的人员工作可能不太方便。

优化工具

用于文件完整性监视、病毒扫描、入侵检测和其他操作任务的基本工具可能会影响工作负载性能。 它们消耗计算资源,并可能增加延迟和性能开销。 需要测试和了解工具对工作负载性能的影响。 根据测试结果,应微调工具配置、调整扫描频率并重新分配计算资源。 对于病毒扫描,可以创建相关的排除列表,以最大程度地缩短扫描持续时间。

优化数据库操作

优化数据库操作是指优化和微调数据库任务的过程,以确保最大效率和最低资源利用率。 这些操作包括备份、架构更改、性能优化和监视等任务。 高效的数据库操作可加快查询响应速度,减少系统开销,并提供整体更流畅的用户体验。

架构更改涉及修改数据库的结构,例如添加或更改表、列或索引。 这些更改可能需要在部署过程中进行额外的处理和资源利用率,这可能会影响工作负荷的整体性能。 架构更改可能会中断活动查询、索引或事务的性能,或导致数据不可用。

为了尽量减少这些影响,应在非生产环境中规划和测试架构更改。 可以使用各种部署技术来实现架构更新。 还应使用可用的架构更改工具来优化该过程。 存档数据和分区有助于减少架构更改的影响。

优化备份

备份会消耗工作负载资源,例如处理能力、网络带宽和磁盘 I/O。 需要测试和选择一种备份策略,以最大程度地降低这些影响。 如果可以,应在非高峰时段执行备份。 策略应包括增量备份,而不是每次完整备份。 快照的资源消耗量可以低于备份。 应考虑内置平台备份和还原功能,而不是生成自定义解决方案。 需要测试这些选项,并使用可为工作负荷提供最佳性能的组合。

优化监视和调试

过多或实施不当的日志记录、遥测、检测以及分布式跟踪捕获和收集可能会影响性能。 同样,远程调试等便利功能也会影响性能。 你需要测量并了解它们对环境的性能影响。 你不希望这些进程降低性能。 应配置或禁用性能影响大于其优势的任何进程。

Azure 便利化

考虑操作任务Azure DevOps 是一组开发工具和服务,使团队能够有效地规划、开发、测试和交付软件。 它包括版本控制、持续集成和交付、项目管理等功能。

Azure 提供服务到服务集成,可将许多操作任务的影响降到最低。 例如,与 Azure 密钥保管库 集成的服务通常支持无缝证书轮换或机密轮换,从而最大程度地降低对性能的影响。

优化部署:App 服务提供部署槽位。 可以使用部署槽位将代码部署到非生产环境。 可以在两个部署槽之间交换应用内容和配置元素。 例如,可以将应用内容从非生产槽切换到生产槽。

使用 Azure Front Door 和 Azure 流量管理器可以实现 蓝绿部署策略。 某些 Azure 计算服务还支持高级部署策略,例如蓝绿部署。 可以将这些服务与流量转移或实例预热策略相结合,以减轻部署的性能影响。

优化数据库操作Azure SQL 数据库自动执行完整备份、差异备份和事务日志备份。 Azure Cosmos DB 定期自动备份数据。 自动备份不会影响数据库操作的性能或可用性。 Azure Cosmos DB 将备份存储在单独的存储服务中。

优化备份:某些 Azure 数据服务支持时间点恢复和索引编制对性能影响小到无影响。 Azure 备份是可靠且可缩放的基于云的备份解决方案,可用于保护数据和应用程序。 它提供增量备份、压缩和加密等功能,以最大程度地降低备份操作期间对性能的影响。 Azure Site Recovery通过将应用程序复制到辅助位置来帮助保护应用程序。 它提供连续复制和自动故障转移功能,以最大程度地减少备份和灾难恢复操作期间的停机时间和性能影响。

性能效率清单

请参阅完整的一组建议。