Научная статья на тему 'АВТОМАТИЗАЦИЯ ЗАПУСКА СЕРВЕРА 1С С ПОМОЩЬЮ ИНСТРУМЕНТОВ КОНТЕЙНЕРНОЙ ВИРТУАЛИЗАЦИИ'

АВТОМАТИЗАЦИЯ ЗАПУСКА СЕРВЕРА 1С С ПОМОЩЬЮ ИНСТРУМЕНТОВ КОНТЕЙНЕРНОЙ ВИРТУАЛИЗАЦИИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
951
76
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
/ DOCKER / КОНТЕЙНЕРИЗАЦИЯ / ВИРТУАЛИЗАЦИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Корниенко Дмитрий Васильевич, Мельников Максим Олегович, Иванников Илья Сергеевич

В статье проанализирована актуальность использования платформы для автоматизации экономической деятельности предприятий. Рассмотрены преимущества использования клиент-серверного варианта работы системы . Дан обзор технологии контейнерной виртуализации, приведены основные понятия. Проанализированы преимущества использования контейнеров при развертывании приложений. Рассмотрен инструмент контейнеризации Docker. Приведён процесс создания и запуска docker-контейнера, содержащего сервер . Проанализированы полученные результаты, сделаны соответствующие выводы.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Корниенко Дмитрий Васильевич, Мельников Максим Олегович, Иванников Илья Сергеевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

AUTOMATION OF STARTING THE SERVER 1C WITH THE USE OF CONTAINER VIRTUALIZATION TOOLS

The article analyzes the relevance of using the 1C platform to automate the economic activities of enterprises. The advantages of using the client-server version of the 1C system are considered. An overview of the technology of container virtualization is given, the basic concepts are given. The advantages of using containers when deploying applications are analyzed. The Docker containerization tool is considered. The process of creating and launching a docker container containing a 1C server is presented. The results obtained are analyzed and the corresponding conclusions are drawn.

Текст научной работы на тему «АВТОМАТИЗАЦИЯ ЗАПУСКА СЕРВЕРА 1С С ПОМОЩЬЮ ИНСТРУМЕНТОВ КОНТЕЙНЕРНОЙ ВИРТУАЛИЗАЦИИ»

2. Экономическая безопасность России: методология, стратегическое управление, системотехника: монография / кол. авторов; под науч. ред. С.Н. Сильве-строва. — Москва: РУСАЙНС, 2018. — 350 с. URL:

http://www.fa.ru/org/science/epipeb/Documents/Силь-вестров_Экономическая%20безопасность%20Рос-сии_макет_fin.pdf (дата обращения13.11.2021).

3. Федеральный Закон от 02.07.2021 № 296-ФЗ «Об ограничении выбросов парниковых газов».

4. Указ Президента РФ от 13 мая 2017 г. № 208 «О Стратегии экономической безопасности Российской Федерации на период до 2030 года».

5. Распоряжение Правительства РФ от 22 декабря 2018 г. № 2914-р «О стратегии развития минерально-сырьевой базы РФ до 2035 г.».

6. Распоряжение Правительства РФ от 22 декабря 2018 г. № 2914-р «О стратегии развития минерально-сырьевой базы РФ до 2035 г.». URL:

https://www.garant.ru/products/ipo/prime/doc/72038606 / (дата обращения 08.11.2021).

7. Приказ Министерства экономического развития РФ от 22 апреля 2021 г. № 216 «Об утверждении Порядка разработки федерального плана статистических работ»

8. Письмо Министерства экономического развития РФ от 5 октября 2021 г. № 33918-ПК/Д03и «О применении показателей прогноза социально-экономического развития Российской Федерации в целях ценообразования на продукцию, поставляемую по государственному оборонному заказу»

9. Доступность кредита и долговая нагрузка в российской экономике и ее отдельных отраслях. URL: //http://www.consultant.ru/document/cons_doc_LAW_2 82452/3fb16d09329a5f35(дата обращения 08.11.2021).

УДК 65.011.56

АВТОМАТИЗАЦИЯ ЗАПУСКА СЕРВЕРА 1С C ПОМОЩЬЮ ИНСТРУМЕНТОВ КОНТЕЙНЕРНОЙ ВИРТУАЛИЗАЦИИ

Д.В. Корниенко1, М.О. Мельников2, И.С. Иванников3

Елецкий государственный университет им. И.А. Бунина, Россия, 399770, Липецкая область, Елец, ул. Коммунаров, д. 28

В статье проанализирована актуальность использования платформы 1С для автоматизации экономической деятельности предприятий. Рассмотрены преимущества использования клиент-серверного варианта работы системы 1С. Дан обзор технологии контейнерной виртуализации, приведены основные понятия. Проанализированы преимущества использования контейнеров при развертывании приложений. Рассмотрен инструмент контейнеризации Docker. Приведён процесс создания и запуска docker-контейнера, содержащего сервер 1С. Проанализированы полученные результаты, сделаны соответствующие выводы.

Ключевые слова: 1С, docker, контейнеризация, виртуализация.

AUTOMATION OF STARTING THE SERVER 1С WITH THE USE OF CONTAINER

VIRTUALIZATION TOOLS

D.V. Kornienko, M.O. Melnikov, I.S. Ivannikov

Bunin Yelets State University, Russia, 399770, Lipetsk region, Yelets, st. Kommunarov, 28

The article analyzes the relevance of using the 1С platform to automate the economic activities of enterprises. The advantages of using the client-server version of the 1С system are considered. An overview of the technology of container virtualization is given, the basic concepts are given. The advantages of using containers when deploying applications are analyzed. The Docker containerization tool is considered. The process of creating and launching a docker container containing a 1С server is presented. The results obtained are analyzed and the corresponding conclusions are drawn.

Keywords: 1С, docker, containerization, virtualization.

1 Корниенко Дмитрий Васильевич - кандидат физико-математических наук, доцент, доцент кафедры математического моделирования и компьютерных технологий, тел.: +7 (960) 152-00-20, e-mail: dmkornienko@mail.ru;

2Мельников Максим Олегович - студент института математики, естествознания и техники, тел.: +7(915)854-22-93, e-mail: melnikov.maxx@yandex.ru;

3Иванников Илья Сергеевич - аспирант кафедры математического моделирования и компьютерных технологий, тел.: +7 (915) 555-39-15, e-mail: ivannikov.work@yandex.ru.

Введение

Высокие темпы экономического роста практически всех успешных компаний обусловлены в том числе оперативным внедрением и грамотным использованием информационных технологий Эффективность работы современного предприятия во многом зависит от уровня автоматизации её бизнес-процессов. Высокая конкуренция на рынке предъявляет бизнесу ряд априорных требований в виде скорости получения, обработки и надёжного хранения актуальных данных. Это послужило причиной полного перехода к компьютеризированному ведению налогового, бухгалтерского, производственного учёта, а также автоматизации хозяйственной деятельности фирм. Внедрение уже зарекомендовавших себя на рынке программных продуктов компании 1С позволяет оптимизировать работу, улучшить эффективность учётной деятельности, а также повысить качество работы предприятия в целом [1].

Платформа 1С предоставляет возможность выбора между двумя вариантами работы системы: клиент-серверный и файловый.

Файловый вариант предполагает работу единственного пользователя или небольшой группы пользователей локальной сети предприятия. При этом все используемые данные хранятся в одной файловой системе управления базой данных (далее СУБД).

Клиент-серверный вариант рассчитан на обслуживание больших рабочих групп. Данный подход базируется на более надёжной трёхуровневой архитектуре [2]. Такая архитектура подразумевает использование трёх отдельных, взаимодействующих между собой компонентов (рис. 1):

- клиентского приложения;

- ^рвера или кластера серверов 1С: Предприятие;

- сервера базы данных (далее БД).

Сервер 1С представляет собой программное средство, работающее в клиент-серверном режиме с базой данных 1С [3]. Непосредственно взаимодействие происходит через обращение к одной из используемых СУБД (PostgreSQL, Microsoft SQL Server, Oracle DB, IBM Db2). Как правило, сервер 1С применяют крупные и средние организации, в которых доступ к БД требуется сразу большому количеству сотрудников.

Кроме того, использование сервера имеет ряд значительных преимуществ:

- все объёмные и ресурсоёмкие операции происходят на сервере, что даёт значительный прирост быстродействия клиентским приложениям;

- повышение безопасности обусловлено отсутствием у пользователей непосредственного доступа к серверу;

- более гибкое администрирование.

Рисунок 1 - Архитектура клиент-серверной версии 1С [2]

В физическом представлении кластер серверов 1С и сервер БД, как правило, располагаются на разных компьютерах, что позволяет балансировать и распределять входящую нагрузку. В классическом представлении кластер состоит из нескольких персональных компьютеров (рабочих серверов), на каждом из которых функционирует несколько обслуживающих процессов (рис. 2).

Рисунок 2 - Клиент-серверная схема работы 1С [2]

Количество рабочих станций в кластере может достигать нескольких десятков. При этом на каждом таком компьютере должен быть установлен и определённым образом сконфигурирован продукт 1С. Поэтому для автоматизации развертывания 1С сервера сразу на нескольких станциях или запуска нескольких версий сервера на одном физическом компьютере

применяется ряд БеуОр8-практик, например, контейнерная виртуализация.

Виртуализация и контейнеры

Контейнерная виртуализация или контейнеризация - это технология программной (на уровне операционной системы) виртуализации, которая позволяет создавать ряд изолированных единиц пользовательского пространства [4]. В сообществе разработчиков такие единицы принято называть зонами или контейнерами.

Контейнер представляет собой некоторый виртуальный диск-файл, который содержит заранее сконфигурированный определённым образом программный продукт и набор необходимых для его работы зависимостей. В качестве зависимостей могут выступать:

- исходные файлы с программным кодом;

- среда запуска приложения;

- системный инструментарий;

- статические, динамические библиотеки;

- конфигурационные файлы, скрипты и прочее.

Со стороны администратора или клиента контейнер представляется отдельной независимой операционной системой, которая использует ядра и ресурсы основной (хост) операционной системы. Работа приложений в контейнере подобна прямому взаимодействию с хост-системой, при этом обеспечивается полная изолированность содержимого зоны (рис. 3). Это даёт возможность гарантировать отсутствие воздействия друг на друга приложений из разных контейнеров.

Программная виртуализация

Железо

й

ОС

Гипер в in аир Изо л ирова кн ые с реды

О О

О

Рисунок 3 - Концепция программной виртуализации

Таким образом, контейнеризация организует собственное виртуальное окружение со своей областью процессов, потоков и стеком вызовов, что делает контейнер аналогом виртуальной машины. При этом в отличие от аппаратной виртуализации создаваемый образ избегает необходимости в эмуляции виртуального оборудования.

Кроме того, подход с использованием контейнеризации обеспечивает ряд преимуществ:

- Легковесность: образы контейнеров занимаю немного пространства на диске.

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

- Изолированность: отделение от общей инфраструктуры системы позволяет безопасно вносить изменения и совершать обновление продукта.

- Независимость от аппаратного обеспечения.

- Инкапсуляция: всё необходимое для корректной работы приложения уже упаковано в образ.

- Переиспользование: подготовленные образы можно использовать множество раз на различном оборудовании.

- К недостаткам контейнерной виртуализации относят:

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

- Привязка к архитектуре управляющей операционной системы: при создании контейнера требуется указать конкретное семейство операционных систем, на которых будет запускаться образ.

Собранный контейнер управляется посредством специализированных контейнерных движков.

Контейнерный движок - это отдельное программное средство, отвечающее за получение и запуск контейнеров, а также организующее взаимодействие с пользователем посредством API-запросов. Наиболее популярными являются движки LXC и OpenVZ, реже используется Solaris Containers, RKT, Railcar.

OpenVZ представляет виртуализацию уровня ядра ОС Linux. Данная среда позволяет

запускать несколько копий ОС на одном сервере за счёт организации так называемых «виртуальных частных сред выполнения».

LXC - система изолированного запуска нескольких экземпляров ОС Linux на одном внутреннем узле. Технология основана на использовании Linux cgroups и, как правило, применяется при разработке PaaS-хостингов и создании изолированных динамических образов (dynos).

OpenVZ и LXC используются при необходимости создания практически полноценных экземпляров ОС, однако на их основе разработаны платформы, специализирующиеся на изоляции отдельных сервисов с минимальным операционным окружением. Одной из таких платформ является Docker.

Docker

Docker представляет собой контейнери-затор приложений, который позволяет автоматизировать модерирование и развёртывание виртуальных образ-контейнеров [5]. С помощью Docker можно скачивать, создавать, настраивать, запускать контейнеры, управлять их жизненным циклом и прочее. Ранее Docker был доступен только на операционных системах семейства Linux, но с появлением технологии WSL стал полноценно использоваться и в Windows.

Docker-система включает в себя ряд компонентов:

- Docker-host. Устройство, на котором запускается Docker. Хостом может выступать как физическая рабочая станция, так и вириальная машина.

- Docker-daemon. Процесс, ожидающий команды системы и работающий в фоновом режиме. Этот демон отвечает за все действия, связанные с управлением контейнером. Кроме того, в нём хранится вся информация о контейнерах, загруженных в систему.

- Docker-client. Клиентское приложение, через которое администратор системы взаимодействует с docker-daemon. Поддерживается несколько вариантов интерфейса: API, консольный ввод или полноценное приложение с графическим интерфейсом.

- Docker-image. Сформированный образ, в который помещается набор файлов-зависимостей, необходимых для работы приложения. Из него впоследствии разворачивается контейнер.

- Docker-container. Развёрнутое на основе docker-image и запущенное в изолированной среде приложение.

- Docker-registery. Репозиторий (например, DockerHub), на который загружаются готовые образы (docker-image).

- Dockerfile. Файл-конфигуратор, который содержит «инструкцию» по сборке образа,

записанную в декларативном стиле. В файле построчно перечислены все программы, файлы, зависимости и выполняемые команды, которые нужны при построении образа.

Работа с Docker осуществляется с помощью нескольких команд, которые обрабатывает docker-daemon:

- Docker pull - инициирует скачивание docker-image из dcoker-registry.

- Docker build - запускает чтение dockerfile и сборку образа.

- Docker run - превращает собранный docker-image в контейнер и запускает его. Если возникает необходимость развернуть целый технологический стек, где каждый компонент представлен отдельным контейнером, принято использовать Docker compose.

Docker compose - это инструмент, позволяющий автоматизировать одновременное управление несколькими контейнерами, которые должны входить в состав единого приложения [6]. Определение, настройка и описание взаимодействия сервисов-компонентов происходит в отдельном файле docker-compose.yml.

Команда docker-compose up собирается все контейнеры-компоненты вместе в изолированной среде и запускает развёрнутое составное приложение. При разработке более сложных, масштабируемых систем, как правило, возможностей docker compose уже не хватает. В таком случае приходится использовать более мощный инструмент оркестровки контейнеров - Kuber-netes.

Создание и запуск Docker-контейнера

с сервером 1С

При создании контейнера для развёртывания сервера 1С необходимо иметь:

- msi установщик платформы 1С: Предприятие 8 - 1CEnterprise 83.msi;

- установщик СУБД Microsoft SQL Server

- mssqlcli.msi;

- dockerfile с описанием конфигурации -dockerfile;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

- powershell скрипт для запуска служб 1С

- Wait-Service .ps1;

- powershell скрипт для установки и настройки системы в целом - starup.ps1.

Для начала необходимо расположить все файлы в одной директории. Там же создаётся dockerfile со следующим содержимым: FROM microsoft/windowsservercore. SHELL ["powershell", "Command", "$ErrorActionPrefer-ence = 'Stop'; $ProgressPreference = 'Silently-Continue';"] WORKDIR / COPY startup.ps1 Wait-Service.ps1 1cEnt.zip mssqlncli.msi./

RUN .\startup.ps1; powershell.exe -Command Remove-Item startup.psl -Force CMD . \ Wait-Service.psl -

ServiceName '1C:Enterprise 8.3 Server Agent' -Al-lowServiceRestart

Строка FROM

microsoft/windowsservercore указывает основной дистрибутив, на основе которого будет функционировать внутреннее содержимое контейнера. В данном случае это Windows Server Core.

Команда WORKDIR / отвечает за установку рабочего каталога. После этого происходит копирование установочных файлов в рабочую директорию: COPY startup.psl Wait-Service.psl 1cEnt.zip mssqlncli.msi./. После чего командой RUN запускается выполнение установочного скрипта statup.ps 1. Этот файл содержит следующий powershell-код, отвечающий за установку 1С и настройку соответствующих служб:

docker images

REPOSITORY TAG

peoples/1с-win flows latest

msiexec /i "lCEnter-prise 83.msi"/qr TRANSFORMS=adminstallrelog on.mst; l049.mst DESIGNERALLCLIENTS=0

THICKCLIENT=0 THINCLIENTFILE=0 THINCLIENT=l WEBSERVEREXT=0 SERVER= l C0NFREP0SSERVER=0 C0NVERTER77=0 SERVERCLIENT=0 LANGUAGES=RU Remove-Item c:\mssqlncli.msi -Force sc.exe config "lC:Enter-prise 8.3 Server Agent" depend= "/"

В последней строке dockerfile записывается команда, вызываемая после запуска контейнера: .\Wait-Service.psl -ServiceName 'lC:Enter-prise 8.3 Server Agent' -AllowServiceRestart.

После того, как dockerfile полностью сконфигурирован, из текущего каталога запускается команда для построения образа: docker build. Когда построение образа завершено, необходимо проверить его работоспособность. С помощью команды docker container ls возможно узнать id образа (рис. 4)._

IMAGE ID CREATED SIZE

аас106Ь82а18 1 days ago 10.2GB

Рисунок 4 - Список docker-образов в системе

Запустить docker-image можно следующим образом: docker run -d -p l54l:l54l -p l540:l540 -p l560-l59l:l560-l59l

<ID_D0CKER_IMAGE>.

Полученный docker-image доступен для распространения (через docker-registery или любым другим способом) на рабочие станции предприятия. С его помощью можно автоматически развёртывать систему командой docker run. Запуск, остановка или перезапуск контейнера с сервером 1С происходит через: docker container start/stop/restart <CONTAINER_ID>.

Заключение

Таким образом, автоматизация хозяйственной деятельности большинства предприятий России и стран СНГ уже не представляется возможной без использования ряда программных продуктов фирмы 1С. Клиент-серверный режим работы с платформой является наиболее предпочтительным, безопасным и эффективным вариантом для внедрения в средних и крупных организациях.

Благодаря созданию изолированных образов, инструмент контейнерной виртуализации Docker позволяет организовать автоматическое развёртывание сервера 1С на нескольких физических, виртуальных, облачных станциях или же настроить работу нескольких независимых версий платформы 1С: Предприятие 8 на одном локальном устройстве.

Литература

1. Корниенко Д.В. Реализация ведения управленческого учета в 1&ERP Управление предприятием 2: учебно-методическое пособие. - Елец : ФГБОУ ВО «Елецкий государственный университет им. И.А. Бунина», 2020. - 88 с.

2. 1С: Предприятие 8 Система Программ [Электронный ресурс]. - URL: https://v8.1c.ru/ (дата обращения: 28.08.2021).

3. Хрусталева Е. Ю. Технологии интеграции 1С:Предприятия 8.3 / Е. Ю. Хрусталева. - Москва : ООО «1 С-Паблишинг», 2020. - 320 с.

4. Мельников М. О. Создание и настройка облачного хранилища на базе сервера Nextcloud с помощью средства контейнерной виртуализации Docker / М. О. Мельников, Е.И. Романов // Системы управления, сложные системы: моделирование, устойчивость, стабилизация, интеллектуальные технологии: материалы VI Международной научно-практической конференции, посвященной 100-летию со дня рождения профессора А. А. Шестакова, Елец, 16-17 сентября 2020 года / Елецкий государственный университет им. И.А. Бунина. - Елец : Елецкий государственный университет им. И.А. Бунина, 2020. - С. 268-272.

5. Милл И. Docker на практике / И. Милл, Э. Хобсон Сейерс . - Москва : ДМК Пресс, 2020. - 516 с.

6. Моуэт Э. Использование Docker / Э. Моуэт. -Москва : ДМК Пресс, 2017. - 354 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.