Архитектурные особенности

Архитектурные особенности#

Архитектура контроллера 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.

Для снижения влияния нагрузки рекомендуется:

  • увеличить количество узлов шлюза до трех;

  • обеспечить равномерное распределение трафика между узлами шлюза с помощью балансировщика нагрузки.