Яких питань про 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.

Як проходять питання за сценаріями?

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

Інші повторювані сценарії: збій apply посеред виконання та вигляд стану після цього; ресурси, створені до появи Terraform, і використання terraform import для передавання їх під його керування; команда з кількох інженерів і структура репозиторіїв, бекендів та CI, за якої плани запускаються для запитів на злиття, а apply виконується один раз; секрети у змінних і належне джерело цих секретів; оновлення провайдера, що змінює поведінку ресурсів. У кожному випадку назвіть обмеження, виберіть механізм і поясніть його ціну.

На ці питання легше добре відповідати, якщо ви вже проговорювали відповіді вголос. Режим пробної співбесіди пропонує сценарні питання з додатковими уточненнями, а інші добірки за посадами та інструментами зібрано в розділі питань для співбесід за посадою і темою.

Чи допоможе AI-асистент на співбесіді з Terraform?

Під час розмовних етапів — так, але варто чітко зазначити обмеження. Нативний застосунок SubcueAI для комп’ютерів із macOS і Windows захоплює системний звук і звук мікрофона та показує короткі підказки в локальному накладеному вікні. Тож коли інтерв’юер питає, від чого захищає блокування стану, механізм буде перед очима, поки ви його пояснюєте. Бічна панель розширення для браузера робить те саме для дзвінків у вкладці Chrome або Edge, захоплюючи лише звук вкладки із зустріччю. Жоден бот не приєднується до дзвінка, і нічого не вбудовується в сторінку зустрічі; порядок налаштування наведено на сторінці посібника.

Де він не допоможе: контрольоване оцінювання, запис екрана, корпоративний ноутбук або практичне завдання, під час якого ви пишете HCL під наглядом. Aaron Cao, засновник SubcueAI, описує мету продукту як підказку для пригадування вже відомого, а не його заміну, тому асистент спирається на ваше резюме й ваші власні формулювання. Чесні межі описано в добірці про виявлення.

Часті запитання

У чому різниця між terraform plan і terraform apply?

plan читає конфігурацію, файл стану та реальні ресурси, а потім показує дії, які Terraform виконав би без внесення змін. apply виконує ці дії й оновлює стан. Їх розділення дає змогу переглянути та схвалити план до зміни інфраструктури.

Чому важливі віддалений стан і блокування?

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

Чи підходять робочі простори Terraform для розділення середовищ?

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

Як обробляти дрейф у Terraform?

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

Чи може SubcueAI допомогти під час контрольованого оцінювання знань Terraform?

Ні. Контрольовані й записувані оцінювання не підтримуються. Він призначений для розмовних етапів, де підказує вам те, що ви вже знаєте, поки ви говорите; режим пробної співбесіди слугує для попередньої репетиції.

Схожі запитання

← Докладніше: Питання для співбесід за роллю та темою