Дрейф в Terraform: плохой, уродливый и Черный Лебедь

Дрейф в Terraform: плохой, уродливый и Черный Лебедь
Photo by Mitchell Luo / Unsplash

"Дрейф в Terraform" - это хорошо известная проблема. Он возникает, когда изменения происходят с ресурсами вашей облачной среды, которые не были вызваны изменениями в Terraform, и приводит к различиям между тем, что фактически настроено в вашем облаке, и тем, что объявлено в вашем коде Terraform. Другими словами, ваше облако "отклонилось" от вашего Terraform. Эти различия могут возникнуть через следующие каналы:

  • Инженеры вручную вносят изменения в ресурсы через веб-приложение поставщика облачных услуг. Иногда это называется "ClickOps" в шутку.
  • Инженеры вносят изменения с помощью команд CLI, таких как инструмент gcloud от Google или AWS CLI.
  • Логика приложения или системы развертывания создает или изменяет ресурсы вне рабочего процесса Terraform. Смотрите в сторону boto3 или других SDK облачных служб.

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

Теперь, когда мы понимаем, что такое дрейф в Terraform и как он возникает, почему это вообще должно нас волновать?

Дрейф в Terraform: Плохой

Вероятность того, что инфраструктура, определенная с помощью Terraform, просмотренная другими членами команды и затем развернутая, имеет очень конкретные характеристики, очень высока. Размер экземпляра EC2, диапазон CIDR-блока подсети и права доступа к бакету S3 были выбраны по какой-то причине.

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

Дрейф в Terraform: Уродливый

Как мы отметили выше, для большинства команд дрейф обнаруживается при выполнении terraform plan. Обычно инженеры не запускают произвольно Terraform (по нашим данным!). Фактически, они часто вызывают его исключительно при попытке развернуть новую функциональность или исправить ошибки. Это означает, что:

  • незамеченый дрейф может оставаться и вызывать проблемы в вашей инфраструктуре на протяжении довольно продолжительного времени до его обнаружения;
  • когда он обнаруживается во время запуска Terraform, посреди развертывания, это крайне дорогостоящий момент, когда ваши инженеры отвлекаются на ручную работу.

Это "уродливо".

Дрейф в Terraform: Черный Лебедь

Недетектированные изменения и выделение ресурсов вне рабочего процесса Terraform могут привести к событиям "Черного Лебедя", именно поэтому многие инженеры вынуждены исправлять "плохие" и "уродливые" затраты, чтобы предотвратить дрейф до того, как он станет проблемой. Например:

  • Изменение ресурса может привести к простою приложения (например, уменьшение размера базы данных, после чего она должна буть пересоздана) или огромному счету (по какой-то причине в нашем кластере GKE было выделено 1500 узлов, а не 150).
  • Конфигурации, оптимизированные с точки зрения безопасности, становятся менее строгими, и происходит утечка данных или взлом.
  • Возможно, взлом не произойдет, но при аудите вашей организации для сертификации соответствия критическим бизнес-требованиям вы проваливаете аудит из-за уязвимой инфраструктуры.

Самое сложное во всей этой ситуации то, что все вышеперечисленное может произойти, когда ресурсы облака создаются вне контроля Terraform. Обнаружить эти ресурсы гораздо сложнее (они не отобразятся в вашем terraform plan), и требуется гораздо больше усилий, чтобы выявить и затем добавить эти ресурсы в управление Terraform.

Ссылка на оригинал статьи

Read more

Самохостниг (часть 10) - AudiobookShelf

Самохостниг (часть 10) - AudiobookShelf

AudiobookShelf - это бесплатный сервер аудиокниг и подкастов с открытым исходным кодом. Он позволяет вам организовать вашу коллекцию аудиокниг и подкастов, следить за прогрессом прослушивания и синхронизировать его между устройствами. В этой статье мы рассмотрим, как установить AudiobookShelf с помощью Docker Compose и настроить его работу через Traefik. Предварительные требования

Обзор reMarkable 2

Обзор reMarkable 2

В мире технологий появляются устройства, которые не только выполняют свои функции, но и становятся символами статуса и стиля. Одним из таких устройств является reMarkable 2 — уникальный гибрид электронной читалки и записной книжки, который произвёл фурор на Западе и теперь доступен в России. Давайте разберёмся, что делает этот девайс таким особенным

Plex повышает цены: что изменится и стоит ли спешить с покупкой?

Plex повышает цены: что изменится и стоит ли спешить с покупкой?

С 29 апреля 2025 года Plex значительно увеличит стоимость подписок и изменит условия бесплатного использования. Рассказываем, кому выгодно купить лицензию сейчас, а кому — лучше перейти на альтернативы. Что случилось? Plex, популярный медиасервер и каталогизатор контента, объявил о повышении цен на все виды подписки: * Месячная — с $4.99 до $6.99

Самохостинг (часть 9) - Arr stack + медиатека

Самохостинг (часть 9) - Arr stack + медиатека

В этой статье я расскажу, как настроить полноценную систему автоматического скачивания и организации медиаконтента с помощью Sonarr (для сериалов), Radarr (для фильмов), Lidarr (для музыки), Jackett (для поиска по трекерам) и qBittorrent (для загрузки торрентов). Эта экосистема интегрируется с Plex, о котором у нас уже есть отдельная статья. Что мы