Отправьте статью сегодня! Журнал выйдет ..., печатный экземпляр отправим ...
Опубликовать статью

Молодой учёный

Разработка механизма безопасного обновления автоматизированных систем на основе канареечного развертывания и инструментов автоматизации

Информационные технологии
19.04.2026
2
Поделиться
Аннотация
В статье описывается инновационный способ выполнения обновления автоматизированных систем, имеющих высокие требования к отказоустойчивости. Возникает конфликт: необходимо выполнить установку новой версии в приложения, при этом прерывание функционирования системы невозможно. Решением служит алгоритм действий на основе контейнеризации, локального хранилища версий и декларативного управления конфигурациями. Внедрение изменений производится по принципу канареечного развёртывания, что значительно снижает вероятность ошибки.
Библиографическое описание
Бурцев, К. М. Разработка механизма безопасного обновления автоматизированных систем на основе канареечного развертывания и инструментов автоматизации / К. М. Бурцев. — Текст : непосредственный // Молодой ученый. — 2026. — № 16 (619). — С. 12-14. — URL: https://moluch.ru/archive/619/135482.


Thу article describes an innovative method for updating systems with high fault-tolerance requirements. A conflict emerges: programmer need to install a new version of the application nut system cannot be stooped. That is why the solution is using such tools as: containerization, local version storage, and declarative configuration management. Changes should be implemented using a canary deployment approach, which significantly reduces the likelihood of errors.

Keywords: software development, reliability, deployment, infrastructure, automation.

Разработка программного обеспечения всегда сопровождается изменением программного кода, разработчики ведут активную деятельность, вносят корректировку в программный код. Так, например, постоянная необходимость нововведения функциональности, устранения ошибки, интеграции и так далее обуславливает существование версионности программного продукта. Однако к системам различных областей экономики, таких как промышленность, энергетика и транспорт предъявляются повешенные требования по их непрерывности функционирования, надежности и доступности. Наряду с этим традиционный подход обновления программного зачастую всё еще использует антишаблон развертывания программного обеспечения вручную [1]. Под развертыванием подразумевается процесс получения двоичного кода из исходного кода, вставка переменных окружения и конфигурационных файлов, запуск сопутствующих процессов [2]. В условиях систем с высокими требованиями к доступности операции развертывания ПО приводят к временной недоступности функционала, что является нежелательным и в ряде случаев недопустимым.

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

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

Для решения поставленной проблемы был разработан способ обновления программного обеспечения, который основывается на использовании облачного репозитория как локального хранилища версий и декларативного управления конфигурациями. Данный подход обеспечивает непрерывное функционирование системы за счёт поэтапного внесения изменений и минимизации конфигурационного дрейфа. В основе метода лежит организация программных компонентов системы в виде изолированных группах процессов. Решение реализует концепцию неизменяемой инфраструктуры (immutable infrastructure). Более того обеспечить требуемый уровень безопасности хранения и использование версий приложений позволяет независимое хранилище контейнерных образов, пишут авторы в работе [3].

Ядром разрабатываемого механизма является внедрение в процесс обновления системы управления конфигурациями, например, Ansible. Данный инструмент реализует декларативную модель управления состоянием. Вформализованном видезадается целевое состояние системы (desire state) и определяет эталон конфигурации системы. Использование идемпотентной модели обеспечивается получение ожидаемого результата операции обновления, а свойство конвергенции гарантирует достижение целевого состояния вне зависимости от начального состояния узлов. «Если система управления конфигурациями конвергентна, то она может многократно выполнять управляющие воздействия, с каждым разом приводя сервер всё ближе к желаемому состоянию» пишет Маркус Бургесс в книге [4]. Использование вышеописанной модели позволит устранить конфигурационный дрейф (configuration drift).

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

Таблица 1

Алгоритм безопасного обновления автоматизированных систем

Действия, выполняемые в этапе

Ожидаемый результат

1.

Разработки новой версии приложения

Новая версия в виде образа приложения

2.

Размещение дистрибутива в локальном хранилище образов

Версия доступна каждому серверу кластера

3.

Внесение изменений в конфигурационный файл на управляющем сервере

Изменённая конфигурационного файл, описывающая требуемое состояние системы

4.

Инициализация процесса приведения системы к целевому состоянию

Применение изменений к ограниченному подмножеству узлов

5.

Контроль выполнения изменений

Оценка результата, переход к пункту 6 или 7

6.

Успешно обновлена часть узлов — масштабируется на остальные объекты

Завершение выполнения обновления системы

7.

Выявлены отклонения, изменяется конфигурация итерационно на шаг назад

Переход системы в исходное состояние, до внесения изменений

Источник: составлено автором

В результате, приведённый механизм, объединил принципы контейнеризации, декларативного управления конфигурацией и поэтапного внедрения изменений. Его применение позволяет повысить воспроизводимость инфраструктуры системы, увеличить безотказность ее функционирования и минимизировать простой.

Литература:

  1. Хамбл Д., Фарли Д. Непрерывное развертывание ПО: автоматизация процессов сборки, тестирования и внедрения новых версий программ: Пер. с англ. — М.: ООО «И. Д. Вильямс», 2017. — 432 с.: ил.
  2. Мейер Б., Хохштейн Л., Мозер Р. Запускаем Ansible: простой способ автоматизации управления конфигурациями и развертыванием приложений, 3-е изд.: Пер. с англ. А. Киселева. — М.: ДМК Пресс, 2023. — 482 с.: ил.
  3. Шейнман В., Стариков Д. Д., Тюменцев Д. В., Вавилов Г. Д. Повышение эффективности процессов разработки программного обеспечения: контейнерные технологии // Программные системы и вычислительные методы. — 2024. — № 4. — DOI: 10.7256/2454–0714.2024.4.72015. — URL: https://nbpublish.com/library_read_article.php?id=72015
  4. Burgess M. In Search of Certainty: The Science of Our Information Infrastructure. — Sebastopol: O’Reilly Media, 2015. — 472 p.
  5. Моррис К. Программирование инфраструктуры, 2-е изд.: Пер. с англ. — СПб.: БХВ-Петербург, 2024. — 416 с.: ил.
  6. Использование Docker / пер. с англ. А. В. Снастина; науч. ред. А. А. Маркелов. — М.: ДМК Пресс, 2017. — 354 с.
  7. Зиятбекова G., Аралбаев S., Kisala P. Проблемы безопасности контейнеризации микросервисов // Вестник КазУТБ. 2023. Т. 4, № 21. DOI: 10.58805/kazutb.v.4.21–198.
  8. Potdar A. M., Narayan D. G., Kengond S., Mulla M. M. Performance Evaluation of Docker Container and Virtual Machine // Procedia Computer Science . 2020. Vol. 171. P. 1419–1428.
  9. Richter D., Konrad M., Utecht K., Polze A. Highly-Available Applications on Unreliable Infrastructure: Microservice Architectures in Practice // 2017 IEEE International Conference on Software Quality, Reliability and Security Companion (QRS-C). Prague, Czech Republic, 2017. P. 130–137. DOI: 10.1109/QRS-C.2017.28.
  10. Moilanen M. Deploying an application using Docker and Kubernetes: Bachelor’s thesis / Oulu University of Applied Sciences, Degree Programme in Business Information Technology. — Oulu, 2018. — 44 p. + 7 app.
Можно быстро и просто опубликовать свою научную статью в журнале «Молодой Ученый». Сразу предоставляем препринт и справку о публикации.
Опубликовать статью
Похожие статьи
Особенности процесса развертывания программного обеспечения в условиях интенсивной разработки
Автоматизация развертывания компонент распределенного приложения современными средствами управления конфигурацией
Практическая реализация отказоустойчивости с помощью виртуализации, контейнеризации и механизмов автоматического восстановления
Грамотный выбор стратегии развёртывания микросервисного программного продукта
Контейнеризация приложений: преимущества Docker и Kubernetes
Автоматизация тестирования: алгоритмический ракурс
DevOps и облачные решения для телемедицины: разработка, масштабирование и отказоустойчивость
Организация непрерывной интеграции в процессе разработки программного обеспечения
Анализ уязвимостей среды контейнеризации
Преимущества использования контейнерной архитектуры в серверной разработке

Молодой учёный