返回介绍

14.2 自动化步骤

发布于 2024-01-27 21:43:11 字数 2439 浏览 0 评论 0 收藏 0

因为自动化从一个清晰简单的目标开始,所以自动化的步骤应该同样清晰和简单。文档化下面的问题对开始自动化特别有帮助(通过列表、白板、图纸或故事板)。

· 任务何时开始?

· 这个任务是否有时间限制或最大长度?如果有的话,什么时候结束?

· 对这个任务来说,有哪些必需的输入?

· 对这个任务来说,什么是成功或部分成功?

· 如果任务失败,应该发生什么 ?

· 任务产生或提供什么?面向谁?以何种方式?

· 在任务结束后应该发生什么(如果有的话)?

 如果能够回答其中 5 个或更多的问题,你就可以开始自动化。如果不能,在你开始自动化之前,需要做更多的研究和说明。如果要自动化之前从来没有做过的事情,或者不是经常做的事情,在执行任务时尝试文档化它,然后确定你是否能够回答上述问题。如果你的项目太大或太模糊,尝试将它分解为小任务,并且自动化其中的几个。或许你的任务包括一个报告,需要下载两个数据集,进行清洗和分析,然后根据输出的不同,发送结果到不同的群组。你可以分解这项任务为一些子任务,自动化每一个步骤。如果其中任何一个子任务失败了,停止执行下面的任务,警报负责维护脚本的人员,这样可以研究它,并且在 bug 或问题解决后重新执行。

所以,自动化的基本步骤如下(注意,根据任务类型的不同,步骤会有变化)。

(1) 定义你的问题集合,将其分解为更小的工作块。

(2) 精确地描述每一个子任务的输入是什么、输入做什么以及需要什么来确认任务完成。

(3) 确定哪里可以得到输入,以及何时运行任务。

(4) 开始编码你的任务,用真实或样例数据测试。

(5) 整理你的任务和脚本,添加文档。

(6) 添加日志,聚焦于调试错误和记录成功的任务。

(7) 提交你的代码到仓库中,手动测试它。按照需要做出修改。

(8) 通过将手动任务替换为自动化任务,为自动化准备好脚本。

(9) 在任务开始自动化后,关注日志和警报。修正所有的错误和 bug。更新你的测试和文档。

(10) 为日志中的错误检查频率制订一个长期计划。

自动化的第一个步骤永远是更好地定义你的任务和子任务,让它们足够小,这样可以轻易地完成它们,且它们的失败或成功是确定的。

后面的几个步骤同我们在全书中使用的处理过程类似。你应该确定怎样开始用 Python 解决问题。搜索库或者工具,帮助你修复问题或完成请求,然后开始编码。一旦脚本开始工作,你会想要使用一些不同的可用数据集或输入测试它。在成功的测试之后,简化和文档化它。将其上传到一个远程仓库(Bitbucket 或 GitHub)中,这样随着时间的推移你可以记录修改和额外的信息。

 一旦你完成了脚本,首先手动运行它(而不是通过自动化的方式)。当新的数据就位,或者到了运行它的时候,手动执行,持续观察程序的输出。可能会有隐藏的错误存在,也可能你需要添加额外的日志和调试信息。

根据满足需求的自动化类型,你可能创建了一个简单的定时任务,脚本按特定的时间间隔执行(本章后文会介绍关于定时任务的知识)。你可能需要稍微修改脚本,让它可以通过使用参数变量、数据库或者系统上特定的文件自主运行。当它运行时,你可能会添加它到任务队列来管理它。无论哪一种自动化合适,你的工作都还没有结束。

 当你的脚本第一次自动化时,在它每次运行时花时间来检查它是很必要的。查看日志并监控进程。你可能会找到小 bug,然后修改它们。再一次更新所有必要的日志和文档。

在大约经过了 5 次成功或日志记录下来的失败后,你可以减少人工检查的次数。然而,在每月或者每季度使用 grep(http://www.thegeekstuff.com/2009/03/15-practical-unix-grep-command-examples/)查看日志,看一下发生了什么,仍然是一个很好的主意。如果你正在使用一个日志聚合器,你完全可以自动化这一步骤,并且让这一任务发送错误和警报报告。

自动化不是小进程,但是早早投入时间和精力是值得的。一个运行良好的自动化任务集合需要一些时间来完成,但是结果通常比那些需要从始至终关注、修改和监控的一次性脚本要好。密切关注并花一些时间正确地自动化你的脚本。之后才真正投入到手头接下来的工作当中,而不是一直将你的一部分工作与监控和管理难以驾驭的任务相关联。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文