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

Управление конфигурациями (сокращённо также: УК; англ. configuration management, CM) — это управленческая дисциплина[1] по достижению и поддержанию соответствия эксплуатационных, функциональных и физических свойств продукта. Управление конфигурациями обеспечивает воспроизводимость продукта и его артефактов.

Управление конфигурациями тесно связано с управлением документацией в управлении проектами (например, PRINCE2), а также с такими модельными рамками, как CMMI.[2][3][4][5]

Основы

Управление конфигурациями основывается на так называемых единицах конфигурации. Часто встречающийся термин — элемент конфигурации (англ. configuration item): это элемент или агрегат аппаратного, программного обеспечения или их совокупности, который предназначен для управления конфигурациями и рассматривается как единая сущность в процессе управления конфигурациями[6]. Согласно ISO/IEC 24765, существуют ещё шесть определений из различных стандартов ISO, немного различающихся в деталях, но аналогичных по сути[6].

Управление конфигурациями не привязано к какому-либо определённому приложению или системе. Оно осуществляется в рамках так называемого процесса управления конфигурациями (ПУК), который требует организации и планирования (ОПУК)[7].

Выделяют четыре области (подпроцесса) управления конфигурациями:[6][8][9][10]

  • Идентификация конфигураций (ИК);
  • Ведение учёта конфигураций (ВУК);
  • Контроль изменений конфигураций (КИК);
  • Аудит конфигураций (АК).

Координированное выполнение этих процессов, как правило, является задачей менеджера по управлению конфигурациями или ответственного, интегратора или, в отдельных случаях, руководителя проекта[7].

История

Необходимость внедрения и развития управления конфигурациями была вызвана постоянно растущей сложностью продуктов[9].[11] Как реакция на возникающие сложности, в 1950-х годах управление конфигурациями было разработано в аэрокосмической промышленности. Тогда для контроля статуса конфигураций использовались простейшие карточки.

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

Ранние подходы включали, например, методы проверки контрольных сумм, которые до сих пор используются для идентификации версий программ и отслеживания изменений, позволяя поддерживать конфигурацию программного обеспечения[12][13].

Определение

ANSI

Американский национальный институт стандартов (ANSI; англ. American National Standards Institute) совместно с Электронным отраслевым альянсом (EIA; англ. Electronic Industries Alliance) сформулировал следующее определение:[14]

«Управление конфигурациями — это управленческий процесс, направленный на установление и поддержание соответствия между характеристиками изделия, его функциональными и физическими свойствами, требованиями, проектированием и эксплуатационной документацией на протяжении всего жизненного цикла.»

Automotive SPICE

В Automotive SPICE управление конфигурациями является частью Supporting Life Cycle Processes (SUP) и обозначается как «SUP.8», где целью процесса является обеспечение целостности всех рабочих продуктов процесса или проекта и их предоставление заинтересованным сторонам[15].

Стандарт определяет семь этапов процесса и девять базовых практик, а также семь рабочих продуктов[15].

IEEE Std 828-2012 — Стандарт IEEE для управления конфигурациями в системной и программной инженерии

Стандарт IEEE 828 (англ. IEEE Standard for Configuration Management in Systems and Software Engineering) определяет управление конфигурациями следующим образом:[7]

  • (1) дисциплина, применяющая технические и административные процедуры и контроль для: идентификации и документирования характеристик объекта конфигурации, управления изменениями этих характеристик, фиксации и информирования о статусе изменений и их реализации;
  • (2) совокупность технических и организационных мероприятий, включающих идентификацию, контроль, учёт и аудит конфигураций.

Отметим, что определения IEEE и ISO отличаются в деталях (см. приложение L к стандарту[7]). Кроме того, стандарт IEEE акцентируется на программном обеспечении[16].

ISO 10007 — Руководство по управлению качеством: управление конфигурациями

Международный стандарт ISO 10007 определяет:[17]

Управление конфигурациями — это управленческая деятельность, осуществляющая техническое и административное руководство в течение всего жизненного цикла продукта или услуги, ведущее учёт конфигурации и статуса, а также управляет связанной информацией.

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

Конфигурация определяется как совокупность связанных между собой функциональных и физических характеристик продукта, описанных в документации по конфигурации[18].

NIST

Компьютерное исследовательское и ресурсное отделение NIST определяет управление конфигурациями как:

Совокупность мероприятий по созданию и поддержанию целостности ИТ-продуктов и информационных систем через контроль процессов инициализации, изменения и мониторинга конфигураций этих продуктов и систем в течение всего жизненного цикла.[19][20]

PRINCE2 (Agile 2016)

В методологии PRINCE2 управление конфигурациями реализуется через стратегию управления конфигурациями, в которой определяются принципы, участники и механизмы контроля и защиты продуктов проекта[21].

Прочие определения

Разные определения управления конфигурациями приведены и в специализированной литературе и источниках, например в SWEBOK. Крупные разработчики определяют УК так:

  • IBM Engineering Requirements Management (ERM) DOORS:

Управление изменениями и конфигурациями — это систематический подход к поддержанию согласованной работы системы или продукта на протяжении всего жизненного цикла и эффективному управлению изменениями[22].

  • Red Hat:

Под управлением конфигурациями понимается управление компьютерными системами, серверами и программным обеспечением для достижения заданной однородности, чтобы предприятия могли быть уверены, что их системы работают ожидаемо при любых изменениях[23].

  • Заявки на изменения и процессы (ПО):

Также, УК может трактоваться как планирование заявок на изменения, их приоритизация, контроль внедрения и группировка запросов для совместной обработки[24][25].

Цели

Общие цели

Целью управления конфигурациями является[26] документирование выполнения физических и функциональных требований к единице конфигурации и достижение полной прозрачности по ним. Это позволяет участникам использовать только актуальную и достоверную информацию[7].

Пример необходимости УК: исследование МАГАТЭ по 50 миссиям (OSART Missions) показало, что проблемы управления конфигурацией остаются актуальной задачей, вне зависимости от размера или страны поставщика, и требуют постоянной работы по устранению.[27]

Основные задачи УК

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

Предотвращаемые проблемы

  • Отсутствие прослеживаемости изменений,
  • Затруднённость отката изменений,
  • Неизвестные версии или тестовые экземпляры при работе с клиентами,
  • Сложности хранения артефактов или документации,
  • Недостаточное качество разработки и продукта.

В ИТ-контексте

В ИТ управление конфигурациями призвано обеспечить:[28]

  • Аудитируемость версий,
  • Рост качества и защищённости систем,
  • Рост эффективности проекта/продукта,
  • Управление сложными разработками и сопровождением.

В рамках ITIL 4 управление конфигурациями относится к разделу управления сервисными активами (см. Управление ИТ-активами). УК и управление активами пересекаются, но различаются по сути.[29][30][31][32][33]

Выполнение стандартов

УК, помимо прочего, способствует выполнению отраслевых стандартов, например, Функциональная безопасность, ISO 26262 (часть 8)[34] и ISO 20000[35][36].

Концептуальные области

ОПУК — организация и планирование управления конфигурациями

В рамках ОПУК принимаются организационные и технические решения по процессам ИК, ВУК, КИК и АК. Это может быть реализовано как на проектном, так и на продуктовом уровне. В числе важнейших решений — выбор инструментов, назначение ролей, распределение прав и обязанностей, определение процессов и аудит системы для проверки их соблюдения[7].

ИК — идентификация конфигураций

ИК необходима для осуществления ВУК, АК и КИК. В её рамках выполняется отбор единиц конфигурации, построение их структуры, документирование и присвоение идентификаторов. Ключевые вопросы касаются гранулярности, определения базовых конфигураций (базовые линии) и системы нумерации.[7]

КИК — контроль изменений конфигураций

КИК охватывает проблемы возникновения изменений в конфигурации. Главная задача — управление изменениями: идентификация, описание, классификация, оценка, утверждение и внедрение всех изменений для единиц конфигурации и относящихся к ним документов. Решения принимаются комитетом по контролю изменений (англ. change control board; CCB). Эффективный контроль требует формализованного процесса с этапами заявки, рассмотрения, утверждения, внедрения и документирования изменений. Важные документы — заявка на изменение (англ. change request, CR), протокол заседания CCB и приказ на изменение. Базовой точкой отсчёта служит соответствующая конфигурация на конкретный момент.[7]

ВУК — ведение учёта конфигураций

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

АК — аудит конфигураций

Аудит конфигураций — это формальная проверка конфигураций на предмет соответствия заявленным физическим и функциональным характеристикам, а также соответствия реализованного продукта и его документации. Различают функциональный и физический аудит, которые возможны как для всей конфигурации, так и для отдельной единицы. Особенно необходим аудит перед утверждением базовой конфигурации.[7]

Методы и инструменты ведения учёта конфигураций

Для эффективного УК требуется присваивать уникальный идентификатор каждому состоянию объекта (файлу, коду, документу, спецификации, программе, системе и др.), вне зависимости от ручного или автоматизированного метода учёта.

Ручные методы

Ручные методы — это способы, не использующие цифровые инструменты (компьютер, софт), при которых версионирование и управление конфигурациями осуществляется вручную. Например, долгое время перфокарты использовались для каталогизации архивов и библиотек без компьютера. Елементарно единицы конфигурации можно фиксировать и на бумаге, отмечая версию и другие параметры. Этот подход теоретически применим и к ПО, но нецелесообразен либо невозможен из-за сложности современных систем, что требует автоматизации.[9]

Автоматизированные инструменты

Автоматизированные инструменты для управления конфигурациями обеспечивают учёт данных, архивирование и процессы управления ими. Как правило, они поддерживают версионность, фиксируют автора, время изменения, дают атрибуцию и сопровождают процесс УК. История версий, часто реализованная через обратное „дельта“-кодирование, сохраняется в базе для отслеживания. Современные инструменты позволяют обеспечивать идентификацию конфигураций без дублирования элементов, предоставляют доступ с разграничением прав, предотвращают конфликтные или потерянные изменения посредством механизмов слияния (merge). В крупных проектах автоматизация управления конфигурациями является жизненно необходимой.

Примеры инструментов

Возможны разные типы инструментов для УК, включая коммерческие и свободные решения.

SWEBOK выделяет следующие классы инструментов:[5]

  • инструменты управления библиотеками;
  • инструменты учёта изменений (tracking);
  • системы управления версиями;
  • средства управления выпусками (release management).

Важно: инструменты УК идут дальше обычных систем версий (например, Git), обеспечивая интеграцию и возможность сквозной прослеживаемости между различными инструментами и процессами, вплоть до требований. В простейшем случае для учёта может использоваться Excel; крупные системы (PLM, ALM) поддерживают управление требованиями и прочими аспектами жизненного цикла продукта. Немногие решения поддерживают управление продуктовыми линиями и вариантами[37].

Примечание: Перечень не исчерпывающий.

Системы управления версиями

  • Apache Subversion (SVN) — централизованная система управления версиями;
  • Bazaar — распределённая система;
  • BitKeeper — распределённая система;
  • Concurrent Versions System (CVS) — централизованная система;
  • Fossil SCM[38] — распределённая система;
  • Gerrit Code Review (Gerrit (ПО)) — надстройка над Git, в том числе используется Wikimedia;
  • Git — распределённая система; (реализован в коммерческих сервисах GitLab, GitHub) зачастую используется централизованно;
  • Mercurial — распределённая система;
  • Source Code Control System (SCCS) — локальная система управления версиями.

Инструменты для управления конфигурациями, ALM/PLM-комплексы

Специализированные средства (в том числе для DevOps и облаков, часть — свободные)

Примечания

  1. Managementnormen & Normen für Managementsysteme (нем.). Managementnormen. Beuth Verlag (22 апреля 2021). Дата обращения: 22 апреля 2021. Архивировано 22 апреля 2021 года.
  2. Heinold, Rainer. Software Management: Beherrschung des Lifecycles // Rechtzeitiges Konfigurationsmanagement : [нем.]. — Berlin, Heidelberg : Springer, 2002. — P. 137–159. — ISBN 3-642-56367-8. — doi:10.1007/978-3-642-56367-6_8.
  3. Madauss, Bernd-J. Projektmanagement: Theorie und Praxis aus einer Hand // Dokumentations- und Konfigurationsmanagement im Projekt : [нем.]. — Berlin, Heidelberg : Springer, 2017. — P. 455–481. — ISBN 978-3-662-54432-7. — doi:10.1007/978-3-662-54432-7_12.
  4. Luqman, Ahmad (ноябрь 2006). “Comparison of Configuration Management Activities Between Prince 2 CMMI 1.1”. 2006 International Conference on Emerging Technologies [англ.]: 742—745. DOI:10.1109/ICET.2006.335917. Дата обращения 22 апреля 2021. Проверьте дату в |date= (справка на английском)
  5. 1 2 Configuration Management (англ.). SEBoK. Дата обращения: 23 апреля 2021.
  6. 1 2 3 IEEE/ISO/IEC 24765-2017 – ISO/IEC/IEEE International Standard – Systems and software engineering — Vocabulary (англ.). Дата обращения: 22 апреля 2021.
  7. 1 2 3 4 5 6 7 8 9 10 IEEE 828-2012 – IEEE Standard for Configuration Management in Systems and Software Engineering (англ.). Дата обращения: 22 апреля 2021.
  8. IEEE 729-1983 – IEEE Standard Glossary of Software Engineering Terminology (англ.). Дата обращения: 22 апреля 2021.
  9. 1 2 3 Dart, Susan A. (1992). “The Past, Present, and Future of Configuration Management” [англ.]: 65311 Bytes. DOI:10.1184/R1/6585185.V1. Дата обращения 22 апреля 2021.
  10. ISO/IEC/IEEE 24765:2017 (англ.). iso.org. Дата обращения: 22 апреля 2021.
  11. “Configuration Management in Complex Engineering Projects”. Procedia CIRP [англ.]. 11: 173—176. 1 января 2013. DOI:10.1016/j.procir.2013.07.046. ISSN 2212-8271. Дата обращения 23 апреля 2021.
  12. Brown, Bradley J. (июнь 1987). “Checksum methodology as a configuration management tool”. Journal of Systems and Software [англ.]. 7 (2): 141—143. DOI:10.1016/0164-1212(87)90018-5. Дата обращения 24 апреля 2021. Проверьте дату в |date= (справка на английском)
  13. Stefanek, George L. Information Security Best Practices // Software validation and verification rules : [англ.]. — Elsevier, 2002. — P. 119–123. — ISBN 1-878707-96-5.
  14. EIA649C: Configuration Management Standard - SAE International (англ.). Дата обращения: 22 апреля 2021.
  15. 1 2 VDA QMC Working Group 13 / Automotive SIG. Automotive SPICE Process Assessment / Reference Model : [англ.]. — 3.1. — 1 ноября 2017. — P. 128.
  16. Configuration Management Through ISO 10007:2017 — ANSI Blog (англ.). The ANSI Blog (2 мая 2017). Дата обращения: 22 апреля 2021.
  17. DIN ISO 10007:2020-10, Qualitätsmanagement - Leitfaden für Konfigurationsmanagement (ISO_10007:2017) : [нем.]. — Beuth Verlag GmbH, 2020. — doi:10.31030/3175839.
  18. Hab, Gerhard. Projektmanagement in der Automobilindustrie Effizientes Management von Fahrzeugprojekten entlang der Wertschöpfungskette : [нем.]. — 3-е, перераб. и доп. изд. — Wiesbaden : Springer Gabler, 2010. — P. 303 ff.. — ISBN 978-3-8349-8850-8.
  19. CSRC Content Editor. configuration management — Glossary (англ.). CSRC (24 июня 2021). Дата обращения: 24 июня 2021.
  20. Joint Task Force. Security and Privacy Controls for Information Systems and Organizations : [англ.]. — National Institute of Standards and Technology, 10 декабря 2020.
  21. PRINCE2 Agile 2016 > A.6 Configuration management strategy (англ.). Дата обращения: 22 апреля 2021.
  22. Glossary terms for IBM Engineering Requirements Management DOORS (англ.). Дата обращения: 22 апреля 2021.
  23. Что такое управление конфигурациями? (нем.). Red Hat. Дата обращения: 22 апреля 2021.
  24. Noack, Jörg. Техники объектно-ориентированной разработки ПО // Конфигурационное управление : [нем.]. — Berlin, Heidelberg : Springer, 2001. — P. 340–376. — ISBN 3-642-59481-6. — doi:10.1007/978-3-642-59481-6_18.
  25. Weischedel, Guido; Schwartz, Thomas; Andrews, Mark (1 июня 2008). “Konfigurationsmanagement optimiert Änderungsprozesse”. ATZextra [нем.]. 13 (3): 76—79. DOI:10.1365/s35778-008-0124-z. ISSN 2195-1470. Дата обращения 15 июня 2024. |access-date= требует |url= (справка)
  26. Configuration Management Workflows (англ.). Micro Focus. Дата обращения: 27 мая 2021.
  27. Configuration Management in Nuclear Power Plants (англ.) (28 февраля 2019). Дата обращения: 27 мая 2021.
  28. Steinweg, Carl. Projektkompass Softwareentwicklung: Geschäftsorientierte Entwicklung von IT-Systemen // Versions- und Konfigurationsmanagement : [нем.]. — Wiesbaden : Vieweg+Teubner Verlag, 1999. — P. 267–289. — ISBN 3-322-96910-X. — doi:10.1007/978-3-322-96910-1_11.
  29. Service Asset and Configuration Management (англ.). IT Process Wiki. Дата обращения: 7 июля 2021.
  30. Stefan Kempter. ITIL 4 (англ.). IT Process Wiki. Дата обращения: 7 июля 2021.
  31. Don't Confuse IT Asset Management and Configuration Management (англ.) (15 февраля 2019). Дата обращения: 7 июля 2021.
  32. ITIL service asset and configuration management – Documentation for BMC CMDB 20.02 (англ.). BMC Documentation. Дата обращения: 7 июля 2021.
  33. Service Asset and Configuration Management – IT Service Management Office (англ.). Дата обращения: 7 июля 2021.
  34. Management of Functional Safety: Part 2 of ISO 26262 – Kugler Maag Cie (англ.). Дата обращения: 22 апреля 2021.
  35. ISO/IEC 20000-1:2011 (англ.). iso.org. Дата обращения: 22 апреля 2021.
  36. Ian Whyte. Configuration Management Ensuring Compliance with ISO/IEC 20000 (англ.) (PDF). Bishops Beech Ltd. Дата обращения: 22 апреля 2021.
  37. Software Product Lines Curriculum (англ.). Software Engineering Institute. Дата обращения: 22 апреля 2021.
  38. Fossil: Home (англ.). Дата обращения: 22 апреля 2021.
  39. codebeamer & codebeamer X (англ.). Дата обращения: 23 апреля 2021.
  40. Application Lifecycle Management — ALM Tools, Software (англ.). Дата обращения: 22 апреля 2021.
  41. Configuration Management (англ.). Дата обращения: 22 апреля 2021.
  42. Rüdiger Brand. Опыт крупного проекта с полной сквозной цепочкой инструментов (нем.) (PDF) (11 марта 2009). Дата обращения: 22 апреля 2021. Архивировано 24 февраля 2016 года.
  43. Engineering Change Management Software: Configuration Management (англ.). Дата обращения: 22 апреля 2021.
  44. Siemens Digital Industries Software (англ.). Дата обращения: 22 апреля 2021.
  45. Softwareänderungs- und Konfigurationsmanagement (нем.). Дата обращения: 22 апреля 2021.
  46. Marco Bravo. Top 5 configuration management tools (англ.). opensource.com (12 декабря 2018). Дата обращения: 22 апреля 2021.
  47. Chef Software DevOps Automation Tools & Solutions (англ.). Дата обращения: 22 апреля 2021.
  48. Azure DevOps Server (нем.). Дата обращения: 22 апреля 2021.
  49. aczechowski. What is Configuration Manager? — Configuration Manager (англ.). Дата обращения: 23 апреля 2021.
  50. System Center 2019 — Datacenter Management (англ.). Дата обращения: 8 сентября 2021.
  51. CMDB & Discovery software for Cloud, Container, & On-prem Service Mapping (англ.). Дата обращения: 24 июня 2021.

Литература

  • Brakel, R. и др. “Configuration Management for Wendelstein 7-X.” Fusion engineering and design. 84.2–6 (2009): 505–508.
  • Colin Hood, Simon Wiedemann, Stefan Fichtinger, Urte Pautz. Requirements Management: Interface Between Requirements Development and All Other Systems Engineering Processes. Springer, Berlin, 2007. ISBN 3-540-47689-X.
  • Hees, Andreas и др. “Konfigurationsmanagement für rekonfigurierbare Produktionssysteme”. ZWF Zeitschrift für wirtschaftlichen Fabrikbetrieb 111.1–2 (2016): 11–14.
  • ISO 10007 — Руководство по управлению качеством: управление конфигурациями
  • Quigley, Jon M., и Kim L. Robertson. Configuration Management: Theory, Practice, and Application. Philadelphia, PA: Auerbach, 2015.
  • МАГАТЭ. Конфигурационное управление на АЭС. Вена, Австрия: МАГАТЭ, 2003.
  • PMI. Practice standard for project configuration management : [англ.]. — Newtown Square : Project Management Institute, 2007. — ISBN 978-1-930699-47-2.

Ссылки

  • NASA Sample Configuration Management Plan: (DOC) (PDF)

Категории