Создание шаблона DevOps применительно к индустриальной Continuous Intelligence платформе
Автор: Малых М.А., Предеин Н.С., Бурдин Д.Е., Медведев М.А.
Статья в выпуске: 2 (67) т.21, 2025 года.
Бесплатный доступ
В статье рассматривается разработка шаблона DevOps для платформы Object Relations Technique/Continuous Intelligence (ORT/CI), предназначенной для поддержки концепции Continuous Intelligence в промышленных приложениях. Платформа ORT/CI включает инструменты Apache NiFi, JupyterLab и Totum, что обеспечивает интеграцию больших данных и аналитики непосредственно в операционные процессы. Цель работы - создать универсальный шаблон версионирования, развертывания и сопровождения пользовательских приложений на этой платформе, а также настроить сбор и визуализацию метрик и логов с помощью инструментов Prometheus, Grafana и Loki. В рамках работы был реализован конвейер CI/CD на основе GitLab CI с контейнеризацией (Docker, Kubernetes), реализовано автоматическое развертывание функций, созданных в JupyterLab, с помощью без серверной платформы Nuclio. Разработанный шаблон упрощает вход в среду ORT/CI, обеспечивая стандартизацию процессов разработки и эксплуатации. Результаты показывают, что интеграция современных DevOps-практик позволяет повысить автоматизацию и прозрачность работы платформы, сохраняя при этом гибкость настройки и масштабируемость.
Платформы интеграции, мониторинг, автоматизация
Короткий адрес: https://sciup.org/14133747
IDR: 14133747 | УДК: 004.75
Текст научной статьи Создание шаблона DevOps применительно к индустриальной Continuous Intelligence платформе
том 21 № 2 (67), 2025, ст. 7
Быстрое развитие информационных технологий стимулирует цифровизацию промышленных процессов и внедрение современных методов сбора и анализа данных. Концепция Continuous Intelligence (CI) – непрерывной аналитики в реальном времени – становится ключевой для предприятий, позволяя адаптировать операции к изменяющимся условиям практически мгновенно [1].
Цифровизация производства является одной из наиболее актуальных и значимых тем, поскольку информационно-коммуникационные технологии трансформируют экономические и производственные процессы. Внедрение Интернета вещей (IoT), больших данных (Big Data) и искусственного интеллекта (AI) способствует оптимизации производственных процессов, снижению издержек, повышению качества продукции и открывает новые возможности для инноваций [2].
Однако, несмотря на очевидные преимущества, предприятия сталкиваются с серьезными проблемами в процессе цифровизации. Одной из ключевых проблем является разрозненность данных. Специфические модели и форматы данных в различных системах определяются бизнес-процессами конкретных участков производства, что делает их индивидуальными для каждой системы и непригодными для обобщенного глобального анализа.
Попытки агрегировать данные в так называемые «озера данных» с использованием технологий Big Data часто не решают проблему разнородности, а лишь переносят ее на общий сервер, формируя коллекцию таблиц и файлов. Это приводит к необходимости создания дополнительных ИТ-команд для подготовки сырых данных к анализу, что снижает оперативность принятия решений. Таким образом, работа направлена на преодоление этой проблемы, предлагая унифицированный подход к управлению данными и процессами. Проектируемая платформа
Object Relations Technique/Continuous Intelligence (ORT/CI) ориентирована на реализацию принципов CI: она объединяет механизмы интеграции данных и аналитики в единое решение, предоставляя возможности искусственного интеллекта и машинного обучения для обработки больших объёмов информации. Для успешной эксплуатации такой платформы важно разработать стандартизированные процессы разработки и развертывания приложений [3].
В данном контексте DevOps-подход играет решающую роль, поскольку способствует слаженной работе команд разработки и эксплуатации, автоматизации сборки, тестирования и развертывания программных компонентов. Целью работы является создание шаблона DevOps, применительно к ORT/CI, включающего средства контроля версий, конвейер CI/CD, контейнеризацию и инструменты мониторинга, что позволит ускорить разработку пользовательских решений и повысить надежность их работы.
2. Платформа ORT/CI и концепция Continuous Intelligence
Платформа ORT/CI представляет собой интегрированное решение для промышленной аналитики и управления данными. Она включает несколько ключевых компонентов: Apache NiFi, предназначенную для построения конвейеров обработки данных; JupyterLab – среду разработки интерактивных вычислений и анализа данных; а также Totum – систему создания информационных панелей и управления бизнес-процессами.
Apache NiFi – это мощная система обработки потоков данных на основе концепции flowbased programming. NiFi позволяет создавать визуальные схемы маршрутизации и преобразования данных с гибкими возможностями мониторинга «происхождения» данных (data provenance).
JupyterLab – это веб среда для написания и запуска кода, предоставляющая гибкие интерфейсы для работы с блокнотами, данными и расширениями. Она служит основным инструментом разработки аналитических модулей и моделей в составе платформы. Totum обеспечивает адаптивные интерфейсы и дашборды, позволяя настраивать решения под нужды конечных пользователей.
Все эти компоненты объединены общей концепцией Continuous Intelligence, при использовании которой данные из различных источников обрабатываются в реальном времени и немедленно используются для принятия управленческих решений. Так, платформа ORT/CI поддерживает непрерывный цикл «сбор-анализ-действие»: входящие бизнес-события и показатели обрабатываются конвейерами данных, результаты анализа визуализируются в дашбордах, а при необходимости автоматически инициируются управляющие воздействия [4].
3. Методы3.1 Инструментарий проекта
Разрабатываемый шаблон DevOps интегрируется с основными инструментами платформы
ORT/ CI. В таблице ниже приведены ключевые компоненты инфраструктуры и их роль в шаблоне:
Таблица 1. Описание основных компонентов инфраструктуры проекта
|
Компонент |
Описание |
|
Apache NiFi |
Используется для построения потоков обработки и интеграции данных между системами. Благодаря визуальному интерфейсу NiFi позволяет легко настраивать конвейеры получения, преобразования и передачи информации. В шаблоне предусмотрены типовые процессоры NiFi (например, GetFile, SplitJson, InvokeHTTP) для работы с входящими данными и API внешних сервисов [5]. |
|
JupyterLab |
Среда разработки аналитических функций. На её базе создаются Python скрипты и Jupyter-блокноты, реализующие бизнес-логику (например, моделирование или предобработку). Для включения таких функций в CI/CD-процесс используется расширение nuclio-jupyter и утилита конвертации jupyter nbconvert для экспорта блокнота в конфигурацию Nuclio [6]. |
|
Nuclio |
Nuclio – это платформа для создания и запуска без серверных функций (FaaS). Как указано на сайте проекта, «Nuclio – это без серверная платформа с открытым исходным кодом, используемая для минимизации затрат на разработку и обслуживание, и автоматизации развертывания приложений, основанных на науке о данных». В рамках шаблона DevOps функции, разработанные в JupyterLab, автоматически разворачиваются в Nuclio. Это обеспечивает мгновенное масштабирование и упрощает управление версиями функций [7]. |
|
Prometheus & Grafana |
Для мониторинга приложения и сбора метрик задействован стек Prometheus+Grafana. Prometheus – это открытая система мониторинга и хранения временных рядов, которая получает метрики из контейнеров и сервисов ORT/CI. Grafana – это популярный инструмент визуализации и аналитики показателей, широко используемый для построения дашбордов. В шаблоне настроены экспортеры метрик Prometheus и готовые дашборды Grafana для отображения состояния функций, сервисов и производительности системы [8,9]. |
|
Grafana Loki |
Для агрегирования и поиска логов используется лог-система Loki от Grafana Labs. Loki – «горизонтально масштабируемая, высокодоступная система агрегации логов, вдохновленная Prometheus» (или проще: система хранения и поиска логов из приложений). Логи контейнеров и функций отправляются в Loki, что позволяет проводить корреляцию с метриками и анализировать поведение сервисов [10]. |
3.2 Архитектура платформы ORT/CI
Концепция serverless используется в рамках ORT/CI для упрощения развертывания вычислений. Nuclio обеспечивает высокую производительность без серверных функций: на официальном сайте отмечается, что Nuclio способен выполнять до сотен тысяч вызовов функций в секунду. Такая архитектура позволяет отделить стадию разработки алгоритмов (в JupyterLab) от механизма их исполнения в продуктивной среде [11].
В шаблоне DevOps настройка без серверной среды включает преобразование Jupyter-блокнотов в конфигурационные файлы Nuclio и разметку функций метками для управления состоянием и запросами. Предусмотрена интеграция с системой CI: при каждом обновлении кода функции конвейер автоматически вызывает jupyter nbconvert --to nuclio, собирает Docker-образ и деплоит функцию в Nuclio. После успешного развёртывания функция становится доступна по REST API и сразу же попадает под наблюдение Prometheus/Grafana и сбор логов в Loki. Такой подход обеспечивает быстрое преобразование аналитических наработок в производственные микросервисы без ручной операционной работы.
3.3 Система непрерывной интеграции
Шаблон DevOps предусматривает использование систем CI/CD для управления жизненным циклом разработки. В качестве основы используется GitLab CI – популярная платформа автоматизации сборки и развертывания. Непрерывная интеграция (CI) предполагает частое слияние изменений в общий репозиторий и автоматическую проверку каждой новой версии (сборка и тестирование). Такая практика помогает быстро обнаруживать дефекты на ранних этапах и обеспечивает качество кода. Непрерывная доставка (CD) дополняет CI автоматическим развертыванием каждой версии в тестовом или продуктивном окружении [12].
В разработанном шаблоне конвейер CI/CD включает следующие этапы: сборка образов Docker на основе кода функции/сервиса, прогон модульных и интеграционных тестов, пуш образов в репозиторий артефактов, и развертывание в Nuclio. Важной особенностью является автоматический сбор метрик и логов на каждой стадии: GitLab CI генерирует отчёты сборки и тестов, а Prometheus-провайдер отслеживает работоспособность развернутых сервисов. Благодаря этой автоматизации достигается высокая прозрачность и управляемость процессов, что существенно ускоряет выпуск новых версий ПО и снижает число ошибок.
4. Результаты
4.1 Демонстрационная функция и её развёртывание
5. Обсуждение результатов
6. Заключение
Для проверки работоспособности шаблона была реализована демонстрационная функция-микросервис в JupyterLab и развернута в Nuclio. Функция имитирует обработку данных «двойника» устройства из внешнего сервиса ORT/CI. В ходе работы разработчиками были выполнены следующие основные шаги: создание и отладка функции в Jupyter Notebook (с использованием nuclio-jupyter и API библиотеки dca-sm-sdk для состояния модели), конвертация блокнота в Nuclio YAML-конфигурацию с помощью jupyter nbconvert, и ручной (или CI-скриптом) деплой функции через веб-интерфейс или CLI Nuclio. После развертывания функция автоматически регистрируется в системе наблюдения Prometheus и появляется в списке сервисов. На этапе тестирования подтвердилось, что при помощи шаблона DevOps можно быстро повторить процесс: внесение правок в код функции сопровождается обновлением Docker-образа и заменой развернутой функции, а новая версия начинает сбор метрик и логов в существующую инфраструктуру мониторинга. Таким образом, демонстрация показала целостность подхода и возможность масштабирования его на произвольные пользовательские решения.
Одним из ключевых преимуществ предложенного решения является высокая скорость релизов, по результатам которой автоматизация достигла ≈ 80 %, заменив собой ручную работу. Вместе с тем, внедрение требует наличия Kubernetes-кластера и навыков работы с Docker, что может стать барьером для сотрудников без соответствующего опыта. Среди ограничений стоит отметить зависимость от конкретных FaaS-платформ (Nuclio) и инструментов мониторинга. В будущем планируется добавить поддержку альтернативных серверлес-решений и обеспечить полноценную интеграцию с системами CMDB и MES для закрытия полного цикла Continuous Intelligence.
В отличие от классических решений на базе Jenkins и Ansible, разработанный шаблон ориентирован на глубокую интеграцию с аналитической средой JupyterLab и без серверной архитектурой. Это делает его более подходящим для задач Data Science в промышленности, хотя и требует специфических навыков работы с Kubernetes и FaaS.
В статье представлено решение по созданию шаблона DevOps для платформы ORT/CI, включающее стандартизированный конвейер CI/CD, контейнеризацию и механизмы мониторинга. Разработанный шаблон опирается на инструменты Apache NiFi, JupyterLab (с Nuclio), Prometheus, Grafana и Loki, обеспечивая интеграцию обработки данных и средств визуализации метрик. Внедрение такого шаблона упрощает вход разработчиков в экосистему ORT/CI: существенно снижается порог знаний для развертывания новых сервисов, повышается повторяемость процессов и прозрачность инфраструктуры. Эксперименты показали, что применение DevOps-практик способствует ускорению доставки и повышению качества разрабатываемых решений в условиях производственных задач. В дальнейшем планируется расширить шаблон новыми инструментами и кейсами, а также автоматизировать полную интеграцию с промышленными системами (например, CMDB и MES) для реализации полного контура Continuous Intelligence.