Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность.
Эта статья также участвует"Проект "Звезда раскопок"", чтобы выиграть творческие подарочные пакеты и бросить вызов творческим поощрениям.
3. Запустите код локально
Для кода приложения мы можем легко построить среду локально и смоделировать реальные бизнес-сценарии для тестирования.Конечно, для кода, связанного с инфраструктурой, мы не можем создавать вычислительные экземпляры и экземпляры базы данных локально. Однако для обеспечения надежности и безопасности производственной среды необходимо провести тестирование перед официальным развертыванием.Terraform
, единственный способ, которым мы можем проверить это вручную, этозапустить его в среде песочницы.
Так называемая среда песочницы, например, подача заявки на учетную запись для работы с облачными ресурсами, предназначенная для разработки, а затем выполнение соответствующих действий.apply
операции и, наконец, использоватьCurl
Подождите, пока инструменты не проверят успешность развертывания.
4. Внесите изменения в код и отправьте отзывы
внести изменения в кодРазумеется, речь идет об итеративном изменении кода, после которого необходимо развернуть проверочный тест. В этой части подчеркивается, как сэкономить время проверки в процессе проверки? Основная цель состоит в том, чтобы не выполнять полноэтапную проверку, а проверять выборочно. Например, вы можете выборочно не создавать ресурсы или уничтожать ресурсы, а только развертывать на уровне приложения. Таким образом, время обратной связи может быть значительно сокращено и эффективность можно повысить..
Отправить код и просмотретьЗа этой частью контента следят многие группы разработчиков при разработке кода приложения.pull request
Выполните проверку кода. В командных операциях все должны соблюдать один и тот же набор правил кодирования и стилей кода, чего можно достичь с помощью проверок кода.
5. Автоматизированное тестирование
Как и в случае с кодом приложения, использование автоматизированных тестов может обеспечить непрерывную интеграцию (CI). То есть, перехватывая сценарий, автоматический процесс тестирования на сервере CI запускается после каждой отправки, иpull request
Результат проверки отображается в запросе. Для этого нам нужно сделать две вещи:
- Написание модульных тестов, интеграционных тестов и сквозных тестов для кода Terraform.
- использовать
Atlantis
Инструмент с открытым исходным кодом, который запускается автоматически при фиксации кодаterraform plan
и добавьте вывод команды plan в комментарии запроса на вытягивание.
6. Слияние и выпуск
Когда изменения кода и запланированные результаты проверяются членами команды, и все тесты завершены. Вы можете объединить изменения в основную ветку и опубликовать код. Как и в случае с кодом приложения, выпущенную версию можно создать с помощью тегов Git.
Поскольку Terraform поддерживает загрузку кода непосредственно из репозиториев Git, состояние репозитория для определенного тега представляет собой неизменяемый артефакт с контролируемой версией, который будет развернут.
7. Развертывание
После написания вышеуказанного кода, контроля версий, проверки и автоматического тестирования начинается развертывание. развертыватьTerraform
Код имеет некоторые оптимизации и соображения, чтобы сделать его более эффективным.
7.1 Инструменты развертывания
Terraform сам по себе является инструментом, но он имеет ограничения в некоторых аспектах, и некоторые инструменты развертывания включают Atlantis (для запросов на вытягивание), Terraform Enterprise (предоставляет пользовательский интерфейс, управляет переменными, секретами и правами доступа), Terragunt (расширения развертывания). Даже сценарии могут лучше улучшить общий процесс управления развертыванием.
7.2 Стратегия развертывания
Сама Terraform не предоставляет какой-либо стратегии развертывания и нуждается в разработке собственных модулей для поддержки нулевого времени простоя, непрерывного развертывания, сине-зеленого развертывания и канареечного развертывания. Однако из-за ограничений самого языка возможности управления, которые могут быть достигнуты, очень ограничены, поэтому его необходимо разрабатывать с осторожностью. Например, стратегически повторите попытку, сосредоточьтесь на ошибке состояния Terraform и найдите восходящее решение для ошибок снятия блокировки и т. д.
Есть и другие соображения, например, должен быть отдельный сервер развертывания, не работающий на машине разработчика, сервер CI должен строго контролироваться и так далее.