Содержание
Введение 4
Постановка задачи 6
Глава 1. Постановка требований к системе управления конфигурацией с учетом текущей архитектуры ПО 8
1.1. Изучение текущей внутренней архитектуры и инфраструктуры
приложения 8
1.2. Изучение действующих принципов управления инфраструктурой
приложения 10
1.3. Анализ поставленной задачи 11
1.4. Итоговые требования к Средствам управления конфигурацией 12
Глава 2. DevOps. Управление конфигурацией. Выбор средств 14
2.1. Методология DevOps и Управление конфигурацией 14
2.2. Общие группы свойств рассматриваемых инструментов 16
2.3. Обзор средств Управления конфигурацией 18
2.8. Сравнение представленных средств 24
2.9. Инструменты Управления конфигурацией в среде Windows 26
Глава 3. Практическое применение выбранных средств 29
3.1. Развертывание систем на тестовом окружении 29
3.2. Автоматизация развертывания сервера филиала 30
3.3. Тестирование 35
3.4. Выводы 36
Глава 4. Модернизация решений 38
4.1. Обновленный сценарий развертывания филиала 38
4.2. Автоматизация обновленного сценария 40
4.3. Выводы 42
Заключение 43
Использованные источники 44
Приложение 1. Развертывание Puppet 47
Приложение 2. Развертывание Chef 48
Приложение 3. Исходный код сценариев 52
Введение
В настоящее время, в связи с постоянным возрастанием сложности вычислительных задач и необходимостью работы с данными больших объемов, все большее распространение получают технологии распределенной обработки данных. В условиях неконтролируемого прироста информации и постоянного увеличения необходимых для ее обработки ресурсов возникает потребность в непрерывном горизонтальном масштабировании распределенных систем. В связи с этим обнаруживается ряд требований к подобным системам, например: необходимость быстрого введения в эксплуатацию новых элементов распределенной системы, возможность изменения ее архитектуры без ущерба текущей работоспособности и автоматизация вышеприведенных процессов.
Данная работа посвящена изучению современных средств Управления конфигурацией IT-инфраструктуры и выполнению задачи по внедрению потенциально наиболее подходящей из них в разработанную ранее распределенную систему. В рамках работы будет сделан обзор компонентов внутренней архитектуры рассматриваемого приложения, его инфраструктуры и действующих в настоящий момент способов управления ею. Будут сформулированы задача и конечная цель относительно автоматизации управления данной системой, на основании которых будет произведено изучение доступных на рынке средств Управления конфигурацией и выбраны наиболее перспективные из них в условиях поставленной цели. Выбранными средствами будет осуществлена автоматизация текущего процесса управления системой с последующими выводами о пригодности данных средств при решении подобных задач. Текст работы разделен на главы и обладает следующей структурой:
• Глава 1 посвящена всестороннему обзору рассматриваемого приложения и действующим процессам управления его инфраструктурой. Целью главы является формулирование
задачи по модернизации данных процессов и требований к средствам, с помощью которых модернизация будет производиться.
• В Главе 2 производится знакомство читателя с понятиями DevOps и Управление конфигурацией (Configuration management),
рассматриваются существующие средства Управления конфигурации, и, на основании выводов Главы 1, выбираются наиболее перспективные из них для достижения поставленных целей.
• В Главе 3 описывается весь процесс применения выбранных средств Управления конфигурацией, подытоживаются решенные с их помощью задачи и делается вывод о дальнейшей перспективе использования подобных средств.
• Глава 4 посвящена модернизации разработанных сценариев по применению средств Управления в условиях необходимости автоматического изменения управляемой конфигурации.
Постановка задачи
Задачей данной работы является автоматизация управления инфраструктурой уже разработанного приложения с распределенной архитектурой: Системы тестирования знаний по русскому языку СТКПлюс.
Конечная цель работы: снижение трудозатрат и потенциального количества ошибок в процессах развертывания, модернизации и поддержки работоспособности инфраструктуры системы. Необходимо максимально автоматизировать процессы дистрибуции, обновления и функционирования данного приложения в сети независимых филиалов, с учетом его особенностей. Данную задачу предлагается разделить на следующие этапы:
1. Изучение внутренней архитектуры Системы тестирования с целью формирования требований к средству Управления конфигурацией:
• Изучение внутренней архитектуры приложения;
• Изучение инфраструктуры приложения;
• Изучение действующих принципов управления данной инфраструктурой;
• Анализ поставленной задачи в рамках полученной информации;
• Формирование требований к средству Управления конфигурацией на основе проведенного анализа;
2. Обзор существующих средств Управления конфигурацией с целью выбора наиболее перспективного, с точки зрения поставленных целей:
• Введение в принципы Управления конфигурацией;
• Обзор представленных на рынке средств;
• Анализ перспективности использования каждого из них в соответствии с сформированными требованиями;
• Обоснованный выбор одного или нескольких средств Управления конфигурацией для дальнейшего изучения;
3. Практическое изучение выбранных средств автоматизации:
• Развертывание каждого из выбранных средств Управления конфигурацией на тестовом сетевом окружении с учетом архитектуры приложения;
• Тестирование возможности выполнения всех элементов поставленной задачи данными средствами;
• Проверка работоспособности данных средств для различных условий среды;
• Вывод о достигнутых целях и дальнейшей перспективе использования данных средств.
Заключение
В рамках данной работы была изучена архитектура существующей распределенной Системы тестирования знаний по русскому языку и действующие методы управления ее инфраструктурой. Были сформулированы задачи и цели автоматизации процессов управления системой средствами Управления конфигурацией.
Было произведено изучение понятий DevOps и Управление конфигурацией, рассмотрены существующие программные решения по Управлению конфигурацией с последующем сравнением перспективности в рамках решаемой задачи. С помощью двух выбранных средств была автоматизирована часть процесса развертывания системы с последующим сравнением полученных результатов и выводами о дальнейшей перспективности.
Были произведены модификации текущих сценариев автоматизации, с учетом включения результатов сторонней работы по синхронизации файловых ресурсов системы. В процессе модификации были продемонстрированы гибкость функционала рассматриваемых систем и перспективы дальнейшего использования. Полученные в ходе работы результаты, при условии доработки и дополнительного тестирования, могут быть использованы для автоматизации текущих процессов управления системой.