适用于此 Azure Well-Architected 框架性能效率清单建议:
PE:10 | 优化操作任务。 监视和最小化软件开发生命周期和其他常规作对工作负荷性能的影响。 这些作包括病毒扫描、机密轮换、备份、重新编制数据库索引和部署。 |
---|
本指南介绍优化操作任务的建议。 优化操作任务是一个将作为路由工作负载操作一部分执行的任务影响降到最低的过程。 作活动使用与工作负荷本身相同的计算资源。 不考虑作任务的影响可能会导致工作负荷错过其性能目标。 它还可能会对客户工作负荷的性能产生负面影响。
定义
术语 | 定义 |
---|---|
蓝绿部署 | 使用两个相同环境并控制到新部署(绿色部署)的流量方向的部署策略。 |
数据库索引重新生成 | 删除并重新创建索引的维护活动。 |
数据库索引重组 | 优化当前数据库索引的维护活动。 |
数据库架构 | 数据库的一般结构及其与其他数据的关系。 |
部署槽位 | Azure 应用服务的一项功能,使你能够使用自己的主机名部署实时应用。 |
就地升级 | 在不替换组件或将组件迁移到新环境的情况下升级组件或应用程序的过程。 |
基础结构即代码 (IaC) | 用于定义和部署基础结构的描述性模型,包括网络、虚拟机、负载均衡器和连接拓扑。 |
关键设计策略
你需要采取措施,以减少软件开发生命周期和其他常规作对工作负荷性能的影响。 目标是确保常规作(如病毒扫描、机密轮换、备份、索引优化(重组或重新生成)和部署不会显著降低工作负荷的性能。
负责运营任务的账户
设置性能目标时,请务必考虑操作任务。 通过将常规任务、常规任务和临时任务合并到性能目标中,可以确保工作负荷高效运行。 为了在性能目标中考虑运营任务,这里有一些关键点需要注意:
确定运营任务 确定并包括绩效目标中的相关操作任务。 例程任务的示例包括病毒扫描、数据库索引重组、数据库索引重新生成、磁盘或数据库备份、证书轮换、修补作系统、轮换密码、轮换 API 密钥、渗透测试和生产审核评审。
评估性能目标。 评估当前的性能目标,并对其进行调整,以考虑特定于工作负荷的作任务。 这样做可确保性能目标与工作负荷的作要求保持一致。
优化部署
优化部署是指优化释放资源和代码的过程,以确保无缝性能和最小的中断。 它涉及在将基础结构即代码(IaC)和应用程序代码引入实时环境之前规划、有效的资源分发和彻底测试。 部署不足可能会导致工作负荷的速度和效率降低、资源可能受到限制以及操作环境中的用户体验受损。 若要优化部署,请考虑以下策略:
评估可接受的停机时间。 如果停机时间是可以接受的,则可以实施优先于速度和效率的部署策略。 但是,在做出该决定之前,请务必仔细评估停机时间对业务需求的影响。 另一方面,如果无法接受停机时间,则需要实施部署策略,确保工作负荷持续可用性。 请考虑使用蓝绿部署或 Canary 部署等技术,在监控过程中逐步推出新版本的工作负载。 这些策略有助于最大程度地减少停机时间的影响,并确保无缝用户体验。
在当前实例计数处部署。 还应避免导致立即缩放运营的部署。 不应将资源部署到实例计数如此之低的实时系统中,以免强制系统立即执行缩放作。 例如,基础结构即代码 (IaC) 模板可能与部署时所需的实例数不匹配。 它的实例数可能为 2,即使当前部署的环境正在运行 8 个实例。 部署将删除六个实例,并对性能产生负面影响。
使用蓝绿部署策略。 部署可能会导致服务中断和停机。 若要缓解这些问题,请选择可最大程度地降低性能影响的部署策略,例如蓝绿部署。 这些方法允许在环境之间无缝转换,并减少服务中断的风险。 使用蓝绿部署方法时,有两个单独的环境:蓝色和绿色环境。 如果在绿色环境中检测到任何问题或性能下降,可以轻松回滚到稳定的蓝色环境。 此策略有助于确保最短的停机时间,并使你能够保持工作负荷的高性能。 若要使用蓝绿方法进行部署,请按照以下常规步骤作:
部署新环境。 将新环境(绿色)与现有环境(蓝色)与应用程序的更新版本一起设置。
验证新环境。 部署可能会引入延迟并提高响应时间。 请考虑在直接转换之前对实例进行预热。 预热涉及通过模拟生产类流量和工作负荷来准备新环境,以确保环境已准备好处理预期的负载。 这有助于最大程度地减少对延迟和响应时间的影响。 全面测试和验证新环境,以确保其正常运行并满足性能预期。 测试有助于预热缓存、建立数据库连接,并确保环境已准备好处理预期的负载。
逐渐转移流量。 新环境预热和验证后,逐渐将生产流量从旧环境(蓝色)转移到新环境(绿色)。 最初,将少量流量定向到绿色环境,并在验证其稳定性和预期应用程序运行状况后逐渐增加。 可以使用全局负载均衡器或流量管理机制。 通过受控流量转移,可以提前识别任何性能问题,并在将工作负荷完全转换为新环境之前采取纠正措施。
监视和优化。 部署可能使用共享计算资源。 在转移流量后持续监视新环境的性能和运行状况。 进行任何必要的优化或调整,以确保所需的性能和用户体验。
删除旧环境。 成功将所有流量转换为绿色环境后,请从现有连接中删除蓝色环境。 此步骤有助于优化维护旧环境的成本,并确保新环境没有配置偏差。
重复此过程。 对于将来的部署,请反转蓝绿环境的角色。 将更改部署到新的蓝色环境,验证更改,管理流量切换,并停用旧的绿色环境。
使用多个生成。 不同类型的生成有助于优化生成时间并确保部署质量。 例如,可以使用每次提交代码时触发的持续集成 (CI) 生成。 可以具有定期运行自动测试的夜间生成,以及用于部署到生产环境的发布版本。 每种类型的构建都应具有特定的用途,例如持续集成、自动化测试或生产部署。 在部署之前测试和验证任务负荷有助于在开发过程中尽早识别和解决存在的问题或 bug。
请考虑功能标志。 在软件开发中使用功能标志来控制应用程序中某些功能的可见性和行为。 通过使用功能标志,开发人员无需重新部署应用程序即可启用或禁用特定功能。 功能标志的工作原理是在代码中引入条件逻辑,以确定是应启用或禁用某个功能。 此逻辑可以基于各种因素,例如用户角色、用户首选项或开发团队定义的特定条件。 通过使用功能标志,开发人员可以逐渐向一部分用户推出新功能,或者为特定组启用功能进行测试(Canary 测试)。
优化升级
就地升级是对现有资源或应用程序的升级。 就地升级可能会暂时减慢或中断工作负荷。 请务必确保升级与工作负荷兼容。 在应用升级之前,建议在单独的环境中对其进行测试,以确定任何潜在问题。 在升级过程中出现任何问题时,请提供回滚计划。 在进行升级之前,完整备份至关重要的关键数据和配置。 在升级后密切监视升级的系统,以确保一切按预期运行。 如果需要,备份允许还原到良好状态。 应优先考虑在非高峰时段计划升级,以尽量减少对用户和工作负荷性能的影响。 提前通知用户计划升级,包括预期的停机时间以及他们需要采取的任何必要作。
权衡:等待在非高峰时段执行运营活动可能会影响运营效率。 在非高峰时段让具有适当技能的人员工作可能不太方便。
优化工具配置
用于文件完整性监视、病毒扫描、入侵检测和其他作任务的基本工具可能会影响工作负荷性能。 它们消耗计算资源,并可以增加延迟和性能开销。 你需要测试和了解工具对工作负荷性能的影响。 根据测试结果,应微调工具配置、调整扫描频率和重新分配计算资源。 对于病毒扫描,可以创建相关的排除列表,以最大程度地减少扫描持续时间。
优化数据库操作
优化数据库作是指优化和微调数据库任务的过程,以确保最大效率和最少的资源利用率。 这些作包括备份、架构更改、性能优化和监视等任务。 高效的数据库作可加快查询响应速度、降低系统开销和整体更流畅的用户体验。
架构更改涉及修改数据库的结构,例如添加或更改表、列或索引。 在部署过程中,这些更改可能需要额外的处理和资源利用率,这可能会影响工作负荷的整体性能。 架构更改可能会中断活动查询、索引或事务的性能,或导致数据不可用。
为了最大程度地减少这些影响,应在非生产环境中规划和测试架构更改。 可以使用各种部署技术来实现架构更新。 还应使用可用的架构更改工具来优化过程。 存档数据和分区有助于减少架构更改的影响。
优化备份
备份使用工作负荷资源,例如处理能力、网络带宽和磁盘 I/O。 需要测试和选择可最大程度地减少这些影响的备份策略。 应在非高峰时段执行备份,以便可以执行备份。 策略应包括增量备份,而不是每次完整备份。 快照的资源消耗量可能比备份要少。 应考虑内置平台备份和还原功能,而不是构建自定义解决方案。 需要测试这些选项,并使用为工作负荷提供最佳性能的组合。
优化监视和调试
过度或实现不当的日志记录、遥测、检测和分布式跟踪捕获和收集可能会影响性能。 同样,远程调试等便利功能也会影响性能。 你需要衡量并了解它们对环境的性能影响。 你不希望这些进程降低性能。 应配置或禁用其性能影响超过其优势的任何进程。
Azure 便利化
对作任务进行会计:Azure DevOps 是一组开发工具和服务,使团队能够高效规划、开发、测试和交付软件。 它包括版本控制、持续集成和交付、项目管理等功能。
Azure 提供服务间的集成,可最大程度地减少许多操作任务的影响。 例如,与 Azure Key Vault 集成的服务通常支持无缝证书轮换或机密轮换,从而最大程度地减少对性能的影响。
优化部署:应用服务提供 部署槽位。 可以使用部署槽将代码部署到非生产环境。 可以在两个部署槽之间交换应用内容和配置元素。 例如,可以将应用内容从非生产槽切换到生产槽。
使用 Azure Front Door 和 Azure 流量管理器可以实现 蓝绿部署策略。 某些 Azure 计算服务还支持高级部署策略,例如蓝绿部署。 可以将这些服务与流量转移或实例变暖策略相结合,以缓解部署的性能影响。
优化数据库作: Azure SQL 数据库 会自动执行完整备份、差异备份和事务日志备份。 Azure Cosmos DB 定期自动备份数据。 自动备份不会影响数据库作的性能或可用性。 Azure Cosmos DB 将备份存储在单独的存储服务中。
优化备份:某些 Azure 数据服务支持对时间点还原和索引的低-无性能影响。 Azure 备份是一种可靠且可缩放的基于云的备份解决方案,可用于保护数据和应用程序。 它提供增量备份、压缩和加密等功能,以最大程度地减少备份作期间对性能的影响。 Azure Site Recovery 通过将应用程序复制到辅助位置来帮助保护应用程序。 它提供连续复制和自动故障转移功能,以最大程度地减少备份和灾难恢复作期间的停机时间和性能影响。
管理业务连续性和灾难恢复:还可以使用 Azure 业务连续性中心 通过统一的 Web 界面简化备份和灾难恢复管理,以配置备份、设置保护策略、监视作以及查看不同环境中的配置。
相关链接
性能效率清单
请参阅完整的建议集。