Архитектурные особенности#
Архитектура контроллера Event-Driven Automation имеет ряд особенностей, которые необходимо учитывать при проектировании отказоустойчивых и масштабируемых решений.
Модель отказоустойчивости#
Event-Driven Automation не поддерживает кластеризацию (HA, High Availability) в классическом понимании, при которой активные процессы автоматически переносятся между узлами при отказе одного из них.
Активации сводов правил работают со следующими особенностями:
каждая активация выполняется на конкретном узле Event-Driven Automation;
состояние активации жестко привязано к этому узлу;
при отказе узла рабочая активация не мигрирует автоматически на другой узел.
В результате, если узел Event-Driven Automation становится недоступным, связанные с ним активации сводов правил переходят в состояние Pending и остаются в нем до восстановления исходного узла.
Автоматического перезапуска или переноса активаций на другие узлы не происходит.
Для построения устойчивых и масштабируемых решений в Event-Driven Automation рекомендуется использовать потоки событий (event streams). Потоки событий выполняют роль промежуточного уровня между источниками событий и активациями сводов правил и обеспечивают следующие возможности:
распределение входящих событий между несколькими экземплярами одной активации;
запуск одинаковых активаций на разных узлах Event-Driven Automation;
снижение зависимости от конкретного узла при обработке событий;
более равномерное использование вычислительных ресурсов.
Потоки событий позволяют масштабировать обработку событий горизонтально и частично компенсировать отсутствие классического механизма кластеризации.
Производительность шлюза#
При интенсивном использовании Event-Driven Automation (большое количество событий, активных активаций сводов правил и интеграций) возрастает нагрузка на Platform Gateway. В таких сценариях возможны увеличение времени отклика API и задержки при обращении к Automation Controller.
Для снижения влияния нагрузки рекомендуется:
увеличить количество узлов шлюза до трех;
обеспечить равномерное распределение трафика между узлами шлюза с помощью балансировщика нагрузки.