Хто сказав, що файли властивостей і змінні середовища, де взаємовиключні?
Існує різниця між "де я зберігаю конфігурацію програми?" І "звідки в моєму додатку джерело його конфігурації?"
Найімовірнішим результатом є те, що кожен, ймовірно, повинен просто продовжувати робити те, що вони роблять з файлами конфігурації як механізмом зберігання (думати довгостроково, стійкий стан, поки існує середовище).
Однак, замість того, щоб цей конфігураційний файл вносити в контекст програми та дозволяти йому запускати програму, слід мати змогу просто очікувати, що ці змінні будуть вже доступні в середовищі при її запуску.
Це означає, що вам потрібно мати два робочі потоки розгортання -
- Я можу застосувати додаток у середовище, пройшовши процес контролю X зміни та роблячи огляди Y за допомогою інструменту Z, що б там не було.
- Я розгортаю свою конфігурацію оточення в середовище, проходячи процес контролю змін і роблячи огляди B з інструментом C, той самий процес, різний результат.
Використовувати приклад управління змінними середовища в якості пар ключових значень в інструменті, як консул, якщо ви зберігаєте конфігураційні файли в git, то такі інструменти, як git2consul з ручкою, отримують цю конфігурацію в середовищі, коли вона оновлюється.
Якщо у вас є додаток, який очікує, що буде конфігурація доступна як файл конфігурації, ви можете уникнути доставки декількох копій файлу конфігурації з додатком, побудувавши процес розгортання з чимось на зразок консульського шаблону, який має можливість перетворити ваш Значення консула повертаються у файл.