DevOps. Как это выглядит у нас

01.10.19

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

DevOps в департаменте разработки 1С в крупной компании.

В июне этого года мне предложили выступить на конференции. Тайминг был 25 минут, поэтому я подготовил выступление из двух частей, первая - о проекте, а вторая - о том, как мы понимаем и используем DevOps. В самый последний момент время на выступление сократили в два раза, из-за чего я рассказал только первую часть, а вторая пылилась на яндекс-диске. Сейчас, разбирая залежи я случайно наткнулся на презентацию и расшифровку, которую планировал читать. Не пропадать же добру? Наверное статья кому-то покажется сырой, ведь фактически формат предполагал быстренько рассказать "а как у нас", а потом уже в кулуарах обсудить детали. Кто-то попрекал меня, что я превращаю инфостарт в личный дневник. Пожалуйста, закройте страницу и не читайте дальше. Дальше будет жесткое IMHO!
Так как изначально это была презентация - я сохраню формат, сначала слайд - потом текст.

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

Интеграция команд 

Начнем с определения взятого с википедии: 

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

Бизнес заводит Запрос на изменение в специальной системе, так называемый RFC. RFC поступает к владельцу продукта. Все приложение поделено на 5 условных частей и есть соответственно 5 scrum-команд: 

  • Продажи 

  • Товародвижение 

  • B2B 

  • Дилеры 

  • Интернет-магазин. 

Что значит эти команды и чем занимаются для нашего рассказа не важно, не буду заострять на этом внимание. Итак, задача поступает к владельцу продукта, он ставит ее в беклог. Каждые две недели выполняется так называемый грумминг, когда RFC делятся на мелкие задачи, которые можно поручить одному человеку, будь то бизнес-аналитик, разработчик, тестировщик или администратор. Администраторы, кстати не относятся ни к какой команде, а привлекаются по мере необходимости. Затем уже прогрумленные задачи включаются в спринт. Таким образом в спринт может, например войти – «провести анализ по RFC», следовательно над задачей уже работают, но в релиз она не войдет. По окончании разработки, но до передачи задачи в тестирование проводится УАТ, приемочное тестирование, на котором заказчик смотрит, что сделали именно то, что он хотел. В УАТ обязательно участвует сотрудник технической поддержки и как раз вот этот момент – это чистый DevOps. Сотрудник техподдержки так же как и заказчик может сразу высказать свои замечания, например сообщить, что вот эти моменты нужно переделать, здесь обязательно добавить логирование, уточнить по планируемой нагрузке на систему в условных попугаях и дать предположение о необходимости оптимизации решения ДО его выпуска в продуктив. 

Перед выпуском релиза команда сообщает список задач, которые готовы к выпуску в релиз и помещает весь готовый к выпуску в продуктив код в релизное хранилище. Я не буду тут углубляться в технические детали, сколько у нас хранилищ, кто и когда помещает в них код, это для данной темы не очень важно. После сборки релиза все тестировщики перестают быть членами скрам-команд и превращаются в команду тестировщиков. Начинается регрессионное тестирование. На текущий момент оно длится около полутора дней и состоит примерно из 240 регрессионных тестов. По окончании регрессионного тестирования принимается решение о выпуске релиза. После выпуска релиза свою работу начинает техподдержка, анализируются основные показатели работоспособности системы, такие как APDEX, нагрузка на систему, анализ технологического журнала на количество эксепшенов, время ожиданий на блокировках и еще несколько десятков параметров. Кроме того внимательно изучаются все поступающие инциденты. На основании полученных данных заводятся дефекты с критичностью от 1 до 4, где 1 – полная остановка системы в результате дефекта, а 4 – есть ошибка на неосновном функционале имеющая обходное решение. 

Таким образом можно сказать, что в имеющихся условиях (например мы по закону не имеем права предоставлять разработчикам доступ в продуктивную систему, а так же сотрудник, который пишет код – не имеет права самостоятельно его тестировать), так вот, в имеющихся условиях мы смогли обеспечить максимальную интеграцию всех участников процесса. Ставим Check. 

СI/CD. 

Священная корова DevOps. 

Начнем с неприятного. Мы не используем EDT. Причины со сцены я озвучивать не буду. Примем как данность. Значит у нас нет гита. 

Continuous Integration.  

У нас нет автоматической сборки проекта, однако часть CI присутствует. На проекте работают 12-15 разработчиков, которые ежедневно, а иногда и несколько раз в день помещают свой код в хранилище разработки, из которой уже обновляются базы, в которых работают тестировщики. Статистика показала, что в день проходит примерно 20-40 таких пул-реквестов. 5-10 раз в сутки основная база для тестирования обновляется из хранилища разработки. Каждую ночь запускаются автотесты, по результатам выполнения которых тестировщики заводят дефекты. Пока вручную. Можно ли считать это непрерывной сборкой? Считаю что да. 

Continuous Delivery. 

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

Automated Testing 

Процесс обкладывания кода автотестами в среде 1С несильно распространен, поэтому данная практика оказалась одной из самых сложных в проекте. Однако опыт, накопленный «Серебряной пулей» позволил нам в течение 3 месяцев подготовить стенд и обучить сотрудников группы тестирования созданию автотестов. На текущий момент порядка 220 кейсов обложены автотестами (см. выше), кроме того после выхода новых задач появляются кейсы в регрессионном тесте, которые так же кладутся в скоуп задач по созданию автотестов. По мере возможности тестировщики берут и разрабатывают автотест для конкретных кейсов. 

Внедрение автотестирования позволило сократить регрессионное тестирование перед выпуском релиза с 90 до 35 человекочасов (с 1.5 до 0.5 рабочего дня при участии 7 тестировщиков) 

Инфраструктура как код (Infrastructure as Code) 

На текущий момент не используется. 

Continuous Deployment 

Не так давно (меньше года назад) 1С представила свой новый продукт: «Центр администрирования». Он позволяет автоматизировать то, что раньше делалось вручную, писались разрозненные скрипты или использовались продукты других компаний. На текущий момент Центр администрирования встроен в Центр контроля качества, который мы активно используем в качестве CMDB и системы мониторинга, поэтому сразу после появления данного продукта наши администраторы начали менять свои самописные скрипты на сценарии в данном продукте. На текущий момент уже выполнена автоматизация установки продуктивного релиза которая включает в себя блокировку базы, перезапуск служб и очистку сеансовых данных, подключение к релизному хранилищу и обновление основной и конфигурации базы данных. Участие человека сводится к запуску скрипта, которая нужна лишь для соблюдения регламента компании. 

Load Testing 

Для проведения нагрузочного тестирования есть специальный стенд, состоящий из 6 физических серверов, полностью повторяющих продуктивную среду. После того, как релиз-менеджер дает отмашку о готовности релиза конфигурация, полностью соответствующая той, что выйдет в продуктив устанавливается на нагрузочный стенд, после чего в течение 6-8 часов 8 тысяч клиентских сессий эмулируют типовую нагрузку на систему, пробивают чеки, проводят накладные на поступление товара и прочее. По итогу нагрузочного теста формируется сводная оценка APDEX согласно методике, рекомендованной компанией 1С. Оценка считается от 0 до 1, где 1 – падения производительности не зафиксировано, а 0 – система фактически не работоспособна. На основании полученной оценке принимается решение о выпуске релиза. 

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

Application Performance Monitoring 

В системе регистрируется время всех основных операций, на текущий момент их около 40. По каждой из операций с бизнес-подразделениями компании заключен формальный договор, какое среднее время операции считать хорошим, какое приемлемым, а какое плохим. Мониторинг в системе настроен таким образом, что если время какой-либо операции отклоняется от «хороших» значений об этом немедленно оповещаются администраторы и в системе ServiceDesk заводится инцидент. В зависимости от количества операций и от степени их отклонения от нормы приоритет инцидента может быть повышен вплоть до критического (система недоступна для работы). 

Выводы

Несомненно разработка в 1С накладывает определенные ограничения для использования современных технологий разработки, однако все эти технологии имеют несколько вариантов прочтения и прикрыв глаза ладошками можно гордо заявить - мы внедрили DevOps :)

93b7172cfbf01d9c59c06e931383a3df.png

Технологический консалтинг и DevOps для 1С

Мы решаем проблемы производительности, инфраструктуры и автоматизации разработки на 1С


Вступайте в нашу телеграмм-группу Инфостарт

DevOps администрирование менеджмент

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

DevOps и автоматизация разработки Тестирование QA Групповая разработка (Git, хранилище) Программист 1С:Предприятие 8 Бесплатно (free)

Четыре года в интеграторе я работал с git и EDT. Git после хранилища полюбил сразу: видно, кто и что менял. С EDT сложнее: тормозит, ошибки при обновлении ERP, автономный сервер внутри него работает только с файловой базой. На новой работе команда захотела перейти на git, я развернул EDT, и оно на второй день разрушило проект при загрузке расширения. Тогда я решил дать команде git с привычным Конфигуратором и инструмент, который за минуту доносит коммит до базы через ibcmd, вместо получасовой загрузки из файлов. На новой работе разрешили ИИ, и я написал это приложение с его помощью: от чтения документации и первого ТЗ до идей в электричке. Впервые за годы снова почувствовал себя творцом, а не закрывателем задач. По дороге приросли выгрузка, объединение и проверка конфигурации по коммитам, YAxUnit и режим MCP-сервера. В статье: схемы, скриншоты, грабли и честный список ограничений. Ссылки пока нет: хочу понять, нужно ли это кому-то, кроме меня.

03.09.2026    8717    KatanaDragon511    26    

34

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

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

31.08.2026    2143    Evil Beaver    2    

13

Нейросети DevOps и автоматизация разработки EDT Системный администратор Программист Руководитель проекта Стажер 1С 8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:ERP. Управление холдингом Абонемент ($m)

Почему ни утилита ring, ни ibcmd не способны «из коробки» собрать бинарный .cfe из исходников EDT без развертывания СУБД? Разработчики коммитят код в Git из 1C:EDT, но на серверы тестирования и в прод по-прежнему требуются бинарные контейнеры Конфигуратора. Ручные манипуляции с XML, локальные временные базы и забытый синтаксический контроль на каждой задаче сжигают часы рабочего времени. В статье разбираем архитектуру инструментов платформы и выстраиваем сквозной автоматический мост между EDT и Конфигуратором: - Анатомия сборки: почему ring только транслирует схему XML, а ibcmd жестко завязана на структуры СУБД; - Трансформация процессов: как освободить программиста от рутины, победить кодировки и Xvfb в Linux и сделать Git единственным источником правды; - Zero-dependency решение: скрипт edt-to-configurator.js, работающий и как консольный сборщик, и как Agent Skill для ИИ-ассистентов; - Ready-to-use CI/CD: готовые конфигурации для GitLab CI и GitHub Actions.

1 стартмани

31.08.2026    986    Ninel_S    0    

1

DevOps и автоматизация разработки Нейросети Программист 1С 8.3 Россия Бесплатно (free)

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

26.08.2026    820    YA_2159986692    2    

1

DevOps и автоматизация разработки Мониторинг Тестирование QA Программист 1С:Предприятие 8 Бесплатно (free)

Платформа 1С давно вышла за рамки учетных систем. Сегодня это полноценная среда для создания сложных, высоконагруженных и распределенных приложений. А значит, и стек технологий современного разработчика кардинально изменился. Систематизируем весь инструментарий, который превращает 1С-программиста в инженера: от EDT и Git до автотестов на YAxUnit, контейнеризации приложений в Docker, мониторинга в Prometheus и организации шины данных на Kafka. Разберемся, зачем каждый инструмент нужен, как он вписывается в жизненный цикл разработки и с чего начать его внедрение.

25.08.2026    18894    mrXoxot    51    

75

Linux DevOps и автоматизация разработки Программист 1С 8.3 Беларусь Россия Казахстан Бесплатно (free)

Разворачивание полноценной CI/CD инфраструктуры для 1С на Linux — это не просто дань моде, а жесткая необходимость для бизнеса, который не может позволить себе простои из-за ошибок человеческого фактора.

25.08.2026    980    Ninel_S    0    

1

DevOps и автоматизация разработки Программист 1С 8.3 1С:Управление торговлей 11 Россия Бесплатно (free)

Полный цикл разработки расширения 1С в пакетном режиме DESIGNER: выгрузка, правка, гейт компиляции, применение к базе и контроль результата — без единого клика в конфигураторе. Разбираю семь мин, на которых подорвался лично: почему LoadConfigFromFiles возвращает нулевой код на битом модуле, зачем нужен Xvfb, как pgrep находит сам себя, кто держит базу и как отличить работающий сеанс от забытого, и почему после рестарта сервера база остаётся закрытой. Платформа 8.3.27, УТ 11.5, сервер на Linux.

24.08.2026    3215    YA_2159986692    7    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. genayo 01.10.19 08:15 Сейчас в теме
Вопрос несколько не по теме - а ни разу не пожалели, что 1С для такого крупного проекта выбрали? И интересно было бы узнать причины, почему именно 1С :)
maksa2005; smit1c; chg; zabaluev; +4 3 Ответить
6. Repich 592 01.10.19 12:22 Сейчас в теме
(1) Нет. Нам требовалось решение с возможностью дешевых и быстрых доработок. Ни SAP и Oracle таких вариантов не предоставляют. SCRUM это не про них.
Andreeei; +1 Ответить
7. genayo 01.10.19 12:26 Сейчас в теме
(6) Интересно, кроме SAP Oracle и 1С вообще ничего не рассматривали? Самостоятельная разработка на JAVA или Net вообще не вариант?
8. Repich 592 01.10.19 13:09 Сейчас в теме
(7) Нет, эти варианты не рассматривались.
10. acanta 01.10.19 16:21 Сейчас в теме
Тело не живёт без мозга (с)
Какое СУБД или какие форматы бд есть у Java?
sasha777666; +1 Ответить
11. genayo 01.10.19 18:26 Сейчас в теме
(10) Мы обсуждаем не универсальное, а специализированное решение :))
2. Pr-Mex 187 01.10.19 09:11 Сейчас в теме
Дорогу осилит идущий!
Shmell; support; +2 Ответить
3. botokash 403 01.10.19 09:32 Сейчас в теме
например мы по закону не имеем права предоставлять разработчикам доступ в продуктивную систему, а так же сотрудник, который пишет код – не имеет права самостоятельно его тестировать


А можете прояснить данный момент, что за законы?
sasha777666; user1233595; утюгчеловек; +3 Ответить
4. GreenDragon 01.10.19 10:52 Сейчас в теме
(3) Предположу, что закон о персональных данных
5. Repich 592 01.10.19 12:20 Сейчас в теме
9. Summer_13 01.10.19 15:47 Сейчас в теме
"Несмотря на то, что динамическое обновление присутствует в 1С уже очень давно – мы его не используем"
Сразу можно ставить плюс =)) Постоянно наблюдал и наблюдаю ,как с течением времени отваливаются базы у разработчиков,которые используют динамическое обновление.
12. OPM 353 10.10.19 10:43 Сейчас в теме
(9) Периодически использую динамическое обновление, и ничего - базы работают, главное не забывать делать обновление в монопольном режиме. p.s. от передоза соли тоже можно умереть, ты же не выбрасываешь солонку?
13. Summer_13 10.10.19 11:59 Сейчас в теме
(12) Какой смысл в динамическом обновлении,если Вы можете делать обновление конфигурации в монопольном режиме?
14. OPM 353 10.10.19 16:12 Сейчас в теме
(13) Если для вас норма выкидывать всех из базы в середине рабочего дня - то не вопрос, можно делать только в монопольном, пользователи подождут.
Но чаще всего бизнес не хочет останавливаться, вот здесь и решаешь или пользователи ждут до следующего дня, или динамическое обновление.
Я против того, чтобы обновлять бездумно раз 10 на дню, но говорить, что это абсолютное зло неправильно.
Иногда запрещают использовать динамическое обновление - чтобы не было ситуации когда один попросил и обосновал, второй, третий, и не каждому откажешь, а потом база легла, в этом случае проще запретить для всех, чем разгребать обиды: почему для одного обновили, а второму нет.
15. Summer_13 10.10.19 16:23 Сейчас в теме
(14)Так это Вы же делаете в монопольном режиме "главное не забывать делать обновление в монопольном режиме",как у вас в этот момент работают пользователи? А если Вы всех выгоняете -зачем делать обновление динамическим?
16. OPM 353 10.10.19 16:26 Сейчас в теме
(15)Вечером делаешь в монопольном или в выходные (когда есть окно для обслуживания), когда нет никого.
17. Cyberhawk 135 24.10.19 20:06 Сейчас в теме
динамическое обновление присутствует в 1С уже очень давно – мы его не используем. К счастью, 1С придумала расширения
Ты не поверишь...
18. kwazi 816 15.11.19 17:18 Сейчас в теме
ЦА в ЦКК сами встроили?
19. kwazi 816 15.11.19 17:51 Сейчас в теме
(18) нашел. Его можно использовать как самостоятельное приложение или в составе ЦКК
Для отправки сообщения требуется регистрация/авторизация