#azure #ado #azure-data-factory
#azure #ado #azure-фабрика данных
Вопрос:
Мы ищем автоматизированный способ горизонтального и вертикального масштабирования виртуальных машин среды автономной интеграции, используемых в ADF.
Чтение документов Microsoft не дает ответа.
Ответ №1:
Ну, у меня нет опыта, поэтому я могу дать вам только теоретический ответ, но, возможно, это полезно для вас.
AFAIK, ни один из способов не настраивается «из коробки». Для масштабирования вам придется самостоятельно развернуть дополнительный IR-компьютер. Поэтому, вероятно, вы захотите создать образ, который вы можете предоставить из docker или kubernetes, с установленными IR и предварительными требованиями. Установка IR предоставляет сценарий PowerShell, который можно использовать для создания автоматического подключения.
Для увеличения / уменьшения масштаба вам придется запустить некоторый скрипт, который масштабирует вашу виртуальную машину. В решении IaaS (например, виртуальной машине Azure) это должно быть выполнимо с помощью вызова API для изменения вашей виртуальной машины.
В обоих случаях вам потребуется какой-то монтировщик, который отслеживает IR-нагрузки и вносит изменения по мере необходимости. Я думаю, что меры, предусмотренные на фабрике данных, должны выполняться. Возможно, вы можете использовать лог-аналитику для мониторинга нагрузок.
Мне любопытно, какой у вас вариант использования для этого.
Ответ №2:
Мое решение предназначено только для масштабирования, поскольку виртуальную машину необходимо перезапустить, если вы увеличиваете / уменьшаете масштаб, что приводит к простою, сбоям в работе и т.д.
На высоком уровне для этого решения требуется всего 3 простых вещи:
- Предупреждение о метрике Azure, которое срабатывает при необходимости масштабирования (запуск виртуальной машины)
- Предупреждение о метрике Azure, которое срабатывает при необходимости масштабирования (освобождение виртуальной машины)
- Логическое приложение, которое запускается с помощью Azure Alert и фактически выполняет запуск / остановку виртуальной машины, наряду с любой другой автоматизацией, связанной с этим (например, публикация на канале Teams при масштабировании)
Вот еще несколько подробностей о том, как мы настраиваем условия для оповещений, но главное, что нужно иметь в виду (процент процессора IR, длина очереди IR, количество узлов и, возможно, память IR)
Масштабирование
Масштабирование
Действия для оповещений
Как вы можете видеть ниже, у нас есть приложение Logic, запускающее оповещение 1. используя полезную нагрузку, передаваемую приложению Logic, вы можете определить, должно ли приложение Logic запускать виртуальную машину или останавливать виртуальную машину. (А также любые другие дополнительные действия)
Логическое приложение
Существует небольшая вероятность того, что из-за времени (и в зависимости от того, скольким ADF совместно используется IR) эти действия конвейера могут быть отправлены на узел 2 одновременно с отправкой команды освобождения виртуальной машине для узла 2. Я пока этого не видел, но настройка условий оповещения на основе ваших потребностей может помочь избежать этого. Не стесняйтесь играть с условиями оповещений, степенью детализации, пороговыми значениями и т.д. Это не универсальное решение для всех.