自动提高效率
- 15 分钟
|
|
|---|
工作负荷可能具有涉及团队成员执行平凡、重复且耗时的任务的过程,这些任务实际上不需要人类智力。 如果它们经常发生,则可能需要很长时间,尤其是在工作负荷增长时。 此外,手动步骤通常意味着更多的错误机会。
自动执行这些任务可节省时间、降低工作量和成本,并帮助避免错误。
示例方案
Contoso University 构建了一个 Web 应用,该应用位于 Azure 中,并支持学生和教职员工在线学习。
它基于 Azure 应用服务、Azure SQL 数据库、Microsoft Entra ID、Azure Key Vault 和 Azure DevOps 构建。
自动执行流
基于复杂性、工作量、频率、准确性、时间线和寿命评估所有工作流。 使用该信息来确定哪些工作流值得自动执行。 首先,工作流将为你提供最大的回报。 删除任何没有良好用途的工作流。 或者确保他们实际上值得人们花在他们身上的时间。
通过这种方法,你可以释放团队专注于更高的价值工作,从而提高工作效率和一致性。
保留工作流列表,确保自动执行正确的任务。 并删除不必要的任务,使工作负荷更简单,并减少错误的可能性。
Contoso 的挑战
- Contoso University 的团队正在寻找通过自动执行重复、耗时、容易出错或低值的手动任务来提高作过程的方法。 自动化可以释放一些团队的时间和资源,以便进行更具战略性的工作,提高服务的质量和可靠性,并可能降低成本。
应用方法和结果
为了开始作,团队汇集了一系列可能适合自动化的手动任务。 然后,他们使用任务有多复杂、发生频率、需要准确和及时等条件浏览列表,以及任务需要多长时间。 他们找出了先处理哪些任务。 他们还研究了购买自动化工具还是长期构建一些自定义内部自定义工具是有意义的。
团队完成分析后,他们决定专注于自动执行用户帐户管理。 这是一项常见任务,包括在学生注册、重置密码和删除某人离开时删除帐户时设置新帐户。
通过自动执行许多用户帐户任务,团队释放了足够的时间,最终启动已暂停的其他作改进。
自动化设计
设置工作负载组件,以便从一开始就准备好实现自动化。
如果在设计系统时跳过自动化,则会自行设置重复任务、进度缓慢和技术债务。
Contoso 的挑战
该应用具有丰富的交互式 UI,其中包含多个动画和移动部件。 自第一天起,开发团队一直在手动测试所有内容。 它们未使用任何自动化 UI 测试工具。
最近,团队一直在尝试自动执行 UI 测试,但它并不顺利。 某些 UI 页面过于动态且不可预知,并且无法可靠地标识测试用例需要与之交互的一些字段。
应用方法和结果
团队决定使其 UI 更易于测试和更易于访问。 他们分步作,并在构建测试用例时修复每一页。
当他们浏览每个页面时,团队确保每个字段都有唯一标识符,以便测试自动化工具可以轻松找到它们。 他们还遵循辅助功能最佳做法,例如使用适当的 HTML 标记、标签并确保所有元素都使用键盘导航。 这使得 UI 更易于使用和测试。
随着自动测试的生成,它们会添加到每日测试套件中,以便自动检查每个新生成。 这些检查有助于加快生产发布速度、提高质量并减少开发成本。
确保自动化架构良好
将自动化视为工作负荷的关键部分。 这不仅仅是一个好的功能。 请确保它可以随着工作负荷的增长而缩放。 由于这是一个核心部分,因此它应遵循与系统其余部分相同的最佳做法,例如 Well-Architected 框架的五大支柱。
考虑到安全性和可靠性,构建自动化。 遵循最佳做法有助于避免混乱分散的实现。 只要自动化保持正常运行和安全,工作负载就可以保持平稳运行。
Contoso 的挑战
工作负荷具有专用环境,用于负载和性能测试,该环境设置为与生产紧密匹配。 为了保持现实,团队每周一都会重置环境,并在生产数据库的新副本中加载,所有敏感数据都匿名和屏蔽。
数据库加载脚本由未很好地记录或遵循其他最佳做法的前开发人员编写。 脚本运行缓慢,不会正常处理错误或故障。
现在生产数据库已发展,脚本会花费更长的时间,并且更频繁地失败。 这一直在保持测试运行,并导致开发计划出现延迟。
应用方法和结果
团队决定是时候让此工具重新开始,以便它与主应用中的标准开发实践相配合。 他们将使用可靠的现代开发做法,例如强大的安全性和智能错误处理。
性能得到了提升,并重新设计了该功能,以确保无论生产数据集有多大,它都以一致的时间运行。
团队将自动化视为核心应用程序代码库的相同级别,并遵循 Well-Architected 框架原则和建议。 这种方法使他们的工作负荷在性能、成本和作方面更加可靠、安全且高效。