Применение DevOps в разработке 1С

Применение DevOps в разработке 1С - EFSOL
Система 1С:Предприятие – это специализированное программное обеспечение, предназначенное для ведения управленческого, бухгалтерского, складского и других видов учета на предприятии. Но кроме того, что это учетная программа, это еще и специализированная платформа для разработки программного обеспечения, призванного автоматизировать бизнес-процессы на предприятии. Платформа 1С:Предприятие – это своего образа среда для написания кода на своем языке программирования. Она же является и средой выполнения написанного кода.

На базе 1С:Предприятие созданы целые экосистемы на крупных производственных предприятиях, созданы отдельные программные продукты на базе 1С и даже облачные сервисы . Именно поэтому разработка на базе этого программного продукта – особая ниша на рынке программных продуктов.

Мы, как компания франчайзи 1С, также имеем дело с разработкой на базе этого программного обеспечения и за долгие годы работы накопили немалый опыт и базу знаний. Но даже эти знания и опыт не всегда позволяют сократить сроки проекта, уменьшить Time To Market или выпустить программный продукт в назначенный и подготовленный маркетологами срок.

Именно поэтому, мы решили оптимизировать и автоматизировать процесс разработки ПО на базе программных продуктов 1С, используя современные методики и методологии DevOps для достижения следующих целей:

Процесс разработки 1С с использованием методов DevOps

Применение DevOps в разработке 1С - EFSOL
Рисунок 1 – Схема процесса разработки 1С с помощью методов DevOps

Выбор DevOps-инструментов для
разработки 1С

Выбор IDE для разработки или системы, собственно в которой пишут код (рабочее место для программиста), под 1С – невелик, есть 1С:EDT, но в ней частенько очень отстают платформы, под которые можно разрабатывать, а наш девиз – актуальный софт в нужное время, поэтому разработку ведем непосредственно в конфигураторе и скриптами забираем xml из нужной папки.

В качестве системы версионности используем Gitlab – On-Premises. Его же используем для CI/CD, именно поэтому и выбрали эту систему VCS, а также туда кладем отчет из Allure, но об этом чуть позже. CI запускается из dev-ветки – тестирование и загрузка кода в stage, тестирование кода в Stage.

Программисты работают в своих ветках по названию функций или исправлений. После успешного тестирования кода – отправляют запрос на слияние кода с dev-веткой. После визуального контроля кода тимлид подтверждает запрос и код из ветки программиста сливается с кодом в ветке Dev, после чего запускается сборка кода и различные тесты. Схема работы с VCS постоянно видоизменяется и оптимизируется. Схематично ее можно представить следующим образом:

Применение DevOps в разработке 1С - EFSOL
Рисунок 2 – Принципиальная схема процесса разработки 1С

Серверная структура Dev-среды разработки 1С

Остановимся подробнее на серверной структуре dev-среды. Как вы уже поняли, есть отдельный сервер Gitlab, но кроме него используется сервер управления docker-контейнерами, на котором в контейнерах запущены:

Сервер 1С

Веб-Сервер

Сервер СУБД

SonarQube

Использование контейнеров позволяет:

Кроме наличия сервера, на котором размещены роли, интересующие нас в процессе разработки, также используется так называемый X-сервер: сервер с графической оболочкой: или Windows Server с установленной ролью Сервер терминалов, или Linux с графической оболочкой для запуска клиента 1С. Использование такого сервера обусловливается тем, что все тесты в 1С должны проходить в графическом режиме и имитировать взаимодействие пользователя с системой. Мы используем несколько таких серверов на различных операционных системах для проверки работы клиента на различных платформах.

Схема серверной структуры dev-среды может быть представлена следующим образом:

Применение DevOps в разработке 1С - EFSOL
Рисунок 3 – Схема серверной структуры для разработки 1С
После слияния кода в dev-ветку запускается процесс CI в Gitlab, который:

После успешного завершения тестов, CI формирует артефакт в виде расширения и кладет его в хранилище артефактов, откуда потом его может забрать менеджер проекта или же система CD для дальнейшего использования в prod-среде.

Если говорить о тестировании уже написанного в 1С коде, то для целей контроля написанного кода, кроме встроенного в конфигураторе механизма, мы используем SonarQube с соответствующими плагинами.

Для выполнения тестов UI в графическом интерфейсе используется приложение с исходным кодом Vanessa-Automation, которая позволяет в декларативном формате описать необходимые для проведения тестов действия. Важно заметить, что для формирования и отображения отчетов по тестированию, мы также используем Allure, который позволяет не только зафиксировать собственно ошибку в процессе тестирования, но и сделать скриншот ошибки, что для 1С очень важно для поиска истинных проблем ее возникновения.

Применение DevOps в разработке 1С - EFSOL
Рисунок 4 – Пример отчетов в Allure
Применение DevOps в разработке 1С - EFSOL
Рисунок 5 – Пример отчета со скриншотом
Применение DevOps в разработке 1С - EFSOL
Рисунок 6 – Пример отчетов в SonarQube

После проведения тестов, сформированные с помощью CD CFE-файлы в результате сборки и тестирования выгружаются на Stage и, после тестирования QA, отправляются на Prod.

Результат после внедрения DevOps-методов в разработке 1С

Внедрение методик DevOps в процессе разработки 1С на этом проекте помогло сократить более 40% времени на разворачивании dev-сред, тестировании и разворачивании написанного кода. Несмотря на то, что разработка на базе платформы 1С:Предприятие значительно отличается от обычной разработки ПО, гибкие методы и методики DevOps, а также большой выбор инструментов, помогли нашей команде добиться существенного сокращения времени выхода конечного продукта на рынок.

На сегодня мы предлагаем построение CI/CD для 1С разработки с последующим обслуживанием.

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

*нажимая на кнопку, Вы даете согласие на обработку персональных данных