Проектирование конфигурируемых сервисов¶
Нет никакого смысла сохранять значения конфигурационных свойств прямо в коде сервиса, так как в этом случае его пришлось бы повторно собирать для каждой отдельной среды. Кроме того, конфиденциальная информация, такая как учетные данные, должна безопасно храниться в хранилище секретных ключей, таком как Hashicorp Vault или AWS Parameter Store. Поэтому конфигурация должна выноситься вовне.
Вынесение конфигурации вовне с помощью пассивной модели¶
Пассивная модель полагается на совместную работу среды развертывания и сервиса. Среда развертывания предоставляет конфигурационные свойства при создании экземпляра сервиса в виде переменных окружения или конфигурационного файла. Экземпляр сервиса читает свойства во время запуска.
Пассивная модель — эффективный и широко распространенный механизм конфигурации сервисов. Одно из ограничений состоит в том, что изменение конфигурации может быть непростой или даже невыполнимой задачей. (Например, нельзя изменить переменные окружения развернутого сервиса)
Вынесение конфигурации вовне с помощью активной модели¶

В активной модели экземпляр сервиса считывает конфигурационные свойства с конфигурационного сервера. Конфигурационные свойства для доступа к серверу конфигураций предоставляются через пассивный механизм.
Возможные способы организации сервера конфигурации:
- система управления версиями, такая как Git
- База данных (SQL или NoSQL)
- Специализированные серверы конфигурации, такие как Hashicorp Vault или AWS Parameter Store
Использование сервера конфигурации дает несколько преимуществ
- Централизованная конфигурация. Кроме того, отдельные реализации позволяют переопределять только часть свойств, чтобы избежать дублирования
- Прозрачная расшифровка конфиденциальных данных.
- Динамическое изменение конфигурации
Основной недостаток в том, что сервер конфигурации нужно отдельно настраивать и обслуживать.
Дата создания : 2 августа 2022 г.