Windows c#作业基础架构

时间:2016-09-16 07:51:48

标签: c# scheduler azure-webjobs webjob

我正在寻找更好的基础架构设置来管理和部署定期执行的内部开发的应用程序。

当前的设置变成了一个不可靠的异构应用程序集合,只能直接在调度程序VM上执行。

现状:

  • Windows环境
  • 以PowerShell编写的一堆作业和一些包含相当复杂逻辑的C#应用​​程序,其中一些执行 ETL -Operations
  • 作业配置为由默认Windows计划程序触发并在专用VM上运行的服务或控制台应用程序
  • 特定于应用程序的日志记录(某些应用程序)
  • 通过每个C#控制台应用程序的app.config文件进行配置
  • Windows调度程序无法提供良好的Web-GUI来监视和监视作业执行情况。

理想情况:

  • 中央监控:所有工作概况(运行时,故障)
  • 通过网络前端手动触发
  • 通过API 触发作业执行,可以检查执行是否成功。
  • 中央作业配置(连接字符串,配置参数)

约束:

  • 无云:由于内部限制,软件必须驻留在我们自己的网络中。我们公司拥有足够尺寸的服务器机架,用于在内部托管所需的服务器。

考虑选项

Azure WebJobs

据我所知,这将是我正在寻找的解决方案。由于我们的没有云"策略我们需要在内部托管我们自己的 Azure Pack ,这可能需要付出相当大的努力来设置,并且可能是对这些要求的技术性过度。

自编Web-API项目

另一种选择是编写一个包含所有作业函数的专用Web-API项目,具有一个中心配置,并将作业函数公开为Web-API方法,并使用Quartz.net进行调度。

但是,如果可能的话,我更喜欢使用一些标准软件,因此我不负责维护我们基础设施的另一个核心部分。

您会选择哪个选项?还是有更好的选择吗?

1 个答案:

答案 0 :(得分:1)

我认为你所寻找的是所谓的主数据管理,所以你应该检查

  1. http://www.talend.com/

  2. https://www.informatica.com/

  3. http://www.tibco.com/