У меня есть еженедельный процесс, который я хочу автоматизировать в Azure. Общий процесс состоит из около 5 отдельных подпроцессов. Общее время выполнения составляет около 8 часов. Технологии подпроцесса включают в себя:

  1. Сторонняя программа-загрузчик данных, работающая на виртуальной машине Windows в Azure. Эта программа может отправить по электронной почте после завершения. Затем этот процесс должен вызвать ...

  2. Сценарии T-SQL, работающие на виртуальной машине Windows в Azure, которые после завершения должны запускаться ...

  3. Задания служб SSIS, выполняющиеся на виртуальной машине Windows в Azure, которые после завершения должны запускаться ...

  4. Приложение C #, работающее на виртуальной машине Windows в Azure, которое после завершения должно запускаться ...

  5. Код Python, работающий на виртуальной машине Linux в Azure.

У меня вопрос: какие технологии или технологии Azure (например, runbook для автоматизации, приложение логики) можно использовать для сшивания этой штуки, чтобы вернуть мне мои выходные? Заранее спасибо.

0
Kevin 28 Май 2019 в 18:12

2 ответа

Лучший ответ

Чтобы ответить на ваш вопрос, да, конечно, есть способы автоматизировать процесс с помощью Azure. Я бы выбрал Логические приложения , потому что автоматизация бизнес-процессов является одним из основных вариантов использования. Но ... это самая легкая часть!

Самое сложное для вас - сделать эти разрозненные приложения доступными для сторонних служб. Работая в виртуальных машинах Windows, они не имеют естественных конечных точек, таких как собственные службы Azure.

Есть много способов сделать это, в зависимости от вашей способности изменять виртуальные машины и навыки программирования.

Продолжение: поскольку все виртуальные машины находятся в одном домене и подключены к сети, первое, на что следует обратить внимание, - это старая школа (новая и блестящая не всегда лучшая), Задачи Windows . Как минимум на 2-4.

Это означает, что задача планирования на # 2 может проверить электронную почту, затем запустить ее SQL, а затем запустить задачу на # 3.

# 3 может запустить свои задания, а затем запустить задачу на # 4, которая запускает программу c #. Тогда # 4 может запустить скрипт Python. Ваш большой пробел в том, как запустить скрипт Python. Это может быть так же просто, как FTP-файл триггера для задачи на # 5, чтобы увидеть.

Сценарии Windows могут быть выполнены в PowerShell. Не очень элегантно, но не ваша среда.

Наконец, и, что самое важное, вы можете использовать Azure Monitor и пользовательский формат журнала для отслеживания процесса.

1
Johns-305 28 Май 2019 в 18:05

Это может быть решено с помощью долговременных функций - и шаблона внешних событий: https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-external-events

  1. Функция, запускаемая таймером, еженедельно запускает функцию оркестратора
  2. Оркестратор запускает вашу виртуальную машину (или док-контейнер и т. Д.), Которая содержит ваш загрузчик данных и внедряет URL-адрес обратного вызова.
  3. Теперь оркестратор ожидает внешнего события (см. Ссылку выше)
  4. URL обратного вызова указывает на другую функцию Azure, которая вызывает событие для продолжения работы оркестратора: https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-external-events#send-events
  5. оркестратор запускает следующую внешнюю задачу с тем же шаблоном ...
0
silent 28 Май 2019 в 15:22