我正在寻找一个更好的基础设施设置来管理和部署内部开发的定期执行的应用程序。
当前的设置变成了一个不可监控的异构应用程序集合,它只能直接在调度程序VM上执行。
现状:
- Windows环境
- 用PowerShell和c#编写的一堆作业,其中一些包含相当复杂的逻辑,一些执行ETL-Operations
- 配置为服务或控制台应用程序的作业,由默认的Windows调度程序触发,并在专用VM上运行
- 应用程序特定的日志记录到日志文件(某些应用程序)
- 通过app.config文件配置每个c#控制台应用程序
- Windows调度程序没有提供很好的Web-GUI来观察和监视作业的执行。
理想情况:
- 中央监控:所有作业(运行时,失败)的概述
- 通过web前端手动触发
- 通过API触发作业执行,并可以检查执行是否成功。
- 中心作业配置(连接字符串、配置参数)
- 无云:由于内部限制,软件必须驻留在我们自己的网络中。我们公司拥有一个足够大的服务器机架来托管内部所需的服务器。
考虑选项/h2>
Azure WebJobs
从我所读到的,这将是我正在寻找的解决方案。由于我们的"无云"策略,我们需要在内部托管我们自己的Azure包,这可能需要相当多的努力来设置,并且对于这些要求可能是技术上的过度。
自写Web-API项目
另一个选择是编写一个专用的Web-API项目,它包含所有的作业函数,有一个中心配置,并将作业函数公开为Web-API方法,并使用Quartz.net进行调度。
然而,如果可能的话,我更愿意使用一些标准的软件,这样我就不会负责维护我们基础设施的另一个核心部分。
你会选择哪个选项?或者有更好的选择吗?
我想你要找的是所谓的主数据管理,所以你应该检查
- http://www.talend.com/
- https://www.informatica.com/
- http://www.tibco.com/