自动化和管理各种任务

时间:2013-12-16 12:47:10

标签: scripting automation build-system

我正在寻找非常通用的自动化/任务执行工具的建议。范围有点介于脚本,make之类的构建系统和Ansible或Puppet等编排工具之间。我能做的最好的事情是描述我相当模糊的“要求”,并希望找到别人如何解决这些问题的线索。很抱歉有很长的描述,我想我真的不知道我想让他做什么解决方案。我一直在从SO编程答案中获利,但我不完全确定我的开放式问题是否可以接受。

- 我们在公司环境中担任数据分析师/系统验证员。我们执行一系列不同的任务,并与许多不断变化的系统进行交互。我们所做的每一个小步骤都可以说是平凡/轻松,但只有在重复输入或组合略有不同的大量迭代时才能形成更大的图像。这有点像在干草堆中寻找针,但具体问题每次都略有不同。这使得很难使用需要更多结构的普通脚本或自动化工具。但是,在没有大团队的情况下半手工做事不允许我们涵盖我们想要/需要的所有分析/案例。

举一个应用示例:典型的任务可能涉及在供应商系统中设置一个大的计算,从Web服务器中提取它们的ASCII输出并解析它。然后我们将从一组配置文件和数据库中获取原始输入数据。这是我们在C ++中使用的一些本土复制工具/模型。然后扫描系统的结果和我们的复制以寻找有趣的异常值(例如回归测试),并且只上传该子集供人类分析人员调查,很好地呈现在Excel表格中。

我们可以轻松地手工完成所有这些事情,一次性或可能使用临时工具/脚本。我们不能反复做这么微小的不同设置。我们似乎需要一个用于'常见任务'的库,它只是通过一些输入来专门化(例如,任务它下载时间序列和扫描异常值 - 参数将是db访问/登录,并且可能是定义异常值的参数上下文)。然后我需要将这些任务链接在一起,使复杂的任务可以重复,并且很容易从原子步骤构建。

我没有发现任何真正做过这样的事情。似乎有专门的脚本或工具可用于每个可用的利基,但不是结合我需要执行的所有不同任务的东西。

到目前为止,我一直在玩一个极简主义的sqlite数据库来控制一组python'脚本'/包装器。这些脚本从数据库中获取输入参数,并根据数据库进行链接/管道传输。脚本将结果写回数据库,主要是纯文本和浮点数/整数。这种数据库接口非常容易出错并且对人类来说很复杂;我们的想法是让(模板)脚本编写(具体/参数化)脚本到数据库执行,就像在执行之前自行滚动一样。不确定这是否是一个聪明的想法,但数据库正在驱动脚本,这些构建块脚本之间没有太多的交互;而不是让传统的一堆脚本相互调用并将一些数据转储到db中。到目前为止,我们有许多独立的包装器(脚本)可以与所有系统进行通信并完成工作,真正缺少的是将它们捆绑在一起控制它。

我感兴趣(显然)更多的数据/流量透明度,可重复性以及将小型程序链接到更大的单元,而不是加速或扩展到更大的数据集。所有较重的提升要么在我们交互的系统中完成,要么委托给从这些python脚本调用的C ++。这不是一个具有更高稳定性和固定目标的生产系统,而是一个灵活的分析/调查助手。

我真的希望此处的某位人员之前遇到的问题严重限制了我们的工作效率,我们可以放弃您的解决方案或想法。

1 个答案:

答案 0 :(得分:0)

我建议您考虑Software Test Automation Framework)。它是开源,分布式和跨平台的。它几乎可以在任何平台上运行任何任务。它有各种插件“服务”可用于特定目的,或者您可以创建自己的自定义服务。您还可以通过脚本()扩展功能。它也有很好的文档记录,并且通过IBM的用户论坛得到了相当好的支持。