Каких вопросов по Terraform ожидать на собеседовании?

Автор: Aaron Cao · Обновлено

Каких вопросов по Terraform ожидать на собеседовании?
Ожидайте вопросы четырёх групп: основной рабочий процесс (init, plan, apply, destroy), состояние (удалённые бэкенды, блокировки, конфиденциальные значения), структура кода (модули, переменные, рабочие пространства, провайдеры) и сценарии — например, дрейф, сбой apply на полпути или импорт ресурсов, созданных вручную. Интервьюеры оценивают обоснование каждого решения.

Ожидайте вопросы четырёх групп: основной рабочий процесс (init, plan, apply, destroy), состояние (удалённые бэкенды, блокировки, конфиденциальные значения), структура кода (модули, переменные, рабочие пространства, провайдеры) и сценарии — например, дрейф, сбой apply на полпути или импорт ресурсов, созданных вручную. Интервьюеры оценивают обоснование каждого решения.

Какие основы Terraform проверяют в первую очередь?

Большинство собеседований по Terraform начинается с рабочего процесса и быстро переходит к тому, что происходит внутри. Будьте готовы без подсказок описать весь жизненный цикл: terraform init загружает провайдеры и настраивает бэкенд; terraform plan сравнивает желаемую конфигурацию с файлом состояния и реальными ресурсами, а затем выводит действия, которые будут выполнены; terraform apply выполняет этот план; terraform destroy удаляет всё, чем управляет конфигурация. Первый дополнительный вопрос почти всегда касается того, почему plan и apply разделены, и ответ заключается в проверке и безопасности: план можно изучить, утвердить и сохранить до внесения любых изменений.

  • Провайдеры. Плагины, взаимодействующие с API, например AWS, Azure, Google Cloud или Kubernetes. Дополнительный вопрос: зачем фиксировать версии провайдеров?
  • Ресурсы и источники данных. Ресурсы — это объекты, которые Terraform создаёт и которыми управляет; источники данных считывают существующие объекты, которыми он не управляет.
  • Переменные, локальные и выходные значения. Входные, вычисляемые и экспортируемые значения. Дополнительный вопрос: как не допустить появления секрета в выводе плана?
  • Граф зависимостей. Terraform определяет порядок операций по ссылкам между ресурсами; depends_on применяется для зависимостей, которые граф не может обнаружить.

Объясняйте, что каждая команда читает и записывает. Кандидаты, которые говорят, что plan ничего не изменяет, а apply изменяет и инфраструктуру, и состояние, уже показывают понимание модели.

К каким вопросам о состоянии и модулях готовиться?

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

  • Где хранится состояние и почему не локально? Удалённый бэкенд, например бакет объектного хранилища, Terraform Cloud или база данных, предоставляет единый источник истины. Следующий вопрос — о блокировке: одновременный запуск apply двумя людьми повреждает состояние, поэтому поддерживающие блокировки бэкенды отклоняют второй запуск.
  • Что находится в файле состояния? Атрибуты ресурсов, включая значения, которые могут считаться конфиденциальными. Укажите, что состояние следует рассматривать как секретные данные, шифровать при хранении и защищать контролем доступа.
  • Модули. Модуль — это многократно используемый набор ресурсов с собственными входными и выходными значениями. Интервьюеры спрашивают, как версионировать модули, как избежать модуля, пытающегося делать всё, и как корневой модуль объединяет дочерние.
  • Рабочие пространства и отдельные конфигурации. Рабочие пространства позволяют одной конфигурации использовать несколько файлов состояния. Ошибочно считать их полноценным способом разделения сред; для производственной среды обычно нужны отдельные конфигурация, бэкенд и учётные данные, а не простое переключение рабочего пространства.
  • Рефакторинг без удаления. После переименования ресурса Terraform попытается удалить и создать его заново. Нужно знать о блоках moved и команде terraform state mv, а также понимать назначение каждого варианта.

Полезное правило для каждого ответа: назовите сбой, который предотвращает эта практика. Блокировка предотвращает повреждение при одновременных изменениях; удалённое состояние предотвращает расхождение данных на ноутбуках; фиксированные версии предотвращают неожиданное обновление во время обычного apply.

Как проходят вопросы по сценариям?

На собеседованиях для старших специалистов определения заменяют практическими ситуациями. Типичный пример: инженеру платформы, претендующему на инфраструктурную должность в финтех-компании, сообщают, что кто-то вручную изменил группу безопасности в облачной консоли, следующий план показывает неожиданные различия, и команда опасается запускать apply. Сильный ответ называет эту ситуацию дрейфом, объясняет, что plan уже обнаружил его при обновлении данных о реальном состоянии, определяет, следует ли сохранить или отменить ручное изменение, а затем либо приводит конфигурацию в соответствие с реальностью, либо запускает apply для восстановления объявленного состояния. Интервьюер оценивает решение, а не знание команды.

Другие распространённые сценарии: сбой apply на полпути и состояние после него; ресурсы, созданные до внедрения Terraform, и их перевод под управление с помощью terraform import; команда из нескольких инженеров и организация репозиториев, бэкендов и CI, при которой планы запускаются для запросов на слияние, а apply выполняется однократно; секреты в переменных и более подходящие источники для них; обновление провайдера, изменяющее поведение ресурсов. В каждом случае назовите ограничение, выберите механизм и укажите его цену.

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

Может ли ИИ-помощник помочь на собеседовании по Terraform?

Да, в разговорной части, но с ограничениями, о которых стоит сказать прямо. Нативное настольное приложение SubcueAI для macOS и Windows записывает системный звук и ваш микрофон и показывает краткие подсказки в локальном оверлее. Поэтому, когда интервьюер спрашивает, от чего защищает блокировка состояния, нужный механизм будет перед глазами, пока вы его объясняете. Боковая панель расширения для браузера делает то же самое во время звонков во вкладках Chrome или Edge, записывая звук только со вкладки встречи. К звонку не подключается бот, и на страницу встречи ничего не внедряется; порядок настройки приведён на странице руководства.

Когда это не поможет: контролируемое тестирование, запись экрана, корпоративный ноутбук или практическое задание, при котором вы пишете HCL под наблюдением. Aaron Cao, основатель SubcueAI, описывает цель продукта как подсказку для припоминания уже известных вам вещей, а не их замену, поэтому помощник опирается на ваше резюме и привычные вам формулировки. Чёткие границы описаны в разделе об обнаруживаемости.

Частые вопросы

Чем terraform plan отличается от terraform apply?

plan читает конфигурацию, файл состояния и реальные ресурсы, а затем выводит действия, которые Terraform выполнил бы, ничего не изменяя. apply выполняет эти действия и обновляет состояние. Разделение позволяет проверить и утвердить план до изменения инфраструктуры.

Почему важно удалённое состояние с блокировкой?

Удалённое состояние предоставляет всем инженерам и конвейерам единый источник истины, а блокировка не позволяет двум apply выполняться одновременно и повреждать его. Локальные состояния на ноутбуках расходятся, и их нельзя блокировать.

Подходят ли рабочие пространства Terraform для разделения сред?

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

Как устранять дрейф в Terraform?

Запустите план, чтобы увидеть различие между объявленным и реальным состоянием, решите, следует ли сохранить ручное изменение, а затем либо обновите конфигурацию для соответствия, либо запустите apply для восстановления объявленного состояния. Ручное редактирование состояния — крайняя мера.

Может ли SubcueAI помочь во время контролируемого тестирования по Terraform?

Нет. Контролируемые и записываемые тестирования не поддерживаются. Продукт предназначен для разговорных этапов и помогает вам вспоминать материал во время ответа; режим пробного собеседования позволяет подготовиться заранее.

Похожие вопросы

← Подробнее: Вопросы на собеседовании по роли и теме