УПРАВЛЕНИЕ КОНФИГУРАЦИЕЙ: все, что вам нужно знать

управление конфигурацией
Содержание Спрятать
  1. Что такое управление конфигурациями?
  2. Почему управление конфигурацией важно?
    1. Цена неадекватного или несуществующего управления конфигурацией
  3. Отличные преимущества управления конфигурацией
  4. Как выглядит стратегия управления конфигурацией?
    1. №1. Открытие
    2. № 2. Ориентир
    3. №3. Контроль версий
    4. № 4. Обзор
  5. Как управление конфигурацией связано с DevOps, непрерывной доставкой и другими технологиями…
  6. Совместим ли Agile с управлением конфигурациями?
  7. Управление конфигурацией и DevOps: как они сочетаются?
  8. Какое место конвейеры занимают в управлении конфигурациями?
  9. Является ли управление конфигурацией инфраструктуры как кода реальной вещью?
  10. Есть ли у вас непрерывная интеграция/управление конфигурацией доставки?
  11. Инструменты управления конфигурацией
    1. №1. Гит
    2. № 2. Докер
    3. №3. Терраформ
    4. № 4. Шеф-повар, Марионетка, Ansible, Соляной стек
  12. Как можно начать работу с управлением конфигурацией?
  13. Заключение
    1. Статьи по теме
    2. Рекомендации

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

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

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

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

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

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

Почему управление конфигурацией важно?

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

Цена неадекватного или несуществующего управления конфигурацией

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

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

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

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

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

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

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

Наконец, это помогает с аварийным восстановлением в случае сбоя или другого непредвиденного инцидента. Прослеживаемость — это базовый элемент управления конфигурацией, поэтому откат обновления до последней известной стабильной версии программного обеспечения относительно прост. Это позволяет программе продолжать выполнять бизнес-обязанности, пока команда работает над долгосрочным решением.

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

Как выглядит стратегия управления конфигурацией?

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

№1. Открытие

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

№ 2. Ориентир

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

№3. Контроль версий

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

№ 4. Обзор

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

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

Как управление конфигурацией связано с DevOps, непрерывной доставкой и другими технологиями…

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

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

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

Управление конфигурацией и DevOps: как они сочетаются?

DevOps — это применение гибких концепций как в отделах разработки, так и в операционных подразделениях. На самом деле DevOps стремится согласовать цели обоих отделов. В некоторых компаниях отдел развития стремится к изменениям, тогда как отдел эксплуатации стремится к стабильности. С другой стороны, компании, использующие DevOps, стремятся как к стабильности развернутых активов, так и к частоте изменений. Тем не менее, достижение этого результата потребует культурного сдвига.

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

Какое место конвейеры занимают в управлении конфигурациями?

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

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

Является ли управление конфигурацией инфраструктуры как кода реальной вещью?

Инфраструктура как код (или IaC) — это практика обеспечения того, чтобы вся подготовка инфраструктуры выполнялась с помощью кода. Цель IaC — вести документированный учет того, какие сервисы существуют, где они расположены и при каких условиях они доступны. Управление конфигурацией может решить использовать компоненты IaC, чтобы получить полное представление обо всех технологических активах, которыми владеет организация.

Есть ли у вас непрерывная интеграция/управление конфигурацией доставки?

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

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

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

№1. Гит

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

№ 2. Докер

Контейнеризация, как и блокировка конфигурации, — это расширенная форма управления конфигурацией, предлагаемая Docker. Docker основан на файлах конфигурации, называемых Dockerfiles, которые включают в себя список команд, оцениваемых для восстановления предполагаемого снимка состояния операционной системы. Docker создает контейнеры из этих файлов Dockerfile, которые представляют собой моментальные снимки предустановленного приложения. Dockerfiles фиксируются в репозитории Git для контроля версий и требуют дополнительного управления конфигурацией, прежде чем их можно будет развернуть в инфраструктуре.

№3. Терраформ

Terraform от HasiCorp — это платформа управления конфигурацией с открытым исходным кодом. IaC используется Terraform для подготовки и управления кластерами, облачной инфраструктурой и сервисами. Terraform поддерживает AWS, Microsoft Azure и другие облачные платформы.

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

№ 4. Шеф-повар, Марионетка, Ansible, Соляной стек

Среды автоматизации ИТ включают Ansible, Salt Stack, Chef и Puppet. Эти платформы автоматизируют несколько типичных процессов системного администратора. Каждая структура использует набор файлов данных конфигурации, обычно YAML или XML, которые анализируются исполняемым файлом.

Файлы данных конфигурации описывают шаги, которые необходимо предпринять для настройки системы. Затем исполняемый файл выполняет действия. Язык исполняемого файла зависит от платформы; Ansible и Salt Stack основаны на Python, а Chef — на Ruby. Этот метод аналогичен запуску специальных сценариев оболочки, но он обеспечивает более структурированный и усовершенствованный опыт работы с экосистемами соответствующих платформ.

Эти инструменты обеспечат автоматизацию, необходимую для достижения CI/CD.

Как можно начать работу с управлением конфигурацией?

Конечно, вы не можете перейти от «нуля» к «желаемому состоянию» в одно мгновение. На самом деле, прежде чем выбрать систему управления конфигурацией, вы должны сначала определить, зачем она вам нужна. Вот как начать работу с управлением конфигурацией:

  • Начните с составления ручных контрольных списков и документации в общую группу параметров конфигурации, существующих во всех (или большинстве) системах. Сосредоточение усилий по управлению конфигурацией на начальном этапе на наиболее распространенных шаблонах может помочь вам сэкономить большую часть человеческого труда и быстро обеспечить преимущества автоматизации для вашей компании.
  • Убедитесь, что мониторинг, антивирус и другое часто используемое программное обеспечение включены в контрольный список.
  • Чтобы разработать повторно используемые элементы инфраструктуры в виде кода, классифицируйте системы в зависимости от того, что необходимо изменить, чтобы сделать их специфичными для конкретных приложений, географических местоположений или других категорий.
  • Выберите систему управления конфигурацией.

Заключение

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

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

Удачи, и с этого момента проверяйте, отслеживайте и записывайте все как код!

Рекомендации

Оставьте комментарий

Ваш электронный адрес не будет опубликован. Обязательные поля помечены * *

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

НЕДОСТАТОЧНЫЙ СОТРУДНИК: Обращение с недовольным сотрудником

Содержание Скрыть недовольного сотрудникаНедовольный сотрудник ОпределениеПризнаки недовольного сотрудникаНедовольный сотрудник делает ложные заявления#1. Существуют…