Управление конфигурациями
Управление конфигурациями (сокращённо также: УК; англ. 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]
Концептуальные области
ОПУК — организация и планирование управления конфигурациями
В рамках ОПУК принимаются организационные и технические решения по процессам ИК, ВУК, КИК и АК. Это может быть реализовано как на проектном, так и на продуктовом уровне. В числе важнейших решений — выбор инструментов, назначение ролей, распределение прав и обязанностей, определение процессов и аудит системы для проверки их соблюдения[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-комплексы
- CodeBeamer[39];
- IBM Rational Synergy;
- IBM Rational ClearCase;
- Kovair ALM[40];
- Micro Focus Dimensions CM[41] (ранее Serena Software)[42];
- PTC Windchill[43];
- Siemens Polarion ALM[44][45].
Специализированные средства (в том числе для DevOps и облаков, часть — свободные)
Примечания
- ↑ Managementnormen & Normen für Managementsysteme (нем.). Managementnormen. Beuth Verlag (22 апреля 2021). Дата обращения: 22 апреля 2021. Архивировано 22 апреля 2021 года.
- ↑ 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.
- ↑ 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.
- ↑ 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=(справка на английском) - ↑ 1 2 Configuration Management (англ.). SEBoK. Дата обращения: 23 апреля 2021.
- ↑ 1 2 3 IEEE/ISO/IEC 24765-2017 – ISO/IEC/IEEE International Standard – Systems and software engineering — Vocabulary (англ.). Дата обращения: 22 апреля 2021.
- ↑ 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.
- ↑ IEEE 729-1983 – IEEE Standard Glossary of Software Engineering Terminology (англ.). Дата обращения: 22 апреля 2021.
- ↑ 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.
- ↑ ISO/IEC/IEEE 24765:2017 (англ.). iso.org. Дата обращения: 22 апреля 2021.
- ↑ “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.
- ↑ 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=(справка на английском) - ↑ Stefanek, George L. Information Security Best Practices // Software validation and verification rules : [англ.]. — Elsevier, 2002. — P. 119–123. — ISBN 1-878707-96-5.
- ↑ EIA649C: Configuration Management Standard - SAE International (англ.). Дата обращения: 22 апреля 2021.
- ↑ 1 2 VDA QMC Working Group 13 / Automotive SIG. Automotive SPICE Process Assessment / Reference Model : [англ.]. — 3.1. — 1 ноября 2017. — P. 128.
- ↑ Configuration Management Through ISO 10007:2017 — ANSI Blog (англ.). The ANSI Blog (2 мая 2017). Дата обращения: 22 апреля 2021.
- ↑ DIN ISO 10007:2020-10, Qualitätsmanagement - Leitfaden für Konfigurationsmanagement (ISO_10007:2017) : [нем.]. — Beuth Verlag GmbH, 2020. — doi:10.31030/3175839.
- ↑ 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.
- ↑ CSRC Content Editor. configuration management — Glossary (англ.). CSRC (24 июня 2021). Дата обращения: 24 июня 2021.
- ↑ Joint Task Force. Security and Privacy Controls for Information Systems and Organizations : [англ.]. — National Institute of Standards and Technology, 10 декабря 2020.
- ↑ PRINCE2 Agile 2016 > A.6 Configuration management strategy (англ.). Дата обращения: 22 апреля 2021.
- ↑ Glossary terms for IBM Engineering Requirements Management DOORS (англ.). Дата обращения: 22 апреля 2021.
- ↑ Что такое управление конфигурациями? (нем.). Red Hat. Дата обращения: 22 апреля 2021.
- ↑ Noack, Jörg. Техники объектно-ориентированной разработки ПО // Конфигурационное управление : [нем.]. — Berlin, Heidelberg : Springer, 2001. — P. 340–376. — ISBN 3-642-59481-6. — doi:10.1007/978-3-642-59481-6_18.
- ↑ 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=(справка) - ↑ Configuration Management Workflows (англ.). Micro Focus. Дата обращения: 27 мая 2021.
- ↑ Configuration Management in Nuclear Power Plants (англ.) (28 февраля 2019). Дата обращения: 27 мая 2021.
- ↑ 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.
- ↑ Service Asset and Configuration Management (англ.). IT Process Wiki. Дата обращения: 7 июля 2021.
- ↑ Stefan Kempter. ITIL 4 (англ.). IT Process Wiki. Дата обращения: 7 июля 2021.
- ↑ Don't Confuse IT Asset Management and Configuration Management (англ.) (15 февраля 2019). Дата обращения: 7 июля 2021.
- ↑ ITIL service asset and configuration management – Documentation for BMC CMDB 20.02 (англ.). BMC Documentation. Дата обращения: 7 июля 2021.
- ↑ Service Asset and Configuration Management – IT Service Management Office (англ.). Дата обращения: 7 июля 2021.
- ↑ Management of Functional Safety: Part 2 of ISO 26262 – Kugler Maag Cie (англ.). Дата обращения: 22 апреля 2021.
- ↑ ISO/IEC 20000-1:2011 (англ.). iso.org. Дата обращения: 22 апреля 2021.
- ↑ Ian Whyte. Configuration Management Ensuring Compliance with ISO/IEC 20000 (англ.) (PDF). Bishops Beech Ltd. Дата обращения: 22 апреля 2021.
- ↑ Software Product Lines Curriculum (англ.). Software Engineering Institute. Дата обращения: 22 апреля 2021.
- ↑ Fossil: Home (англ.). Дата обращения: 22 апреля 2021.
- ↑ codebeamer & codebeamer X (англ.). Дата обращения: 23 апреля 2021.
- ↑ Application Lifecycle Management — ALM Tools, Software (англ.). Дата обращения: 22 апреля 2021.
- ↑ Configuration Management (англ.). Дата обращения: 22 апреля 2021.
- ↑ Rüdiger Brand. Опыт крупного проекта с полной сквозной цепочкой инструментов (нем.) (PDF) (11 марта 2009). Дата обращения: 22 апреля 2021. Архивировано 24 февраля 2016 года.
- ↑ Engineering Change Management Software: Configuration Management (англ.). Дата обращения: 22 апреля 2021.
- ↑ Siemens Digital Industries Software (англ.). Дата обращения: 22 апреля 2021.
- ↑ Softwareänderungs- und Konfigurationsmanagement (нем.). Дата обращения: 22 апреля 2021.
- ↑ Marco Bravo. Top 5 configuration management tools (англ.). opensource.com (12 декабря 2018). Дата обращения: 22 апреля 2021.
- ↑ Chef Software DevOps Automation Tools & Solutions (англ.). Дата обращения: 22 апреля 2021.
- ↑ Azure DevOps Server (нем.). Дата обращения: 22 апреля 2021.
- ↑ aczechowski. What is Configuration Manager? — Configuration Manager (англ.). Дата обращения: 23 апреля 2021.
- ↑ System Center 2019 — Datacenter Management (англ.). Дата обращения: 8 сентября 2021.
- ↑ 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.