Я Максим, прошел в компании путь от ведущего разработчика 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? С какими проблемами столкнулись? Что понравилось?