Docker для Dynamics 365 Business Central. Развертывание системы

Business Central это решение для управления бизнесом малых и средних предприятий, которое автоматизирует и упрощает бизнес-процессы. Высокая адаптивность и богатые возможности Business Central позволяют управлять финансами, производством, продажами, доставкой, проектами, сервисами и прочее. Компании могут легко добавлять функциональность операционной деятельности и обеспечить поддержку даже узкоспециализированных отраслей.

Решение быстро внедряется, легко настраивается и просто является инновационным в части дизайна продукта, разработке, внедрении и удобстве использования.

Развертывание Business Central

Топология Business Central представлена ниже.

Топология системы

Решение можно развернуть как в облаке, на вычислительной облачной платформе Azure, так и локально – on-premise. С точки зрения разработки больший интерес вызывает разворачивание среды on-premise. С партнерского ресурса Microsoft можно скачать установочный образ DVD диска и развернуть Business Central. На данный момент доступна версия 14.4 (CU3). Требования система достаточно приемлемые, т.е. в принципе можно ее развернуть даже на обычном хост-компьютере. Необходимо лишь соблюсти ряд требований, которые можно посмотреть здесь. Но такой подход нам не интересен, т.к. при выходе новой версии, все компоненты предыдущей версии придется удалить.

Среда разработки семейства продуктов Dynamics 365 переехала на платформу Visual Studio, т.к. изменился в принципе поход к доработке продукта. Не стал исключением Business Central. Теперь все доработки предполагается делать и оформлять в виде расширений (extension). Расширения разрабатываются в среде Visual Studio Core, гораздо более легкая, чем Visual Studio. Разработка для Business Central теперь ведется на языке AL, вместо прежнего языка C/AL. Специально для этого было разработано дополнение к Visual Studio Core, которое называется AL Extension. Дополнение позволяет, кроме непосредственной разработки расширения, также сразу публиковать и устанавливать его в среду Business Central, причем как локальную, так и облачную.

Docker

Вернемся к процессу разворачивания Business Central. Еще со времен Dynamics NAV, который является родителем Business Central, Microsoft отошли от применения виртуальных машин для предоставления развернутой среды, а начали использовать контейнерную технологию виртуализации Docker.

Давайте разберёмся, что из себя представляет технология Docker «на пальцах», с точки зрения нетехнического обывателя, в специфике и возможностях этой технологии.

Если ранее использовали виртуализацию, то прекрасно знакомы со сценарием, когда, например, было нужно иметь несколько виртуальных машин для запуска разных приложений, которые конфликтуют между собой, будучи развёрнутыми на одном и том же хосте. Чтобы решить эту проблему, приходилось разворачивать несколько разных виртуальных машин на одном и том же хосте, и на разных виртуалках разворачивать разные приложения или разные версии приложений. Очевидно, что крутить несколько виртуалок – дороже, чем крутить одну. И Docker как раз и решает, в числе прочих, и эту задачу.

По сути, решение Docker – это псевдо-виртуалка, некий image, которая объединяет в себе некую общую «базу» функциональности – ядро (kernel), которую могут использовать «контейнеры» – приложение или приложения, завёрнутые в отдельную «оболочку», которые вы запускаете «на базе» image’а, как-бы в виде некоего «типа тенанта» к единой исходной виртуалке. Контейнеры изолированы друг от друга (каждый контейнер думает, что он один во вселенной). Соответственно, все эти контейнеры используют ресурсы единого ядра, и это становится намного более эффективным с точки зрения ресурсоёмкости.

Docker можно запускать как на платформе Windows, так и на платформе Linux, при этом исходный image и контейнеры будут одинаковыми. При этом, сам image может крутиться в облаке, например, Microsoft Azure, и основная ресурсная нагрузка может оставаться там, высвобождая ресурсы вашего локального хоста. С точки зрения пользователя, это в некотором смысле похоже на RD Apps, при этом можно смонтировать много контейнеров с разными конфликтующими приложениями, и они на локальном хосте пользователя будут запускаться одновременно и не конфликтовать.

Другим важным достоинством Docker является повышение скорости разработки и переноса функционала между разными средами (дев-тест-прод).

Для установки Docker на Windows можно воспользоваться инструкциями для версии desktop и server.

Также стоит сразу установить модуль NavContainerHelper для PowerShell. Он содержит много команд, которые призваны облегчить работу с контейнерами с Business Central.

Первый контейнер

Попробуем запустить наш первый контейнер с Business Central. Для этого воспользуемся командой:

docker run -e accept_eula=Y -m 4G mcr.microsoft.com/businesscentral/onprem

здесь параметр –m 4G – это количество памяти, выделяемое на хосте этому контейнеру, 1 Гбайт выделяется по умолчанию если без параметров, но для Business Central этого мало поэтому – ставим 3G или 4G.

mcr.microsoft.com/businesscentral/onprem – это название образа (тег docker), который docker должен запустить, но так как его пока нет, начнется автоматического скачивание по данному адресу и затем уже запуск контейнера полученного образа. По указанному адресу docker скачает последнюю версию образа глобальной версии Business Central. А если нужен образ, предназначенный для России, то нужно добавить в конце параметр

mcr.microsoft.com/businesscentral/onprem:ru,

также дополнительно можно указать требуемую версию, список доступных образов можно посмотреть в списке тегов.

После окончания процесса запуска, будет примерно следующая информации

Это значит, что образ получен и запущен на его основе контейнер. Далее по указанному адресу можно запустить в браузере Business Central. Чтобы доступ работал по имени, указанный ip-адрес можно добавить в файл hosts.

NavContainerHelper

Выше было написано, что для удобства работы с контейнерами, еще во времена Dynamics NAV, Microsoft написал специальный модуль для PowerShell. Данный модуль имеет команды, которые предназначены для работы с внутренним пространством контейнера. Для получения списка команд используйте команду «Write-NavContainerHelperWelcomeText». Создадим новый контейнер на основе образа полученного ранее:

New-NavContainer -accept_eula

-imageName «mcr.microsoft.com/businesscentral/onprem»

-containerName d365BC

-auth NavUserPassword

-licensefile ‘C:\Docker\Training License for D365 BC.flf’

-includeCSide

-enableSymbolLoading

Разберем параметры команды:

-imageName – имя образа, если не будет найден локально, то будет получен из пула образов.

-containerName – задает имя контейнера, необязательный. По умолчанию автоматически сгенерируется буквенно-числовой набор.

-auth – указывает, способ аутентификации для Business Central. В данном случае говорим, что необходимо создать пользователя для работы в приложении. После запуска команды создания необходимо будет ввести имя пользователя и пароль, который далее будет использован для авторизации в приложении.

-licensefile – по умолчанию образ поставляется в демо лицензией. Параметр позволяет указать местоположение существующей лицензии, из которого она будет установлена в разворачивании приложения.

-includeCSide – параметр указывает, что необходимо развернуть прежнюю среду разработки «CSIDE» и добавить ярлык на рабочий стол, для ее запуска.

-enableSymbolLoading – параметр позволяет переключить разработку для контейнера в гибридный режим. Когда можно разрабатывать как в среде разработки приложения, так и в Visual Studio Core. Символы можно рассматривать как программный интерфейс приложения. Символы соответствует приложению, т.е. соответствуют объектам приложения. Если внести какие-либо изменения в приложение, либо при помощи CSIDE, либо путем импорта объектов с помощью PowerShell, символы больше не будут соответствовать приложению. И тогда в VS Core возникнут ошибки времени выполнения. Если разработку вести только одним из способов, тогда проблемы несоответствия символов не будет. Использование параметра при запуске контейнера, запускает пересборку всех символов приложения.

По окончании процесса создания контейнера на рабочем столе увидим следующее:

Ярлыки, запускающие PowerShell и CMD на контейнер. Ярлыки для запуска клиента версии веб и стандартного приложения. Ярлыки для запуска среды разработки CSIDE и отладчика.

Если посмотреть свойства ярлыка для запуска среды разработки CSIDE, в поле «Объект» будет прописан следующие данные:

«C:\ProgramData\NavContainerHelper\Extensions\d365BC\Program Files\140\RoleTailored Client\finsql.exe» servername=d365BC\SQLEXPRESS, Database=CRONUS, ntauthentication=0, ID=d365BC, generatesymbolreference=1

Для запуска командной строки:

C:\Windows\system32\CMD.EXE /C docker.exe exec -it d365BC cmd

Для запуска веб-клиента:

http://d365bc/NAV

Запусти веб-клиент увидим окно авторизации:

Для авторизации необходимо использовать данные о пользователе, которые были использованы при создании контейнера.

 

microsoft.com

docker.com

freddysblog.com

awara-it.com

Comments

So empty here ... leave a comment!

Добавить комментарий

Sidebar



X

Ищешь разработчика 1С?
Оставь заявку на консультацию

X

Ищешь разработчика?