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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

2. Ответ за управление и защиту целостности конфигурационных единиц, гарантирующий, что используются только авторизованные компоненты и проводятся только авторизованные изменения.

3. Обеспечение целостности конфигураций, требуемой для управления учебными местами, создавая и поддерживая точную и полную систему управления конфигурациями.

На рисунке 1.2 отображена типовая структура процесса управления сервисными активами и конфигурациями. Он состоит из следующего набора деятельностей: управление и планирование, идентификация конфигураций, управление CI (configuration items, конфигурационные единицы, КЕ), отчетность по статусу, верификация и аудит.

Для данной предметной области в качестве критериев эффективности процесса ITIL рекомендует использовать следующие показатели:

1. Соответствие конфигураций требованиями учебных дисциплин.

2. Своевременная идентификация конфигурационных единиц, из-за которых возникают сбои в конфигурациях.

3. Эффективное использование закупленных лицензий, средняя стоимость лицензии на одного пользователя.

4. Улучшение качества и точности информации о конфигурациях и конфигурационных единицах.

5. Устранение ошибок, вызванных работой с устаревшими данными (постоянная актуализация CMDB).

6. Эффективный аудит конфигураций.

7. Уменьшение установок и использования неавторизованных конфигурационных единиц.

Рисунок 1.2. Процесс управления сервисными активами и конфигурациями по ITIL

8. Уменьшение количества неуспешных изменений, причиной чего явилась неверная оценка влияния, некорректные данные в CMS или плохой контроль версий.

Процесс управления ИТ-инфраструктурой требует систему управления конфигурациями (Configuration Management System, CMS) Данная система необходима для хранения всех данных о конфигурационных единицах и конфигурациях.

Управление изменениями

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

Практика оптимизации, внедрения и эксплуатации процесса управления изменениями, описанная в ITIL, показала, что оптимальный алгоритм процесса выглядит следующим образом (рис. 1.3):

Рисунок 1.3. Процесс управления изменениями по ITIL

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

В качестве критериев эффективности процесса управления изменениями ITIL рекомендует использовать следующие основные показатели:

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

2. Сокращение количества неавторизованных изменений.

3. Сокращение очереди запросов на изменения, процента незапланированных изменений и срочных исправлений.

4. Сокращение количества изменений, потребовавших восстановления.

5. Сокращение количества неуспешных изменений.

6. Среднее время внедрения изменения.

7. Оценка количества инцидентов, связанных с изменением.

8. Точность оценки изменений.

Можно утверждать, что если при оптимизации процесса в соответствии с описанными ITIL рекомендациями наблюдается соблюдение критериев, то совершенствование процесса прошло эффективно.

Библиотека SWEBOK v3

SWEBOK (Software Engineering Book of Knowledge) - это научно-технический документ, в котором содержатся рекомендации отечественных и зарубежных специалистов в области программной инженерии [7]. Основные аспекты дисциплины, изложенные в библиотеке, относятся к инженерии требований, проектированию, конструированию, тестированию и сопровождению программного обеспечения. Одной из организационных областей знаний SWEBOK является управление конфигурацией.

Согласно понятийному аппарату SWEBOK, управление конфигурацией (Software Configuration Management, SCM) заключается в идентификации компонентов системы, определении функциональных и физических характеристик аппаратного и программного обеспечения для контроля за внесением изменений и трассированием конфигурации на протяжении её жизненного цикла. Зачастую в SWEBOK этот процесс называют SCCM (Software Configuration and Change Management) - управление конфигурацией и изменениями.

Область знаний SWEBOK «Управление конфигурациями» представлена на рисунке 1.4 и в таблице, вынесенной в приложение А.

Рисунок 1.4. Область знаний процесса управления конфигурациями по SWEBOK

Алгоритм процесса управления изменениями по SWEBOK представлен на рисунке 1.5. Описанный подход гарантирует возможность отслеживания дефектов и сбора метрических показателей о деятельности по обработке и внесению изменений, с группировкой по типу изменений. Как только получен запрос на изменение (SCR), производится техническая оценка запрашиваемых изменений для определения масштабов модификаций, необходимых для удовлетворения параметров запрашиваемых изменений (достаточно часто, в результате такого анализа формулируются соответствующие требования, определяющие содержание необходимых работ, прим. автора). Четкое понимание связей между программными (и, возможно, аппаратными) элементами системы является важной составной частью данной задачи. Наконец, органы, обладающие полномочиями, соответствующими затрагиваемой базовой линии, элементам программной конфигурации и природе изменений, должны оценить технические и управленческие (организационные) аспекты внесения запрашиваемых изменений, а также принять, модифицировать, отклонить или отложить предлагаемые изменения.

Рисунок 1.5. Алгоритм процесса управления изменениями по SWEBOK

В результате обзора библиотек знаний ITIL и SWEBOK были сделаны следующие выводы:

1. Любой существующей инфраструктурой и соответствующей конфигурацией должны управлять процессы ITIL и SWEBOK.

2. Управлению ИТ-услугами с точки зрения инженера систем в большей степени соответствует описание процесса SWEBOK, поэтому они должны управляться данным процессом.

3. Регламентом процесса должен являться План управления конфигурациями. Он является важным документом и описывает процесс управления, требования и ограничения процесса, организационные особенности, ресурсы, расписание, используемые инструменты и прочее.

4. Процесс управления изменениями и конфигурациями в современных информационных системах (CMS) должен быть реализован в соответствии с сервисным и процессным подходами.

2. Анализ современных систем управления конфигурациями

Данной части главы представляет собой обзор некоторых современных системы управления конфигурациями: Chef, Puppet, SaltStack и Ansible. Для каждой системы приводятся её функциональные возможности и особенности.

Chef

Chef является одной из наиболее популярных систем управления конфигурациями. Используется данная система в основном для Linux-узлов, но последние версии также поддерживают Windows.

Chef используется для упрощения задачи конфигурирования и обслуживания серверов компании, а также может быть встроенной в облачные платформы, такие как Amazon EC2, Google Cloud Platform, OpenStack, SoftLayer, Microsoft Azure и Rackspace, для автоматического обеспечения конфигурациями новых компьютеров. Система не имеет ограничений по размерам систем, имеет разные решения с соответствующими особенностями и ценами диапазонов [9]. Chef использует специальный декларативный предметно-ориентированный язык для описания конфигураций.

При использовании данной системы пользователь создаёт определенные «рецепты», определяющие действия Chef по координированию серверных приложений и утилит (например, Apache, MySQL или Hadoop) и способ их настройки. «Рецептом» является описание состояния ресурсов системы, в котором она должна находиться в определённый момент времени. Данное описание подразумевает также и установленные пакеты, запущенные службы, созданные файлы. Chef должен определить состояние ресурса и в случае, если оно не соответствует ожиданиям, предпринять попытки к его исправлению.

Chef поддерживает несколько режимов работы. Первый - это клиент-сервер, второй - режим автономной конфигурации, «chef-solo». При работе в режиме клиент-сервер клиентом осуществляется отправка на сервер различных свойств хоста, на котором он расположен. Для индексирования свойств и предоставления API для запроса информации клиентом на стороне сервера используется Solr. Эти свойства могут быть запрошены «рецептами», которые затем могут использовать полученные данные для настройки хоста.

В соответствии с поддерживаемой матрицей для клиентов и серверов Chef имеет поддержку на нескольких платформах. Chef клиент поддерживается на платформах AIX, RHEL/CentOS, FreeBSD, OS X, Solaris, Microsoft Windows и Ubuntu. Дополнительные платформы: Arch Linux, Debian и Fedora. Основные поддерживаемые сервером платформы: RHEL/CentOS, Oracle Linux и Ubuntu.

Chef используется в компаниях Airbnb, Mozilla, Expedia, Facebook, HP Public Cloud, Prezi, Xero, Ancestry.com, Rackspace, Get Satisfaction, IGN, Marshall University, Socrata, University of Minnesota, Wharton School of the University of Pennsylvania, Bonobos, Splunk, Citi, DueDil, Disney и Cheezburger.

Puppet

Puppet является кроссплатформенным клиент-серверным приложением, для централизованного управления конфигурацией операционных систем и программ, установленных на нескольких компьютерах [10]. Также как и Chef в большей степени используется для Linux и является одним из самых актуальных средств конфигурационного управления. Конфигурации также описываются на специальном декларативном предметно-ориентированном языке.

Находясь под администрированием системой Puppet, узлы сети время от времени опрашивают сервер, получают и применяют внесённые администратором изменения в конфигурацию.

Puppet позволяет просто настроить и впоследствии быстро управлять практически любой сетью на базе любой операционной системы Red Hat Enterprise Linux, CentOS, Fedora, Debian, Ubuntu, OpenSUSE, Solaris, BSD, Mac OS X и Microsoft Windows.

Система Puppet является основой конфигурационного управления в таких компаниях как Google, Яндекс, Fedora Project, Стэнфордский университет, Red Hat, Siemens IT Solution, SugarCRM, Mail.Ru.

SaltStack

SaltStack также является одной из самых популярных систем управления конфигурациями и удалённого выполнения операций.

Система SaltStack состоит из двух основных компонентами: Salt Master («мастер») и Salt Minion («ставленник», «приближённый», «миньон»). Мастер является центральной службой. «Ставленники» осуществляют подключение к нему для получения конфигурации [11]. Две определяющих идеи SaltStack: удалённое выполнение операций (remote execution) и управление конфигурациями. Удалённое выполнение функций Python является основой для построения повторяемой и управляемой конфигурации машин, с установленными на них «ставленниками».

Промежуточное программное обеспечение, ориентированное на обработку сообщений, является средством сообщения мастера и «ставленников»: мастер запускает сообщения в очередь, откуда затем их получают «ставленники». Для обратной связи используется другая очередь.

Кроме того, на текущий момент в составе Salt имеется Salt Cloud. Salt Cloud обеспечивает мощный интерфейс для взаимодействия с облачными узлами. Этот интерфейс тесно связан с Salt, а новые виртуальные машины автоматически соединяются с мастером после создания.

Ansible

Ansible - ещё одна наиболее актуальная система управления конфигурациями. Также включает использования декларативного языка разметки для описания конфигураций. Наряду со всеми вышеописанными системами наиболее используема в управлении конфигурациями для Linux. Ansible входит в состав большинства дистрибутивов Linux. Есть пакеты для Solaris, FreeBSD и MacOS.

Основное преимущество данной системы состоит в том, что целевые системы не требуют установки агента/клиента для работы. Используется для автоматизации настройки и развертывания программного обеспечения [12].

Работая с Ansible, пользователь создаёт определенные «плейбуки» в формате YAML с описанием требуемых состояний управляемой системы. «Плейбуки» являются почти полным подобием «рецептов» в Chef.

Для выполнения задач используется система модулей. Каждая задача включает в себя имя, используемый модуль и список параметров, характеризующих её. Ansible поддерживает переменные, фильтры обработки переменных (поддержка осуществляется библиотекой Jinja2), условное выполнение задач, параллелизацию, шаблоны файлов. Адреса и настройки целевых систем содержатся в файлах «инвентаря» (inventory). Помимо всего Ansible поддерживает группирование. Для реализации набора сходных задач существует система ролей.

Графическим интерфейсом для управления и мониторинга работы Ansible является Ansible Tower является. Данное решение является платным и предоставляет пользователям следующие возможности:

1. Визуальная панель состояния.

2. Списки доступа, группы и роли пользователей.

3. Централизованное логирование и аудит.

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