Системы управления конфигурациями в эксплуатации веб-приложений

  • Вид работы:
    Статья
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    147,75 Кб
  • Опубликовано:
    2016-12-10
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Системы управления конфигурациями в эксплуатации веб-приложений

Пензенский государственный технологический университет

Системы управления конфигурациями в эксплуатации веб-приложений

Чинков М.Ю., студент-бакалавр







г.,

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

Ключевые слова: Continuous Integration, сборка, развертывание, Jenkins, веб-приложение, разработка программного обеспечения.

Введение


Современная инфраструктура веб-приложения как одного из трендов в области разработки программного обеспечения состоит из множества компонентов. Часть из них имеет идентичную настройку, часть из них представляет собой разные окружения, предназначенные для обеспечения работы микросервисов, из которых состоит приложение. Управление такой инфраструктурой является достаточно сложной задачей.

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

Вторая проблема заключается в сложности поддержки инструментов, разработанных для автоматизации управления инфраструктурой. Под данными инструментами подразумевается некий парк скриптов, в основном написанных как на языке командных оболочек ОС (Bash, Powershell), так и на языках программирования, позволяющих создавать сценарии управления системой (Python, Ruby, Perl). Когда в команде появляется новый специалист, ему нужно не только знать в совершенстве все вышеперечисленные языки, но и понимать, что же хотел сделать разработчик данных программ, и для какой цели. Это происходит потому, что данный подход является императивным, т.е. требующий описать как именно нужно решить задачу. В результате кодовая база становится громоздкой, и не все решения внутри данной базы являются очевидными.

Решением данной проблемы является использование систем управления конфигурациями (Configuration Management) в эксплуатации веб-приложений.

Описание систем управления конфигурациями


Системы управления конфигурациями - программные комплексы, позволяющие централизованно управлять конфигурацией множества разнообразных разрозненных операционных систем и прикладного программного обеспечения, работающего в них. Главной целью конфигурационного управления является описание инфраструктуры целевой системы в программном коде с возможностью многократного воспроизведения. Главными достоинствами систем конфигурационного управления являются высокая скорость внедрения изменений, автоматизация рутинных процессов, гибкость управления инфраструктурой, идемпотентность (можно запускать систему неограниченное количество раз, получая одинаковый результат), а также декларативность используемой CM-системы (в системе описывается только вопрос "что сделать? ”, а не "как сделать? ”).

История систем управления конфигурациями в том виде, что мы имеем сейчас, начинается с 1993 года, когда появилась первая версия системы CFEngine. Основной задачей данной системы являлось управление рабочими станциями, работающими на разнообразных Unix-подобных системах. Далее развитие методологии конфигурационного управления привело к существованию устойчивого рынка программных продуктов четырех наиболее популярных решений на рынке. Этими продуктами являются Ansible, Chef, Puppet и SaltStack.

Все вышеперечисленные системы, несмотря на общую цель, имеют собственные специфические концепции, а также собственный язык управления - domain-specific language (DSL).

приложение конфигурация управление инфраструктура

Использование систем управления конфигурации в эксплуатации IT-инфраструктуры на примере Ansible


В рамках данного научного исследования был выбран продукт Ansible в виду простоты написания кода и четкого выполнения требований по декларативности и идемпотентности.

Ansible не требует дополнительной установки клиентского ПО на управляемые машины. Все операции система проводит посредством подключения к удаленным нодам по протоколу SSH, интерпретируя язык управления конфигурациями в команды на языке программирования Python. В рамках управления инфраструктурой Ansible позволяет использовать такие сущности, как роли, в которых отдельно описывается объект для конфигурации (программа, операционная система и т.д.), шаблоны, позволяющие динамически изменять поведение системы на основании входных данных, переменные, встроенные в шаблоны, а также сценарии (playbooks), объединяющие несколько ролей и позволяющие запускать их одновременно.

В рамках практической реализации была поставлена задача по установке как ПО, необходимого для работы веб-приложения (прокси-сервер Nginx, база данных PostgreSQL, интерпретатор Node. js со специфической версией 4.4), так и клиентских программ, позволяющих следить за нодами через различные системы мониторинга (агенты Zabbix, Filebeat, Consul). Данная задача была решена посредством написания на языке конфигурации шести отдельных ролей, где поэтапно описаны все шаги по установке и конфигурации программного обеспечения. Роли были собраны в двух сценариях (один для веб-серверов, один для всех серверов инфраструктурного парка) и были запущены командой ansible-playbook.

Путем дополнительной отладки удалось создать программное окружение веб-приложения с возможностью дальнейшего масштабирования и быстрого внесения изменений за довольно короткий временной срок. На рисунке 1 показан снимок процесса управления конфигурациями Ansible по настройке клиента системы сбора журнальных файлов Filebeat.

Рис. 1. Запуск системы управления конфигурациями Ansible


Литература


1. Morris K. Infrastructure as Code: Managing Servers in the Cloud. - 2016.

. Limoncelli T. The Practice of Cloud System Administration: Designing and Operating Large Distributed Systems, Volume 2. - 2015. - С.243-275.

. Hochstein L. Ansible: Up and Running. - 2014.

Похожие работы на - Системы управления конфигурациями в эксплуатации веб-приложений

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!