База знаний FAM/MFA+ : 5. Развёртывание системы

Общие сведения

Avanpost FAM может быть развёрнут в нескольких вариантах:

  • Минимальное развёртывание в рамках одной виртуальной машины;
  • Стандартное развёртывание;
  • Отказоустойчивое развёртывание.

Минимальное развёртывание

В рамках минимального развёртывания все серверные компоненты устанавливаются на один сервер.

Для развёртывания сервера системы воспользуйтесь инструкциями по установке компонентов:

Отказоустойчивое развёртывание

Avanpost FAM может быть развёрнут в виде отказоустойчивого кластера с использованием следующих решений:

  • Балансировка нагрузки.
  • Репликация базы данных.

Данное решение обладает следующими преимуществами:

  • Может быть развёрнуто в минимальном исполнении (к примеру, в объёме двух узлов за общим балансировщиком) с последующим добавлением дополнительных узлов кластера;
  • Позволяет использовать имеющийся корпоративный балансировщик без необходимости развёртывания дополнительных серверов для обеспечения балансировки нагрузки;
  • Предоставляет возможность горизонтального масштабирования по производительности путем увеличения количества экземпляров серверных компонентов без изменения архитектуры.

Общая верхнеуровневая схема отказоустойчивого кластера выглядит следующим образом:

Возможные программные продукты, подходящие для реализации балансировки нагрузки:

  • Nginx Plus.
  • Nginx.
  • HAProxy.

Для резервирования базы данных можно применять средства СУБД PostgreSQL с open-source компонентами.

Резервирование компонента Avanpost FAM Server

Резервирование компонента Avanpost FAM Server обеспечивается путём развёртывания нескольких узлов (виртуальных машин, серверов или контейнеров), на которых запускается и работает компонент Avanpost FAM Server.

Компонент Avanpost FAM Server функционирует без долговременного хранения состояния, поэтому может быть масштабирован на любое количество узлов (виртуальных машин, серверов или контейнеров). Все функции хранения данных и синхронизации между узлами Avanpost FAM Server обеспечиваются функциями кластера СУБД PostgreSQL, поэтому компонент не требует прогрева или синхронизации кеша в случае необходимости запуска дополнительных узлов Avanpost FAM Server.

Балансировка нагрузки позволяет обеспечить работу в следующих режимах:

  • Распределение нагрузки между узлами кластера (схема Active-Active) с целью снижения нагрузки на каждый конкретный узел Avanpost FAM Server.
  • Резервирование на случай отказа одного или нескольких узлов путём применения горячего резерва (схема Active-Passive).

В зависимости от прикладных задач, требуемых для решения системой Avanpost FAM, осуществляется балансировка нагрузки для следующих функций:

  • HTTP-интерфейс аутентификации и личного кабинета;
  • HTTP-интерфейс административной консоли и REST API системы Avanpost FAM;
  • HTTP-интерфейс Reverse Proxy;
  • RADIUS-интерфейс;
  • gRPC-интерфейс;
  • Компоненты Avanpost FAM Mobile Services для Avanpost Authenticator.

Резервирование при помощи балансировки может быть выполнено целиком для всех функций системы, либо частично. Состав резервируемых функций определяется исходя из требований к экземпляру системы Avanpost FAM.

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

  • Балансировка TCP-запросов (для функций HTTP и gRPC-интерфейсов) с поддержкой TCP Health Check.
  • Балансировка UDP-запросов (для функции RADIUS) с поддержкой UDP Health Check либо с возможностью использования TCP Health Check для отключения UDP-интерфейсов вышедших из строя узлов системы.

Балансировка для HTTP-интерфейса аутентификации и личного кабинета

Балансировка настраивается для обеспечения отказоустойчивости на случай недоступности одного из узлов для трафика, направляемого на:

  • Веб-интерфейс аутентификации для прохождения аутентификации в сценариях OAuth 2.0, OpenID Connect, SAML 2.0, Reverse Proxy;
  • Веб-интерфейс личного кабинета для загрузки SPA-приложения;
  • REST API для функционирования SPA-приложения личного кабинета.

Схема резервирования для HTTP-интерфейса аутентификации и личного кабинета:

Балансировка для HTTP-интерфейса Reverse Proxy

Балансировка HTTP-интерфейса Reverse Proxy настраивается для обеспечения отказоустойчивости на случай недоступности одного из узлов для трафика, направляемого на Reverse Proxy, а также с целью снижения нагрузки на остальные узлы системы. Для функций Reverse Proxy целесообразно применение одного из двух вариантов развёртывания:

  • Развёртывание отдельных узлов, Avanpost FAM Server в количестве от 2-х, обслуживающих только Reverse Proxy-трафик. Данный вариант является наиболее предпочтительным в тех случаях, если используется большое число приложений, подключенных посредством механизма Reverse Proxy.
  • Распределение нагрузки между несколькими узлами Avanpost FAM Server, решающими и другие функции системы.

Схема решения по балансировке трафика, поступающего на Reverse Proxy-интерфейс системы:

Балансировка для HTTP-интерфейса административной консоли и REST API

Балансировка HTTP-интерфейса административной консоли и REST API настраивается для обеспечения отказоустойчивости на случай недоступности одного из узлов для трафика, направляемого на:

  • Веб-интерфейс административной консоли для загрузки SPA-приложения административной консоли;
  • REST API для работы SPA-приложения административной консоли и сторонних интеграций, выполненных через REST API.

Разворачивать отдельные узлы Avanpost FAM Server с целью оптимизации нагрузки для административной консоли и REST API как правило не требуется.

Схема решения по балансировке трафика для административной консоли и REST API:

Балансировка для RADIUS-интерфейса

Балансировка RADIUS UDP-трафика осуществляется для обеспечения отказоустойчивости в случае подключения к Avanpost FAM критичных с точки зрения доступности сервисов, к примеру, корпоративных VPN или VDI-решений.

Схема решения по балансировке для RADIUS-трафика:

Балансировка для gRPC-интерфейса

Балансировка gRPC-трафика применяется для обеспечения отказоустойчивости в случае массового использования дополнительных компонентов из состава Avanpost FAM, таких как:

  • Avanpost FAM Agent для решения задачи Enterprise SSO-аутентификации в унаследованные десктопные приложения;
  • Avanpost FAM Credential Provider для решения задачи аутентификации на рабочие станции и сервера под управлением ОС семейства Windows, в том числе с использованием RDP;
  • Avanpost FAM PAM Linux для решения задачи аутентификации на рабочие станции и сервера под управлением ОС Linux.

Для балансировки gRPC-трафика балансировщик должен обладать следующими характеристиками:

  • Поддержка балансировки TCP, в том числе HTTP/2;
  • Поддержка TCP Health Checks с автоматическим отключением вышедшего из строя узла.

Схема решения по балансировке для gRPC-трафика:

Резервирование компонентов Avanpost FAM Mobile Services для Avanpost Authenticator

Резервирование компонентов Avanpost FAM Mobile Services может применяться для повышения доступности сервиса MFA с использованием мобильного аутентификатора Avanpost Authenticator.

Для резервирования следует использовать TCP-балансировщик, в роли которого можно как использовать тот же экземпляр балансировщика, что и для основного трафика TCP. Также может быть использован отдельный балансировщик, размещённый в DMZ.

Схема резервирования компонентов Avanpost FAM Mobile Services:

Резервирование базы данных системы

Резервирование обеспечивается путём построения кластера на базе СУБД PostgreSQL с репликацией данных.

Репликация осуществляется в режиме Master-Slave и позволяет обеспечить резервирование базы данных системы. Все узлы системы работают с одним экземпляром базы данных.

В случае отказа Master-экземпляра базы данных осуществляется автоматическое переключение на Slave. После восстановления Master-экземпляра базы данных выполняется операция обратного ручного переключения на Master-экземпляр.

Схема резервирования базы данных системы:

Минимальный состав виртуальных машин для отказоустойчивого развёртывания

Минимальная конфигурация состоит из следующих виртуальных машин:

Наименование машины Кол-во Назначение Примечание
TCP/UDP Load Balancer 1* Балансировщик входящего TCP/UDP-трафика, Health Check для TCP/UDP-трафика с отключением вышедшего из строя узла Avanpost FAM Server или узла Avanpost FAM Mobile Services При наличии развёрнутого стороннего корпоративного балансировщика, подходящего для решения задач балансировки, можно исключить данную машину
Avanpost FAM Server 2 Обслуживание всех запросов -
DB Load Balancer 1 Балансировщик трафика к БД PostgreSQL -
DB 2 Кластер БД из двух узлов (Master-Slave) -
TCP/UDP DMZ Load Balancer 1* Балансировщик входящего TCP/UDP-трафика для DMZ-компонентов При наличии развёрнутого стороннего корпоративного балансировщика, подходящего для решения задач балансировки, можно исключить данную машину
Avanpost FAM Mobile Services 2 DMZ-компоненты для обслуживания мобильного приложения-аутентификатора Avanpost Authenticator При отсутствии потребности в мобильном аутентификаторе Avanpost Authenticator можно исключить данные машины

Аппаратная конфигурация каждой из машин определяется исходя из рекомендаций по масштабированию и планируемого профиля нагрузки.