Новые потребности рынка: CI/CD и Observability для 1C

У российского бизнеса, ведущего разработку своих информационных систем на платформе 1С, появились новые потребности: наряду с увеличением скорости вывода продукта на рынок (Time to Market) требуется сокращение сроков решения проблем, то есть важна скорость нахождения причин инцидентов. Мы расскажем, почему возникла такая необходимость, какие есть сложности в удовлетворении этих бизнес-потребностей и как в этом помогает использование технологических инструментов автоматизации разработки под 1С.

Почему у российского рынка возникли такие потребности?

С уходом с отечественного рынка и отзывом лицензий зарубежных производителей ERP-систем, таких как SAP, Microsoft Dynamics и других, отечественный бизнес за неимением альтернатив стал чаще использовать платформу 1С. Эта операционная среда тоже позволяет создавать информационные решения для управления процессами в бизнесе и управления предприятием, однако с некоторыми ограничениями. Микро- и малый бизнес вполне удовлетворяет конфигурация решения «из коробки». Средний и крупный бизнес разрабатывают расширения типовых конфигураций 1C «под себя».

Компании, которые вынуждены были переехать с зарубежных ERP на 1С, за годы использования привыкли к определённому функционалу и хотят видеть подобный инструментарий в 1С. Чтобы в бизнес-процессах не было простоев, им надо разработать этот функционал в короткие сроки, а для этого, как известно, нужны DevOps-инструменты, которые обеспечивают командную разработку. В 1С они отсутствуют — его хранилище не поддерживает ветвлений, из-за чего процесс разработки в этой среде линейный, а не параллельный.

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

Сложности разработки в 1С и как здесь помогает CI/CD

Крупные компании пришли к тому, что сформировали внутренние команды разработки под 1С, однако на больших проектах даже их часто не хватает. Более того, самой инхоум-команде сложно работать без тех самых средств коллективной разработки. При этом стандартные DevOps-инструменты, применяемые для параллельной веб-разработки, не годятся напрямую для среды 1С, ведь она имеет инструментальные особенности (уникальный язык программирования 1С, специфические скрипты и конфигурации). Эти инструменты должны быть изменены или даже пересозданы для того, чтобы весь функционал, ускоряющий веб-разработку, можно было перенести в среду разработки 1С. А именно:
  • 1
    CI/CD — инструменты управления выкладкой новых релизов и их тестирования.
  • 2
    Observability — все инструменты мониторинга и работы с логами.
  • 3
    Описание инфраструктуры кодом. В 1С IaC осуществляется на их собственном языке-интерпретаторе, который позволяет отрабатывать задачи из 1С без самой 1С-платформы.
Очевидно, что 1С нуждается в выработке специальных лучших практик (best practices), основанных на CI/CD. Да, компания 1С разрабатывает решение 1C:Enterprise Development Tools, рассчитанное на крупный бизнес, и вскоре, вероятно, мы получим удобные и быстрые инструменты для командной разработки. Но пока что в 1С применяется классический подход, основанный на Eclipse IDE — требовательного к вычислительным мощностям инструмента, который приводит к проблемам, в том числе к неоправданно высокому потреблению дорогого аппаратного ресурса. Мы применяем его по запросу наших заказчиков. Но для меньшего бизнеса зачастую лучше работают более легковесные решения для разработки с открытым исходным кодом, которые мы также активно используем.
К примеру,
в Git in Sky был проект, на котором для четырёх разработчиков нам надо было развернуть 4 отдельных копии боевой базы 1С, каждая размером под терабайт. При работе через стандартные инструменты 1С на каждой конфигурации может быть запущен только один конфигуратор, а изменения может вносить только один человек. Процесс слияния конфигураций (merge) был хлопотный и долгий, поскольку происходил вручную. При внедрении CI/CD потребление ресурса стало иным за счёт внедрения автоматизации. Программный код, который пишет разработчик, сразу применяется на тестовой платформе, где под него запускаются контейнеры, образуя микросервисную архитектуру. Отсутствует необходимость клонировать отдельную боевую базу 1С под каждого разработчика, не требуется резервировать терабайты дорогого высокоскоростного хранения и другого аппаратного ресурса.

Лучшие практики коллективной разработки в 1С от инженеров Git in Sky

В Git in Sky уже выработали лучшие практики для параллельной командной разработки в 1С и готовы передать этот опыт технической стороне заказчика по запросу. Выстраивание и поддержание CI/CD-пайплайна в 1С исключает большие, ломающие систему мёрджи «вручную». В результате система всегда в целом остаётся стабильна, выпуск релиза становится проще, а бизнес-процессы в части разработки нового функционала под 1С осуществляются быстрее.

Что мы делаем в области IaC

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

Что мы делаем в области CI/CD

Организуем процессы коллективной разработки и настраиваем связи между командами, а также автоматизируем процессы тестирования и доставки программного кода в продуктивную среду для ускорения выхода релизов и обновлений (сокращения Time to Market). CI/CD ускоряет TTM компании до 10 раз.
Пример
Несмотря на то, что из-за особенностей 1С сборка конфигурации приложений происходит чуть дольше (с 20 минут до 1 часа), общий TTM все равно уменьшается. Так, наш заказчик — известная сеть продуктовых магазинов — сократил время вывода приложений на рынок с 1 года до двух месяцев.
Имея такие механизмы CI/CD, нашим заказчикам также ничто не мешает привлекать внешние команды разработчиков, которые помогут оперативно решить возникшую задачу. В этом случае масштабирование команды разработки перестаёт быть проблемой.

Что мы делаем в области Observability

Настраиваем мониторинг и контроль логов внутри 1С. Эти инструменты информируют об инцидентах, что позволяет решать проблему быстрого обнаружения причин инцидентов и ускоряет анализ ошибок. Инструменты автоматизации также позволяют переносить инфраструктуру (в том числе 1С-инфраструктуру) в облако и обратно. Наш опыт внедрения инструментов Observability в вебе способствует их быстрому внедрению и в 1С.
Пример
Заказчик — среднее по масштабу ритейл-предприятие по торговле автозапчастями. Внедрение систем мониторинга и контроля логов позволило уменьшить время фиксации инцидентов и улучшения критичных параметров сервиса до 10 раз: было от нескольких часов до нескольких дней, а сейчас за 1-2 часа. Бухгалтеры «уходили курить», потому что не могли ждать целых 20 минут, пока система даст ответ. Мы установили системы Observability, которые помогли быстро найти причины замедления, что и явилось решением по повышению производительности системы.

Результаты

Observability и CI/CD применительно к 1С ускоряют разработку и внедрение новых функций в систему за счёт автоматизации и максимального исключения человеческого фактора из процессов сборки, тестирования и доставки. Если раньше небольшое нововведение в бизнес приходилось создавать, тестировать и выводить в продакшн примерно один год, то инструменты CI/CD позволяют это сделать за 2-3 месяца.

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

Благодаря внедрению этих инструментов разработчикам в 1С не приходится тратить недели и месяцы на тестирование, сборку и доставку — эти процессы автоматизированы, поэтому ускорены до часов. Одновременная командная разработка не тормозит процесс создания продукта. Качество и скорость выпуска релизов значительно повышается.