1C:SRE-Suite: переводим управление инфраструктурой 1С на Linux в декларативный формат. Приглашаем в Open Source проект
Декларативный подход Infrastructure as Code (IaC), превентивный Self-Healing, 5 рубежей обороны от False Success и старт разработки автономных ИИ-агентов для экосистемы «1С:Предприятие 8».
Публичный релиз стека инструментов: автоматизация сборки EDT V44; Конфигуратор, мягкая ротация rphost, безопасный logcfg.xml и запуск ИИ-дежурного на базе MCP
Сопровождение крупномасштабных систем на платформе «1С:Предприятие» в Linux-окружении традиционно страдает от реактивного подхода и ручного вмешательства. Администрирование через графические утилиты и проведение обновлений во внерабочее время приводят к неизбежному дрейфу конфигураций на серверах одного кластера. В результате среднее время локализации сбоев (MTTR) растет, делая недостижимой плановую доступность систем на уровне 99,9%.
Для стабилизации показателей надежности необходим переход к концепции Infrastructure as Code (IaC), когда все настройки, сборочные скрипты и параметры сред описываются декларативно и хранятся в системе контроля версий.
С этой целью мы запустили открытый проект 1C:SRE-Suite (DevOps & Stability Enterprise Suite for 1C on Linux). Мы выложили в публичный доступ проверенный набор инструментов, призванный заменить интуитивную настройку строгими воспроизводимыми регламентами. Исходный код проекта доступен на GitHub: NickScherbakov/1c-sre-suite.
- Архитектурное наполнение SRE-пакета
- Гарантированный синтаксический контроль: 1c-ci-linux-build-v4.sh
- Бесшовный импорт проектов: edt-to-configurator.js
- Превентивная ротация и Self-Healing: папка orchestrator
- Безопасные настройки среды: папка config
- Главный вектор: разработка автономных ИИ-SRE агентов (AIOps)
- Как принять участие в Open Source проекте?
📂 Архитектурное наполнение SRE-пакета
В репозитории уже опубликован готовый технологический стек, закрывающий ключевые задачи автоматизации сборки, сетевого лицензирования и упреждающего контроля стабильности серверов 1С в среде Linux:
1. Гарантированный синтаксический контроль: scripts/1c-ci-linux-build-v4.sh
Пакетный запуск Конфигуратора 1С на Linux имеет крайне опасную особенность: при возникновении критических ошибок или проблем с сетевыми лицензиями утилита DESIGNER способна завершить выполнение с успешным кодом возврата операционной системы 0. Механизм динамической компиляции скрывает дефекты вплоть до выполнения кода реальными пользователями.
Наш сборочный скрипт исключает попадание дефектного кода в рабочую среду с помощью пяти оборонительных слоев:
| Рубеж защиты | Скрытая угроза в Linux | Инженерное решение SRE-Suite |
|---|---|---|
| Слой 1: Нормализация логов и BOM | Платформа пишет лог в UTF-16LE или UTF-8 с BOM. Стандартный grep в Linux UTF-8 окружении пропускает строки ошибок. |
Определение MIME-кодировки утилитой file, конвертация через iconv в UTF-8 и удаление байтов BOM: sed -i '1s/^\xEF\xBB\xBF//'. |
| Слой 2: Проверка целостности отчета | «Тихое» падение ядра платформы на старте создает пустой файл отчета, который парсеры трактуют как «ошибок нет». | Физическая проверка заполнения лога [[ -s "$LOG_FILE" ]] перед парсингом. Пустой лог немедленно валит пайплайн. |
| Слой 3: Мультиязычный POSIX-парсер | В зависимости от локали контейнера сообщения выводятся на русском или английском (Error, Undefined, Expected). |
Универсальный расширенный regex-шаблон, охватывающий терминологию ошибок компилятора обеих локалей платформы. |
| Слой 4: Изоляция процессов и lock-файлов | Предыдущий прерванный запуск оставляет брошенные файлы блокировок (*.1cLck, 1Cv8.lk), блокируя последующие сборки. |
Генерация уникального RUN_ID, проверка активных процессов через pgrep и автоматическая зачистка зависших lock-файлов. |
| Слой 5: Сверка метаданных с Git | Синтаксический контроль пройден, но структура метаданных в собранной БД отличается от исходников в коммите. | Обратная выгрузка метаданных из СУБД (/DumpConfigToFiles) и побайтовое сравнение diff -r с каталогом Git. |
2. Бесшовный импорт проектов: scripts/edt-to-configurator.js
Современная среда разработки 1C:Enterprise Development Tools (EDT) оперирует структурированным деревом XML-файлов и модулей Eclipse, тогда как боевой сервер исполняет исключительно скомпилированные бинарные контейнеры конфигураций (.cf) и расширений (.cfe).
При попытке автоматизировать трансляцию инженеры упираются в ограничения встроенных инструментов: утилита ring только транслирует схему метаданных, а автономный сервер ibcmd требует физического развертывания локальной базы данных.
edt-to-configurator.js на базе Node.js берет эту двухэтапную рутину на себя: парсит проект, вычисляет совместимые версии EDT и платформы в системе, инициализирует временную базу данных на быстром диске, импортирует метаданные и отдает готовый бинарный артефакт в CI/CD пайплайн.3. Превентивная ротация и Self-Healing: папка orchestrator
Утечки оперативной памяти в рабочих процессах rphost на Linux обусловлены их нативной природой (скомпилированные бинарные сборки C++). В среде Linux ядро рассчитывает общий объем потребляемой памяти процесса как сумму физических резидентных страниц (vmRSS) и вытесненного дискового свопа (vmSwap). Игнорирование Swap в мониторинге создает иллюзию «освобождения» памяти, пока система не уходит в глубокий I/O-ступор.
На лицензиях уровня ПРОФ встроенные механизмы ограничения памяти платформы игнорируются, а жесткий лимит cgroups в Docker приводит к мгновенному обрыву сотен сеансов по SIGKILL от OOM-killer.
Концепция внешней оркестрации «Перестарков»
Наш оркестратор на базе RAS API непрерывно анализирует состояние кластера и выявляет процессы-«перестарки»:
- Время жизни процесса превысило регламентный лимит (например, более 24 часов непрерывной работы);
- Количество активных соединений пользователей опустилось до нуля:
Connections == 0; - Процесс плавно выводится из эксплуатации и перезапускается без обрыва активных транзакций и сеансов пользователей.
Модуль укомплектован production-ready шаблонами служб admincluster-monitor@.service и периодическими таймерами admincluster-monitor@.timer для демона systemd.
4. Безопасные настройки среды: папка config
В состав пакета включены выверенные конфигурационные файлы, исключающие деградацию продуктивных серверов:
| Компонент | Назначение артефакта | Инженерный эффект |
|---|---|---|
config/logcfg.xml |
Профиль технологического журнала для точечной фиксации аномалий. | Фиксирует события CALL/SCALL от 100 МБ памяти, запросы к СУБД DBPOSTGRS свыше 50 МБ или более 5 секунд, и системные исключения EXCP. Защищает диск от переполнения гигабайтами логов. |
config/nethasp.ini |
Точная сетевая маршрутизация к HASP License Manager. | Прямое указание IP-адреса сервера лицензий (порт UDP 475) и полное отключение широковещательного broadcast-поиска (NH_USE_BROADCAST = Disabled), устраняющее сетевые таймауты при старте сессий. |
docker/Dockerfile |
Базовый образ сборочного агента на Ubuntu 22.04 LTS. | Преднастроенные локали ru_RU.UTF-8, системные шрифты MS Core Fonts, виртуальный фреймбуфер Xvfb и запуск под непривилегированным пользователем для безопасной headless-компиляции. |
🤖 Наш главный вектор: разработка автономных ИИ-SRE агентов
Автоматизация сборок и ротация процессов по жестким статическим правилам — это лишь первая фаза развития проекта. Мы официально объявляем о начале проектирования и разработки специализированных ИИ-агентских систем для обслуживания инфраструктуры 1С.
В рамках проекта 1C:SRE-Suite мы приступаем к созданию интеллектуальных агентов нового поколения:
- Интеграция по стандарту MCP (Model Context Protocol): Мы разрабатываем собственный MCP-сервер для 1С, который позволит большим языковым моделям безопасно и напрямую взаимодействовать со структурой метаданных, конфигурационными файлами, кластером серверов и журналом регистрации.
- Интеллектуальный дежурный инженер (AI On-Call): ИИ-агент подключается к контуру мониторинга, в реальном времени считывает и кластеризует аномалии в технологическом журнале, автоматически сопоставляя пики потребления памяти в процессах
rphostс конкретными вызовами и строками кода на BSL. - Self-Healing на уровне прикладного кода: Обнаружив утечку памяти, мутабельную коллекцию в кэшируемом модуле или неоптимальную транзакцию, агент самостоятельно генерирует патч исправления кода BSL и создает Pull Request в репозиторий проекта с детальным отчетом.
🤝 Как принять участие в проекте?
Мы стремимся объединить практическую экспертизу архитекторов, разработчиков и SRE/DevOps-инженеров, чтобы создать признанный открытый отраслевой стандарт надежной эксплуатации 1С на Linux.
Приоритетные направления для совместной работы прямо сейчас:
| Направление | Задачи и технологический стек |
|---|---|
| Разработка ИИ-компонентов | Проектирование навыков для ИИ-агентов (Agent Skills), реализация MCP-инструментов для анализа логов и BSL-кода. |
| Инфраструктурные плейбуки | Разработка сценариев Ansible для автоматической сборки отказоустойчивых кластеров PostgreSQL под управлением Patroni, etcd и vip-manager. |
| Расширение CI/CD-контуров | Адаптация и тестирование пайплайнов под GitHub Actions, GitLab CI, Jenkins и TeamCity. |
| Автоматизация тестирования | Интеграция headless-прогонов сценарных тестов через Vanessa-Automation и модульных тестов YAxUnit в Docker-раннерах. |
Проект поставляется под открытой коммерческой лицензией MIT: вы можете свободно использовать его, дорабатывать и внедрять в инфраструктуру своего бизнеса.
Перейти в репозиторий NickScherbakov/1c-sre-suite на GitHub →
Присоединяйтесь к проекту, тестируйте на своих стендах, делитесь идеями в Issue и присылайте Pull Request'ы!
Материал подготовлен для сообщества DevOps-инженеров, системных администраторов и архитекторов «1С:Предприятия».
Нинель и Николай Щербаковы — декларативная инфраструктура, SRE и интеллектуальная автоматизация экосистемы 1С на Linux.
Вступайте в нашу телеграмм-группу Инфостарт