КЕРУВАННЯ КОНФІГУРАЦІЄЮ: усе, що вам потрібно знати

управління конфігурацією
Зміст приховувати
  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. Git
    2. #2. Докер
    3. #3. Тераформа
    4. #4. Шеф-кухар, лялька, ансібль, купа солі
  12. Як розпочати керування конфігурацією?
  13. Висновок
    1. Статті по темі
    2. посилання

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

Що таке керування конфігурацією?

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

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

Секрети, такі як паролі та ключі API, кінцеві точки для зовнішніх з’єднань, такі як API, і специфікації обчислень, такі як потреби в RAM, є іншими екземплярами метаданих конфігурації.

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

Чому керування конфігурацією важливе?

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

Ціна неадекватного або відсутнього керування конфігурацією

Відсутність консолідованої бази знань є істотним недоліком життєвого циклу розробки програмного забезпечення без управління конфігурацією. Метадані для багатьох систем, які складають виробниче середовище, можуть бути розподілені між кількома файлами та робочими станціями, що призведе до розпорошення такої важливої ​​інформації, як ключі API та паролі. Пошук цих даних уповільнює конвеєр.

Іншим недоліком цієї недостатньої видимості є те, що важко зіставити середовище тестування для програми з робочим середовищем, де вона буде знаходитися. Ця невідповідність ставить під загрозу якість тестування продуктивності, оскільки робочі налаштування під час роботи програми можуть суттєво відрізнятися від параметрів у демонстраційному середовищі. Гірше того, неправильна конфігурація програмного забезпечення може заборонити його розгортання у виробництві.

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

Відмінні переваги керування конфігурацією

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

Згідно з керівництвом конфігурації, документація є ключовим компонентом цієї видимості. Це полегшує роботу нових інженерів і гарантує, що інші зможуть швидко вивчити робоче середовище, щоб бути більш ефективними в надзвичайних ситуаціях, коли потрібне швидке реагування.

Аналіз виробничого середовища та забезпечення відповідності тестового середовища є простими процесами завдяки управлінню конфігурацією. Це зменшує ризик розгортання, оскільки програма, швидше за все, виконуватиметься за планом, а тести, що проводяться з нею, відповідають фактичним вимогам програмного забезпечення. Якщо час простою програми має грошовий вплив, рекомендується мінімізувати фактори ризику, коли це можливо.

Нарешті, це допомагає з аварійним відновленням у разі збою або іншого непередбаченого інциденту. Відстеження є основним елементом керування конфігурацією, тому відносно легко відкотити оновлення до останньої відомої стабільної версії програмного забезпечення. Це дозволяє програмі продовжувати виконувати бізнес-обов’язки, поки команда працює над довгостроковим рішенням.

Тепер, коли ви розумієте переваги чудового керування конфігурацією, давайте подивимося, як ви можете запровадити це у своїй фірмі.

Як виглядає стратегія керування конфігурацією?

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

№1. Відкриття

Інвентаризація існуючих систем є початковим кроком. Каталогізація має відбуватися в усіх контекстах, важливих для тестування та роботи вашої програми. Далі процес виявлення збиратиме метадані ідентифікованих вами елементів в єдине центральне сховище. Це єдине джерело правди зберігатиме ці дані у файлах даних, приділяючи велику увагу шифруванню будь-яких конфіденційних даних, таких як паролі та ключі, перед їх збереженням.

№ 2. Бенчмарк

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

#3. Контроль версій

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

#4. огляд

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

Оскільки вся команда може перевіряти конфігураційні файли в репозиторії, це сприяє підзвітності, усуває ризики та полегшує співпрацю.

Як керування конфігураціями пов’язане з DevOps, безперервною доставкою та іншими технологіями…

Наразі ви маєте добре розуміти, що таке керування конфігурацією та що воно прагне зробити. Перш ніж розглядати інструменти, я хотів би дослідити, як керування конфігураціями поєднується з іншими концепціями розробки програмного забезпечення, такими як гнучкість, DevOps, безперервна інтеграція, безперервна доставка та Docker, щоб ви могли зрозуміти, як ці концепції поєднуються з ідеями керування конфігурацією.

Чи сумісний Agile з керуванням конфігурацією?

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

Управління конфігурацією та DevOps: як вони підходять?

DevOps — це застосування гнучких концепцій як у відділі розробки, так і в операційному відділі. Насправді DevOps прагне узгодити цілі обох відділів. У деяких компаніях відділ розвитку прагне змін, тоді як операційний відділ прагне стабільності. З іншого боку, компанії, які використовують DevOps, прагнуть як стабільності своїх розгорнутих активів, так і частоти змін. Однак досягнення цього результату вимагатиме культурних змін.

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

Яке місце займають конвеєри в управлінні конфігурацією?

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

Програмний конвеєр, отже, є типом керування конфігурацією. Коли ми створюємо програмне забезпечення за допомогою таких інструментів, як Docker, ми кодуємо наші інструкції зі створення у файлі Docker. Це дозволяє нам краще зрозуміти залежності наших артефактів.

Чи реально керувати конфігурацією інфраструктури як коду?

Інфраструктура як код (або IaC) — це практика забезпечення того, щоб усе забезпечення інфраструктури здійснювалося за допомогою коду. Метою IaC є документований облік того, які послуги існують, де вони розташовані та за яких умов вони доступні. Керівництво конфігурації може вирішити використовувати компоненти IaC, щоб мати повне розуміння всіх технологічних активів, якими володіє організація.

У вас є безперервна інтеграція/керування конфігурацією доставки?

Процес гарантування того, що програмне забезпечення завжди доступне для випуску, відомий як безперервна доставка. Цього можна досягти за допомогою масштабної автоматизації та тестування. Безперервна інтеграція — це процес часто об’єднання різних артефактів програмного забезпечення в одному місці для забезпечення успішної інтеграції коду. Інструменти безперервної інтеграції, якими часто є сервери, які виконують пакети автоматизованого тестування, працюють як свого роду засоби керування конфігурацією, забезпечуючи видимість процедур, необхідних для налаштування та налаштування конкретного програмного активу.

Це повинно відповісти на деякі ваші запитання щодо того, як керування конфігурацією узгоджується з методами чи ідеями, які ви використовуєте або з якими ви знайомі. Однак будь-яке обговорення управління конфігурацією було б неадекватним без обговорення інструментів. Тому давайте подивимося на різноманітні інструменти, доступні для впровадження керування конфігурацією.

Інструменти керування конфігурацією

#1. Git

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

#2. Докер

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

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

Terraform від HasiCorp — це платформа керування конфігурацією з відкритим кодом. IaC використовується Terraform для надання та керування кластерами, хмарною інфраструктурою та послугами. AWS, Microsoft Azure та інші хмарні платформи підтримуються Terraform.

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

#4. Шеф-кухар, лялька, ансібль, купа солі

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

Файли даних конфігурації описують кроки, які необхідно виконати для налаштування системи. Потім виконуваний файл виконує дії. Мова виконуваного файлу залежить від платформи; Ansible і Salt Stack засновані на Python, а Chef — на Ruby. Цей метод аналогічний запуску сценаріїв ad-hoc оболонки, але він забезпечує більш структурований і витончений досвід через екосистеми відповідних платформ.

Ці інструменти забезпечать автоматизацію, необхідну для досягнення CI/CD.

Як розпочати керування конфігурацією?

Звісно, ​​не можна миттєво перейти від «нуля» до «бажаного стану». Фактично, перш ніж вибрати систему керування конфігурацією, ви повинні спочатку визначити, навіщо вона вам потрібна. Ось як почати роботу з керуванням конфігурацією:

  • Почніть зі складання вручну контрольних списків і документації в загальну групу параметрів конфігурації, які існують у всіх (або більшості) систем. Зосередження ваших зусиль із керування конфігураціями на найпоширеніших моделях може допомогти вам заощадити найбільшу кількість людської праці та забезпечити швидку автоматизацію для вашої фірми.
  • Переконайтеся, що програмне забезпечення для моніторингу, антивірусне та інше часто використовуване програмне забезпечення включено до контрольного списку.
  • Щоб розробити багаторазово використовувані частини інфраструктури як код, класифікуйте системи залежно від того, що потрібно змінити, щоб зробити їх специфічними для конкретних програм, географічних місць або інших категорій.
  • Виберіть систему управління конфігурацією.

Висновок

Ось і все! Сподіваємось, це прояснило ваше розуміння керування конфігурацією. Це все про відстеження поточного стану вашого програмного забезпечення та інфраструктури.

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

Успіхів, і відтепер перевіряйте, відстежуйте та пишіть усе як код!

посилання

залишити коментар

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

Вам також може сподобатися
Системи управління контрактами
Детальніше

СИСТЕМИ УПРАВЛІННЯ ДОГОВОРАМИ: 2023 Топ Найкраще програмне забезпечення

Зміст Приховати Управління контрактами. Що таке системи керування контрактами? Чому керування контрактами таке важливе? Хто використовує керування контрактами…
Розробка основи для виявлення алкоголізму працівників і боротьби з ним у бізнес-контексті
Детальніше

Розробка основи для виявлення алкоголізму працівників і боротьби з ним у бізнес-контексті

Зміст Сховати Виявлення алкоголізму співробітників. Боротьба з алкоголізмом співробітників: реабілітація та підтримкаБлижчий погляд на реабілітацію...