Apply complete! Resources: 0 added, 0 changed, 5 destroyed.
Иными словами, при работе с Terraform каждому разработчику нужны хорошие примеры кода для тестирования и настоящее окружение для разработки (вроде учетной записи AWS), которое служит эквивалентом локального компьютера и используется для выполнения тестов. В процессе ручного тестирования вам, скорее всего, придется создавать и удалять большое количество компонентов инфраструктуры, и это может привести к множеству ошибок. В связи с этим окружение должно быть полностью изолировано от более стабильных сред, предназначенных для финального тестирования и в особенности для промышленного применения.
Учитывая вышесказанное, настоятельно рекомендую каждой команде разработчиков подготовить
Очистка ресурсов после тестов
Наличие множества изолированных окружений необходимо для высокой продуктивности разработчиков, но, если не проявлять осторожность, у вас может накопиться много лишних ресурсов, которые захламят все ваши среды и будут стоить вам круглую сумму.
Чтобы держать расходы под контролем, регулярно чистите свои изолированные среды. Это
Вам как минимум следует создать в команде такую культуру, когда после окончания тестирования разработчики удаляют все, что они развернули, с помощью команды terraformdestroy. Возможно, удастся найти инструменты для очистки лишних или старых ресурсов, которые можно запускать на регулярной основе (скажем, с помощью cron). Вот некоторые примеры для разных сред развертывания.
•
$ cloud-nuke aws --older-than 48h
# Регионы для удаления
regions:
- us-east-2
# Учетные записи для удаления
accounts:
"111111111111": {}
# Удалять только эти ресурсы
resource-types:
targets:
- S3Object
- S3Bucket
- IAMRole
Запускается aws-nuke следующим образом:
$ aws-nuke -5c config.yml
Автоматические тесты
Осторожно: впереди много кода!
Написание автоматических тестов для инфраструктурного кода — занятие не для слабонервных. Этот раздел — самая сложная часть книги и требует от читателя повышенного внимания. Если вы просто пролистываете, можете его пропустить. Но если вы действительно хотите научиться тестировать свой инфраструктурный код, закатывайте рукава и готовьтесь к настоящему программированию! Код на Ruby можно не запускать (он нужен лишь для того, чтобы у вас сформировалась общая картина происходящего), а вот код на Go следует записывать и выполнять как можно активней.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии