【问题标题】:Automatisation&Piping of diverse tasks各种任务的自动化和管道化
【发布时间】:2013-12-16 12:47:09
【问题描述】:

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

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

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

我们可以一次性轻松地手动完成所有这些事情,也可以使用临时工具/脚本。我们只是不能在如此细微的不同设置中重复执行此操作。我们似乎需要一个用于“常见任务”的库,该库仅由一些输入专门化(例如,任务它下载时间序列并扫描异常值 - 参数将是数据库访问/登录,也许是定义异常值的参数)语境)。然后我需要将这些任务链接在一起,以使复杂的任务可重复且易于从原子步骤构建。

我还没有发现任何真正做这样的事情。似乎每个领域都有专门的脚本或工具,但没有组合我需要执行的所有不同任务的东西。

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

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

我真的希望这里有人以前遇到过严重限制我们生产力的问题,我们可以捎带您的解决方案或想法。

【问题讨论】:

    标签: scripting automation build-system


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-10-18
      • 2022-01-13
      • 2018-09-30
      • 2011-06-20
      • 1970-01-01
      • 2020-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多