通过优化提高效率
- 15 分钟
|
|
|---|
根据各种约束,初始阶段设置的目标基于合理的用户体验级别。 值得重新审视和调整这些目标,使体验变得更好。 为此,你需要清楚地了解系统的使用方式、更改方式以及平台或技术是如何演变的。 监视、优化、测试和部署的周期是一个持续的过程。
优化效率时,工作负荷可以使用更少的资源来运行。 这可能会使你拥有额外的容量,这将打开几个选项。 可以使用容量使系统更可靠、降低系统以节省成本或支持新产品功能,而无需更多基础结构。
当系统开始更高效地运行时,最好设置新的性能目标,并确保跟上这些目标。
示例场景
Contoso 的 HR 工程团队负责与公司的 HR 信息系统的自定义集成。 这些集成包括工资财务、政府劳动法报告招聘数据,以及其他一些集成。 其中大多数集成以 C# 编写的 Azure 函数运行,这些函数托管在公司数据中心的已启用 Azure Arc 的 Kubernetes 群集上。 总的来说,作业运行顺利,但一些工作给团队带来了一些压力,因为处理延迟有时意味着人力资源主管不会及时获得重要数据。
确定性能优化的优先级
通过处理非功能要求和改进功能领域,留出专注的时间来提高性能。 这项工作的主要重点领域包括资源使用情况、代码质量、数据保留和数据库查询。
通过采用此方法,可帮助你创建真正重视以性能为中心的改进的文化。 它还使负责保持性能趋势的团队保持最佳状态,并确保应用程序不断变得更好。
Contoso 的挑战
团队相当废旧,他们的积压工作挤满了。 大多数情况下,在构建和启动集成时,它们采用快速的转机方法。 他们编写代码、部署代码,然后直接跳转到下一个任务。
团队经常被拉入关键事件支持,因为高级领导不能总是及时获取所需的数据。
团队中的每个人都知道需要更改,但他们还没有将其作为优先事项。
应用方法和成果
该团队现在为每个冲刺预留了20%,以解决技术债务问题,并专注于其他性能改进。 这给了他们专注于关键领域的空间,并取得进展,它真正计数。
通过采用这种方法,团队能够指定解决性能问题所要解决的时间,这些问题一直在减缓数据处理速度。
寻找设计改进
通过引入新的设计模式和组件来改进体系结构,这些模式和组件可以提高性能,尤其是在由于时间线或预算限制紧张而未考虑之前考虑的方式。
新的设计模式和组件可以帮助微调系统,从而获得更流畅的用户体验,并随着时间的推移节省资金。 例如,添加缓存或引入内容分发网络可能会有明显的区别。
Contoso 的挑战
- 该团队已使用 Azure Functions 和基于触发器的流几年,并且他们没有花时间来调查其他选项。
应用方法和成果
团队开始探索使用 Azure Functions 的其他方法,并发现持久函数支持扇出模型,这有助于他们并行运行特定的工资任务。
团队将此模式添加到其设计目录以供将来使用。 这也是一个很好的提醒,提高性能不仅仅是清理代码或数据。 有时,这是关于完全重新思考这种方法。
分析遥测和趋势
使用监视工具深入了解历史趋势,并查找哪些流和代码路径确实可以使用性能提升。 应用程序性能监视(APM)和探查器等工具非常适合此任务。 它们可帮助你查找系统中可能正在减慢速度的作热路径和其他点。
找到不断引起麻烦的领域后,团队可以集中精力,在那里它将产生最大的差异。
Contoso 的挑战
该团队已使用 Application Insights 检测所有功能。
它们主要使用 Application Insights 解决中断问题以及日志记录接收器。
从历史上看,他们依靠高级领导提供的反馈来找出改进工作的重点。
应用方法和成果
虽然反馈很重要,但团队注意到 Application Insights 实际上在查找其监视的应用中的热点方面做得非常好。
团队开始利用此功能,由于他们已经知道哪些流最重要,因此,20 个% 时间中,它已成为他们关注技术改进和效率的一个真正有用的部分。
使用 Application Insights,团队能够主动识别有风险的集成,并在领导团队成员遇到问题之前对其进行处理。