Инфраструктура заданий Windows C#

Я ищу лучшую настройку инфраструктуры для управления и развертывания приложений, разработанных внутри компании, которые выполняются периодически.

Текущая установка превратилась в неконтролируемую разнородную коллекцию приложений, которые могут выполняться только непосредственно на виртуальной машине планировщика.

Текущая ситуация:

  • Среда Windows
  • Множество заданий, написанных в PowerShell и в виде приложений C#, некоторые из которых содержат довольно сложную логику, некоторые выполняют ETL-операции.
  • Задания, настроенные как сервисные или консольные приложения, запускаемые планировщиком Windows по умолчанию и работающие на выделенной виртуальной машине.
  • Вход в лог-файлы для конкретных приложений (некоторые приложения)
  • Конфигурация через файл app.config для каждого консольного приложения C#
  • Планировщик Windows не предоставляет удобный веб-интерфейс для просмотра и мониторинга выполнения заданий.

Идеальная ситуация:

  • Централизованный мониторинг: обзор всех заданий (при запуске, сбоях)
  • Запуск вручную через веб-интерфейс
  • Инициировать выполнение задания через API с возможностью проверки успешности выполнения.
  • Конфигурация централизованного задания (строки подключения, параметры конфигурации)

Ограничения:

  • Нет облака: из-за внутренних ограничений программное обеспечение должно находиться внутри нашей собственной сети. Наша компания имеет достаточно габаритную серверную стойку для размещения необходимых серверов внутри компании.

Рассматриваемые варианты

Веб-задания Azure

Из того, что я читал, это было бы именно тем решением, которое я ищу. Из-за нашей политики «отсутствия облака» нам потребуется разместить собственный Azure Pack внутри, что может потребовать некоторых усилий для настройки и, возможно, является техническим излишеством для этих требований.

Самостоятельно написанный проект Web-API

Другим вариантом было бы написать специальный проект веб-API, который содержит все функции работы, имеет одну центральную конфигурацию и предоставляет функции работы как методы веб-API и использует Quartz.net для планирования.

Однако, если возможно, я бы предпочел использовать стандартное программное обеспечение, поэтому я не буду нести ответственность за поддержку еще одного центрального элемента нашей инфраструктуры.

Какой вариант вы бы выбрали? Или есть лучшие альтернативы?


person rstdev    schedule 16.09.2016    source источник


Ответы (1)


Я думаю, что вы ищете так называемое управление мастер-данными, поэтому вам следует проверить

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

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

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

person Zvi Uretzky    schedule 16.09.2016
comment
Я познакомлюсь с этими инструментами поближе. Судя по первому обзору, все они основаны на Java. Хотя они определенно решают некоторые аспекты (ETL, консолидация данных), я предполагаю, что их нелегко использовать в качестве своего рода веб-API для функций, реализованных в .net. Почти весь наш внутренний код выполняется на языках .net, поэтому это остается для нас строгим требованием. - person rstdev; 16.09.2016