我正在寻找更好的基础设施设置来管理和部署定期执行的内部开发的应用程序。
当前的设置成长为无法监控的异构应用程序集合,只能直接在调度程序 VM 上执行。
现在的情况:
- 视窗环境
- 一堆用 PowerShell 和 C# 应用程序编写的作业,其中一些包含相当复杂的逻辑,一些执行ETL操作
- 作业配置为由默认 Windows 调度程序触发并在专用 VM 上运行的服务或控制台应用程序
- 特定应用程序登录到日志文件(某些应用程序)
- 通过 app.config 文件对每个 C# 控制台应用程序进行配置
- Windows 调度程序不提供漂亮的 Web-GUI 来监视和监视作业执行。
理想情况:
- 中央监控:所有作业的概览(运行时、故障)
- 通过 Web 前端手动触发
- 通过 API 触发作业执行,可以检查执行是否成功。
- 中央作业配置(连接字符串、配置参数)
约束:
- 无云:由于内部限制,软件必须驻留在我们自己的网络中。我们公司拥有一个足够尺寸的服务器机架,用于在内部托管所需的服务器。
考虑的选项
Azure Web 作业
根据我的阅读,这正是我正在寻找的解决方案。由于我们的“无云”政策,我们需要在内部托管我们自己的Azure Pack,这可能需要相当多的努力来设置,并且对于这些要求来说可能是技术上的过度杀伤力。
自写Web-API项目
另一种选择是编写一个包含所有作业功能的专用 Web-API 项目,具有一个中央配置并将作业功能公开为 Web-API 方法并使用 Quartz.net 进行调度。
但是,如果可能的话,我更愿意使用一些标准软件,因此我将不负责维护我们基础设施的另一个核心部分。
你会选择哪个选项?或者有没有更好的选择?