Использование Doppler для управления конфигурацией переменных окружения


Что такое переменные окружения и почему они важны?

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

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

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

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

Каков обычный способ управления переменными окружения?

Одним из распространенных способов управления переменными окружения, принятых разработчиками, является использование отдельного файла, содержащего несколько пар ключ-значение, которые представляют переменные, используемые в приложении. Этот файл обычно не добавляется ни в одну систему контроля версий. Часто его добавляют вручную в каталог/сайт развертывания. Он также добавляется как скрытый файл в файловой системе (например, в Linux) с помощью префикса “.”.

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

Обычно он записывается в форматах JSON, YAML или TEXT.

Недостатки традиционного способа

В ClickPesa мы поддерживаем несколько окружений, которые используются в нашем цикле разработки и выпуска. Каждая переменная среды содержит свой набор пар “ключ-значение”, которые диктуют поведение приложения (приложений).

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

  • Значит ли это, что нам нужно дублировать один и тот же файл и предоставлять его в качестве входных данных для процесса сборки-тестирования-развертывания?
  • Как нам быть с изменениями в файле в процессе разработки?

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

Что такое Doppler

Doppler – это SaaS-платформа, которая упрощает управление переменными окружения с помощью интуитивно понятной приборной панели, мощного CLI и интеграций для синхронизации секретов между средами разработки, облачными провайдерами, хостинговыми платформами, инструментами CI/CD, Docker, Kubernetes и Terraform.

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

Мы используем его для настройки переменных окружения для определенных мест в файловой системе, где наши приложения размещены внутри VPC. Это означает, что мы можем поддерживать различные версии одного и того же приложения в зависимости от контекста среды.

Эти переменные можно обновлять с помощью сценариев, определенных в процессе сборки-тестирования-развертывания.

Заключение

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

Оцените статью
Procodings.ru
Добавить комментарий