我正在寻找一个非常通用的自动化/任务执行工具的建议。范围有点介于脚本、构建系统(如make )和编排工具(如Ansible或Puppet )之间。我所能做的最多就是描述我相当模糊的“需求”,并希望能找到其他人是如何解决这些问题的线索。对于冗长的描述,很抱歉,我想我真的不知道我到底想要他的解决方案做什么。我一直从编程回答中获益,但我不能完全确定我的开放式问题在这里是否可以接受。
--我们在企业环境中担任数据分析师/系统验证员。我们执行一系列不同的任务,并与许多不断变化的系统进行交互。我们所做的每一小步都可以说是平凡/简单的,但只有在重复大量具有略有不同的输入或组合的迭代时,才能形成更大的图景。这有点像在干草堆里找针,但具体的问题每次都略有不同。这使得很难使用普通的脚本或自动化工具,因为它们需要更多的结构才能工作。但是,在没有大型团队的情况下半手动地做事情并不能让我们涵盖我们想要/需要的所有分析/案例。
举一个应用的例子:一个典型的任务可能涉及在供应商系统中设置一个大的计算,从web服务器中提取他们的ASCII输出并解析它。然后,我们将从一组配置文件和数据库中提取原始输入数据。这被引入到我们在C++中的一些自主开发的复制工具/模型中。然后,系统的结果和我们的复制都会被扫描,以寻找有趣的异常值(例如,回归测试),并且只有这个子集被上传给人类分析师进行调查,并在Excel工作表中很好地呈现出来。
我们可以很容易地手动完成所有这些事情,只需一次,也可以使用特别的工具/脚本。我们只是不能永远重复这么多细微差别的设置。我们似乎需要一个库,用于仅由几个输入(例如,任务它下载时间序列并扫描异常值-参数将是数据库访问/登录,以及可能定义该上下文中的异常值是什么的参数)专门化的“常见任务”。然后,我需要将这些任务链接在一起,以使复杂的任务可重复且简单地从原子步骤构建。
我还没有找到真正能做到这一点的东西。似乎每个利基都有专门的脚本或工具,但没有结合我需要执行的所有不同任务的东西。
到目前为止,我一直在玩一个极简主义的sqlite数据库,它控制着一组python 'scripts'/wrappers。这些脚本从数据库中获取输入参数,并且它们是基于数据库链接/管道的。脚本将其结果写回数据库,主要是以纯文本和浮点数/整数的形式。这种db接口对于人类来说是非常容易出错和复杂的;其想法是让(模板)脚本向db写入(具体的/参数化的)脚本以供执行,就像在执行之前滚动自己一样。我不确定这是不是一个聪明的想法,但是数据库正在驱动脚本,而不是在这些构建块脚本之间进行太多的交互;而不是让传统的脚本相互调用并将一些数据转储到数据库中。到目前为止,我们有很多单独的包装器(脚本)来与所有系统对话并完成工作,真正缺少的是将它们捆绑在一起并控制它的东西。
我(显然)更感兴趣的是数据/流的透明性、可重复性和将小程序链接到更大的单元,而不是速度或扩展到更大的数据集。所有繁重的提升要么在我们交互的系统中完成,要么被委托给从这些python脚本调用的C++。这不是一个具有更多稳定性和固定目标的生产系统,而是一个灵活的分析/调查助手。
我真的希望这里有人之前遇到过这个问题,严重地限制了我们的生产力,我们可以借鉴你的解决方案或想法。
发布于 2013-12-19 02:52:33
我建议你考虑一下staf (Software Test Automation Framework)。它是开源的、分布式的、跨平台的。它可以在任何平台上运行任何任务。它有各种各样的插件“服务”可用于特定的目的,或者你可以创建你自己的自定义服务。您还可以通过脚本(jython)来扩展该功能,它也有很好的文档记录,并且通过用户论坛得到了相当好的支持。
https://stackoverflow.com/questions/20611313
复制相似问题