Назад в будущее?

Речь пойдет о кластере. Что такое кластер?

Собственно в 3.0 кластер распределения нагрузки составлял список доступных серверов приложений (AOS, Axapta Object Server) в кластере с соответствующим количеством пользователей, соединенных с каждым из серверов. При подключении нового пользователя к кластеру, клиент производил выбор сервера с наименьшим количеством пользовалей в этом списке. И подключался к этому, наименее "загруженному"... Использовался стандартный протокол AOCP, ранее созданный специально для Microsoft Axapta.

В Microsoft Dynamics Ax 4.0 протокол AOCP был заменен на стандартный протокол Microsoft - RPC, тому было множество оснований, в частности лучшая производительность и защищенность RPC. С протоколом AOCP была упразднена архитектура кластеризации из 3.0. В 4.0 для получения подобной кластеризации стали использовать Network Load Balancing (NLB, балансировку нагрузки сети), подробнее можно посмотреть в описании NLB.

Новая реализация, основанная на NLB работала отлично, насмотря на ограничение в 32 сервера в кластере. Однако, использование NLB означает и другое ограничение - невозможность использования кластера для клиента Dynamics Ax подключающегося к кластеру через терминальный доступ (сессию терминального сервера, TS).

Т.е. строить типичное окружение развернутое вовне типа: пользователь-WAN-TS-клиент Ax-кластер Ax-СУБД, стало невозможным.

 

Версия 4.0 сервис - пак 1 (4.0SP1) будет содержать кластерную архитектуру, близкую к 3.0.

Означает ли это возврат к AOCP в том виде, что был в 3.0? - Нет. 

Означает ли это, что AOS перестанет быть сервисом операционной системы? - Нет.

Будет ли архитектура абсолютно идентичной 3.0 с точки зрения функционирования кластера? - Не совсем.

Основное отличие - появление новой роли 'балансировщика нагрузки' ('Load Balancer').  Кластер может быть развернут в двух вариантах:

- Без 'балансировщика нагрузки', функционирование будет похоже на 3.0, при этом клиент Ax должен содержать список всех серверов приложений (хост, имя, порт), входящих в кластер.

- С  'балансировщиком нагрузки', один из серверов (или несколько) приложений выделяется как сервер, занимающийся только распределением нагрузки (составлением списка и перенаправлением клиентов Ax). Клиент Ax может содержать только этот сервер. Балансировщик не участвует в обработке объектов, пользователи не могут подключиться непосредственно к нему. Балансировщик не требует лицензии (не занимает лицензию) на сервер приложения AOS. 

Что дает 'балансировщик нагрузки'? Клиент Ax не требует перенастройки, добавления или удаления серверов приложений из конфигурации в случае замены или добавления серверов приложений AOS. Конечно же, при условиии, что сам 'балансировщик' не изменялся. 

 

Сняты ли все ограничения с 'возвратом' к новой кластерной архитектуре? Увы нет, использование кластеров для Web приложений отложено до 4.1. Пока требуется строгое соответствие: сервер IIS-сервер приложений AOS.

Кроме того, пока не решена и также отложена до 4.1 проблема, когда при отказе сервера приложений AOS (выход из строя материнской платы, например), пользовательские транзакции будут отменены, сессии закрыты и пользователи будут вынуждены заново соединяться с кластером (с остальными серверами приложений).

Для административных целей оставлена возможность подсоединения к необходимому серверу приложений AOS кластера, используя параметр '-noloadbalance' в конфигурации клиента Ax.

Кстати, опция построения кластера на базе NLB в 4.0SP1 осталась... Т.е. теперь есть два пути построения кластера для DAX.