DevOps на проектах 1С: для кого, зачем, с чего начать

11.06.24

Разработка - DevOps и автоматизация разработки

Расскажу, кому нужен DevOps, какие инструменты использовать, с какими проблемами сталкиваются инженер и заказчик.

 



Я Максим, прошел в компании путь от ведущего разработчика 1С до  руководителя направления DevOps. Помогаю 1С-разработчикам повышать стабильность прода. Об этом рассказывал на конференции DevOpsConf 2024. Поделюсь тезисами доклада. 




 

 

Внедрите CI/CD: непрерывную интеграцию и непрерывное развертывание ПО, если:

  • У вас розница, и ваша касса должна работать всегда, иначе клиент уйдет без покупки.

  • У вас API, которым пользуются внешние сервисы. 

  • У вас Highload, и вы сталкивались с ситуацией, когда код прошел проверку разработчика, аналитика, а в продакшне упал из-за большой нагрузки.

  • Вы разрабатываете тиражные IT-решения или выпускаете релиз на внутреннего заказчика. Если вы отчитываетесь о соответствии стандартам качества, то доверьте рутину роботам.

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

  • У вас SLA, и вам надо обеспечить 99,9% аптайм на 1С. Для этого нужно контролировать код до того, как он попадет в продакшн.

  • Вам нужно минимизировать техдолг.
     

DevOps обеспечит:

  • Стабильность прода.

  • Скорость работы базы.

  • Соответствие стандартам кода.

Я вынес только три ценности, предлагаю обсудить остальные преимущества в комментариях.
 

Инструменты DevOps в 1С: как это реализовать?

Есть инструменты от вендора, есть от сообщества. Если у вас миллиардный бюджет, то обращайтесь к вендору, специалисты все вам настроят. Если вы сисадмин, которому надо внедрять DevOps, воспользуйтесь свободными инструментами.

1. OneScript

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

  • Библиотека от сообщества.

  • Можно писать на русском.

  • Можно писать на языке 1С.

На OneScript написан инструмент Vrunner.

2. Vrunner

Мощная OneScript библиотека с большим количеством возможностей для DevOps-инженера.

  • Запуск тестов.

  • Сборка обработок/расширений.

  • Операции с базой данных 1С.

  • Примеры в документации.

Команда установки ’Opm install vanessa-runner’ откроет доступ ко всей библиотеке DevOps для 1С-разработчика.  

Еще один инструмент, написанный на OneScript, — GitSync.

3. GitSync

Инструмент синхронизации с гитом.

Это библиотека, автоматизирующая работу с Git для OneScript. Без него не обойтись при работе с хранилищами 1С, если нужен Git в контуре.

Команда установки ’Opm install gitsync’ откроет доступ к гиту.

— AUTHORS: укажите email разработчиков
— Доступ к CI/CD разблокирован.

4. PipeLine

Pipeline в CI/CD автоматизирует процесс разработки и доставки программного обеспечения, ускоряя и упрощая его развертывание.

Разные инструменты для решения одной задачи: JenKins, gitlab, gitHub.

  • Управление задачами, визуализацией.

  •  Контроль статусов задач.

  •  Запуск скриптов и не только. 

Мне нравится gitlab: много возможностей, органичное совмещение системы хранения кода с PipeLine и runner.

 

Gitlab скриншот интерфейса инструмента

 

5. SonarQube

SonarQube — инструмент статического анализа кода, позволяет подключить плагины от сообщества.

Разгрузит технических архитекторов от постоянного Code Review, проверку будет выполнять робот. Он сделает это внимательно, беспристрастно. Архитекторы будут следить за логикой, а не за пробелами. SonarQube минимизирует техдолг и проверит код на соответствие стандартам.

От вендора есть АПК.

 


SonarQube скриншот интерфейса инструмента

 

6. Vanessa 

Фреймворк для автотестов.

Vanessa выполняет сценарные / дымовые тесты. Помогает их писать, выполнять, отслеживать выполнение.

Vanessa Behavior: Vanessa Automation, Vanessa-ADD.

Мне больше нравится Vanessa Automation: удобный фреймворк, большая библиотека шагов, относительно легко настроить дымовые тесты.
Если мы запустили робота, и нам нужно знать, что у нас «зеленое», что «красное», есть инструмент Allure/jUnit.

7. Allure/jUnit 

Визуализация результатов тестирования.

Vanessa-runner выгрузит результаты теста на любой из этих порталов.



Allure скриншот интерфейса инструмента

 

8. Docker
Инструмент виртуализации.
Хорошо, если вы знаете о нем, но devops-специалисту в 1С необязательно в этом разбираться. Пусть этим занимаются системные администраторы.
 

Боли заказчика

Нет специалистов со знанием DevOps и опытом в 1С

Решение: ищем специалистов на стыке. Например, 1С-разработчик с бэкграундом сисадмина, либо сисадмин с бэкграундом 1С-разработчика.

Стоимость внедрения

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

Поиск исполнителя

Если вбить «DevOps в 1С» в Google, то таких услуг будет мало. Есть организация, которая предлагает переезжать в облако на их сервера и платить по миллиону в месяц только за среду разработки, но это мало кому подходит. Наша компания предоставляет услуги devops-инженеров с оплатой по часам, есть минимальный период.

Поддержка

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

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

 

Боли инженера

«Что такое Git?»

1С-разработчик может утонуть в devops-терминологии. Компании нужен выделенный эксперт, который сможет ответить на вопросы. Либо нужно предоставить доступ к образовательным материалам: серии митапов, книгам.

Код-ревью от робота

Мы внедрили SonarQube, и сразу появилось множество вопросов у инженеров. Почему я должен писать 140 символов в строке? Почему я должен давать нормальные имена переменным? Но пусть лучше эти вопросы будут к роботу, чем к архитектору. По каждой ошибке в SonarQube есть описание.

Кто должен поддерживать конвейер?

Внедрили CI/CD, говорим инженеру, что он должен поддерживать конвейер. Инженер спрашивает: «Почему я, почему не он?». 

Другой инженер может сказать: «Почему не я?». Он сидит перед печатной формой, хотя знает Jenkins, CI/CD, сценарное тестирование, дымовое тестирование, нагрузочное тестирование. Решение: дайте ему стенд.
 

Выводы

Компаниям

  • Найдите исполнителя или обучите исполнителя.

  • Спланируйте бюджет.

  • Выделите ресурс на поддержку.

Инженерам

У нас есть чат в телеграмме «Менеджер Хранилищ, DevOps 1C и около», вступайте, развивайтесь, общайтесь.

На DevOpsConf меня спросили: «DevOps в 1С существует уже 10 лет, но почему только в этом году привезли таких специалистов?». Видимо, их было не так много или не было запроса аудитории. Но в этом году о DevOps в 1С было только два доклада: мой и специалиста из Ozon Tech. Планирую продолжать ставить 1С-ников на DevOps-рельсы, популяризировать эту тему, рассказывать об этом на конференциях и митапах.

Поделитесь опытом в комментариях, кто уже внедрил DevOps? С какими проблемами столкнулись? Что понравилось?

DevOps

См. также

DevOps для 1С DevOps и автоматизация разработки Программист Стажер Платные (руб)

Данный онлайн-курс (интенсив) предусматривает изучение процессов, инструментов и методик DevOps, их применение при разработке на платформе 1С. 

2500 руб.

20.06.2023    22396    7    4    

311

SALE! 50%

1С-программирование DevOps и автоматизация разработки Групповая разработка (Git, хранилище) DevOps для 1С Программист Стажер Платформа 1С v8.3 Платные (руб)

Использования систем контроля версий — стандарт современной разработки. На курсе научимся использованию Хранилища 1С и GIT при разработке на 1С:Предприятие 8. Разберем подходы и приемы коллективной разработки, научимся самостоятельно настраивать системы и ориентироваться в них.

4900 2450 руб.

29.06.2022    11956    100    4    

132

DevOps и автоматизация разработки Тестирование QA Программист Пользователь Платформа 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Зарплата и Управление Персоналом 3 и версии КОРП: 3.1.30.57.

2160 руб.

05.08.2024    1292    15    1    

8

DevOps и автоматизация разработки Логистика, склад и ТМЦ Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Подсистема «Управление сборкой GLI» предназначена для динамического формирования сборочных линий Gitlab и отслеживания процесса доработок систем на базе1С:Предприятия Позволяет упростить выпуск новых релизов системы, подготовить описание доработок системы. Интегрируется с GitLab API по событиям Push, Merge-request, Pipeline. Уведомляет пользователей о результатах сборки/тестирования сборочных конвейеров через СВ, либо при её недоступности или отсутствию по E-Mail. Поможет при отправке исправлений ошибок в общую базу тестирования, сформирует запросы на слияние в ветку версии только по протестированному и подтверждённому функционалу. Подсистема рассчитана исключительно на клиент - серверную архитектуру тестовых ИБ. Поддерживаемая версии СППР 2.0.4.15, платформа не ниже 8.3.17.1549, 2.0.7.3 / не ниже 8.3.21.1664, начиная с релиза 1.0.4.30 требуется платформа не ниже 8.3.23 рекомендуемый релиз 8.3.23.1997

7000 руб.

26.08.2022    12571    10    10    

35

Тестирование QA DevOps и автоматизация разработки Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.17.113.

2400 руб.

04.07.2022    8382    38    1    

29

Тестирование QA DevOps и автоматизация разработки Программист Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Бухгалтерия предприятие 3.0 и версии КОРП: 3.0.156.30.

1800 руб.

20.01.2022    7791    19    0    

13

DevOps и автоматизация разработки Программист Платформа 1С v8.3 Бесплатно (free)

В проектной разработке часто возникают проблемы с однообразностью ландшафта, производительностью и быстрой разверткой инфраструктуры. Об одном из способов избежать или изолировать данные проблемы с помощью контейнеризации расскажем в статье.

18.09.2024    1798    antonov_av    6    

14

DevOps и автоматизация разработки Бесплатно (free)

Когда информационная база «весит» несколько десятков/сотен гигабайт, для разработки и тестирования обычно используют полную копию рабочей базы. Но если информационная база превышает несколько терабайт, такой подход сталкивается с нехваткой места на диске, долгой реструктуризацией, замедленной скоростью работы и другими проблемами, связанными с размером базы. В статье расскажем, как правильно готовить копии больших баз для разработки и тестирования.

28.08.2024    6664    yuraid    28    

50
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. bayselonarrend 2087 27.05.24 10:34 Сейчас в теме
По теме Github Actions как то всплывал "Actions для 1C". Хорошая штука и для Gitlab тоже подходит

Если взять отдельно GA, то must-have на первом месте otymko/setup-onescript - action, который устанавливает в окружение OneScript указанной версии. Вообще OS в Github Actions прекрасно работает - не знаю, как там по утилитарной применимости к репозиториям с настоящими большими конфигурациями (мне кажется тут что-то локальное надо), но если обслуживать публичный проект какой-нибудь обработки или расширения, то это самый простой способ автоматизации "не отходя от кассы": все прямо поверх репозитория и есть большой маркет с готовыми решениями
2. lekot 8 27.05.24 11:13 Сейчас в теме
(1) Спасибо, + инструмент в копилку )
3. devtelscargo 27.05.24 12:31 Сейчас в теме
Проходил курс от Инфостарта - там как раз все эти инструменты подробно разбираются на практике.
Дальше только все это нужно сделать в своем окружении :)
artbear; maxis33; lekot; +3 Ответить
4. lekot 8 27.05.24 12:47 Сейчас в теме
(3) Курс у ребят весьма полезный, плюсую.
Можно также упомянуть, что в образовательной части есть классная литература (книга про devops для 1с), чатики в телеграмме почти по каждому инструменту и в целом отзывчивое комьюнити)
5. Неопределено 91 28.05.24 08:20 Сейчас в теме
Это всё интересно до тех пор, пока разные группы разработчиков не внесут изменения в одну форму, которая останется допустимой с точки зрения XML, но перестанет восприниматься как форма самой платформой. Как решать такую проблему?
6. _Ramzes 126 28.05.24 09:54 Сейчас в теме
(5) Мы решаем подобную проблему с помощью модуля ДФИ, и программного добавления реквизитов.
https://github.com/KotovDima1C/DFI
И в принципе, допустимо добавить тесты на все формы, что ключевые реквизиты имеются на форме.
13. Неопределено 91 29.05.24 04:01 Сейчас в теме
(6) Спасибо за ссылку. Смысл понятен: мы упрощаем контроль результата через усложнение разработки. Это вполне приемлемый вариант для команд, стремящихся сохранить поддержку. К сожалению, я не представляю какие слова необходимо подобрать чтобы объяснить группе из 30 разработчиков самописного отраслевого решения, что мы отказываемся от визуального создания форм в пользу программного, не вызвав волну протестов.
15. _Ramzes 126 29.05.24 08:01 Сейчас в теме
(13)
Контекст понятен. Пожалуй для самописного решения это слишком. Тогда EDT.
7. kuzyara 2091 28.05.24 09:58 Сейчас в теме
(5) не понял ситуацию, вы про гитсинк или edt?
14. Неопределено 91 29.05.24 04:14 Сейчас в теме
(7) Я про ситуацию, в которой два разработчика решили внести изменения в одну и ту же форму в пределах одного спринта в рамках несвязанных задач. Первый разработчик добавил элемент с именем "ГруппаСодержание" в шапку формы, а второй добавил элемент с таким же именем в таблицу формы. При слиянии XML этих двух форм не будет конфликтов, но при попытке открыть эту форму в режиме предприятия возникнет исключительная ситуация.
16. kuzyara 2091 29.05.24 08:41 Сейчас в теме
(14) для этого нужно добавить дымовой тест Открытия форм конфигурации и включить опцию merge_when_checks_pass в гитлабе
Прикрепленные файлы:
17. Неопределено 91 29.05.24 09:07 Сейчас в теме
(16) Да, уже написали в (8). Спасибо за ссылки, изучаю материал.
8. lekot 8 28.05.24 12:08 Сейчас в теме
(5) Дымовыми тестами отслеживать упавшие формы, заворачивать мердж реквесты, не прошедшие регресс на уровне регламента.

Разработчику - откатить сломанный коммит, объединиться сравнением с конфликтной веткой.
9. artbear 1563 28.05.24 12:51 Сейчас в теме
Странная статья, поставил минус.
- слишком общая и слабо конкретная,
- название некоторых инструментов указаны неверно
- ответа на вопрос "Что такое Git?" вообще нет, выдан ответ на какой-то другой вопрос
- и т.п. и т.д.
Yan_Malyakov; +1 Ответить
10. lekot 8 28.05.24 12:56 Сейчас в теме
(9) Привет, Артур, спасибо за фидбэк.
Статья является расшифровкой с обзорного доклада, он был действительно довольно общим.

Что такое Git - пример "боли", с которой можно столкнуться, при внедрении соответствующих инструментов. О том, что новые и незнакомые инструменты потребуют экспертизы и надо предусмотреть эту экспертизу до.
Возможно часть контекста была утрачена при переводе в текст)
11. stopa85 42 28.05.24 21:31 Сейчас в теме
Ребята, а есть какие-то причины не ставит git-lab, а ставить gittea или forgejo?

Мне нужно в репозитории положить два десятка python скриптов,
Сайт
Прошивки для Тибо и Ардуино
Не типовую конфу и т.п.

Думаю до полноценных практик с тестированием и деплоем дойдем не скоро, а может и не дойдем никогда.

Команда мини, 1 человек + подрядчики.
19. lekot 8 29.05.24 09:28 Сейчас в теме
(11) Пользуйтесь тем, что вам нравится, тем более если вы 1)
12. siamagic 28.05.24 22:44 Сейчас в теме
"DevOps обеспечит:
Стабильность прода.
Скорость работы базы.
Соответствие стандартам кода." - обеспечивает нормальный коллектив а у вас школота понаехала.

1. OneScript - нормальным программистом не нужен.
2. Vrunner - тем кто знает возможности платформы - не нужно.
5. SonarQube - для идиотов, "Архитекторы будут следить за логикой, а не за пробелами." - иностранных спецов стали брать на работу? Кто вам вообще зп платит и за что?
6. Vanessa - хня самописаная как и 1.2. - всё прекрасно делается из коробки.
21. Gesperid 2 30.05.24 08:18 Сейчас в теме
(12)
5. SonarQube - для идиотов, "Архитекторы будут следить за логикой, а не за пробелами." - иностранных спецов стали брать на работу? Кто вам вообще зп платит и за что?

1. Стандарты 1С - тоже для идиотов?
2. Всё в IT и в 1С в частности написано отечественными спецами?
18. lekot 8 29.05.24 09:11 Сейчас в теме
(12) Спасибо за фидбэк, давайте попробуем отжать из этого конструктив:
1. Что "нормальные программисты" используют вместо OneScript и делает ли его использование из нормального ненормальным?
2. По vanessa-runner: предпочитаете писать собственные библиотеки? Не осуждаю, но как совет - спорно.
3 " SonarQube - для идиотов" - без комментариев.
4. Vanessa - на чем предлагаете собирать/запускать дымовые тесты?
20. siamagic 29.05.24 17:57 Сейчас в теме
(18) Конструктива у вас отрицательное количество но попробую:
1. wsh, python, golang
2. Пара строчек не библиотека.
3. У вас архитектор считает пробелы - у вас точно всё хорошо?
4. У 1С есть механизм, либо свои пишется на коленке, приведите пример теста который на этой делается быстрей.

А самое главное никто никогда не учитывает что после теста нужно смотреть на показатели например остаток по счету.
24. lekot 8 30.05.24 14:49 Сейчас в теме
(20)
1. Golang-ом запускать сборку внешних обработок 1С? Или запускать bash/bat-скрипты со сборочными командами?) В чем будет преимущество перед OneScript?)
3. Архитекторы следят за чистотой кода в т.ч. и за соответствием кода стандартам. И разгрузить их от рутины инструментами стат. анализа - благо. Никак наличие сонара не говорит об их компетенциях.
4. Дымовые тесты - пробежаться по всем формам, подергать кнопочки, потестить командный интерфейс целиком - есть фреймворки для этого, зачем писать руками - мне не понятно. Если вам нравится - не отговариваю. Однако не понимаю зачем наговаривать на свободные инструменты в пользу платных от вендора, которые еще и с другим предназначением.
25. siamagic 31.05.24 18:52 Сейчас в теме
(24)
1. В чем преимущество вашего решения? Любая домохозяйка может?
3. А ген дир лично читает каждый документ - потому что ген дир. В вашем понимаени архитекторы видимо какие то "нубы" раз у них етсь время на такую чушь.
4. Дымовой тест пишется на коленке - есть куча наитивных от 1с. Свободного там как в линуксе - "оу ура нас вернула в командную строку!!!!" и пофигу что в винде есть wsh powershell - развлечение для дурачков.

Я за эффективность, в ваших решениях она сильно сомнительная.

Для админа - ДА, ему нужно готовое решение. Для прога это позор сплошной.
22. Yan_Malyakov 108 30.05.24 13:28 Сейчас в теме
Максим,что вы в итоге дали своей статьёй рядовому программисту 1С ?
Удочку или рыбу ?!
По моему мнению рыбу и не очень вкусную.
Зашел, посмотрел и чего ? какие плюшки как программисту даст знание девОпса ?
плюс к ЗП ?
Гиты,конвейеры = темный лес с непонятной перспективой.
Если давать статью (рыба) то в стать должен быть приведен хотя бы простейший сквозной пример.
Если давать инструмент (удочку) то должен быть расклад принесет ли мне владение таким инструментом потенциальные перспективы,например в виде собственного бизнеса .
siamagic; +1 Ответить
23. lekot 8 30.05.24 14:44 Сейчас в теме
(22) Спасибо за фидбэк.
Это скорее рассказ о нехватке рыбаков и пользе рыбалки, чем удочка или рыба :)
user2025065; +1 Ответить
26. ovasiliev 6 03.10.24 11:59 Сейчас в теме
Очень частая ситуация - бросаются на девОпс, как на серебряную пулю Люди думают, что "оно" будет работать за них само, облегчит жизнь, решит проблемы и т.п. А на самом деле, это просто на порядок увеличивает накладные расходы.
ДевОпс нужен только тем, кому нужен - это, как правило, для многоуровневой иерархии групп разработки, делающей тиражный продукт. А, к примеру, для команды разработчиков в штате конкретного предприятия - это обычно как собаке пятая нога. Или второй хвост.
Не будьте жертвой рекламы. Будьте профессионалами.
27. lekot 8 03.10.24 12:11 Сейчас в теме
(26) Полноценный CI/CD конвейер действительно может быть не нужен отделу поддержки из двух программистов.
Но отдельные инструменты (дымы, например) могут быть полезны даже им.
А польза может быть даже не в инструментах, а в том, что для их внедрения нужно определить регламенты.
Оставьте свое сообщение