Есть ли опыт работы с Terraform и Ansible?
Что проверяют
От Java-разработчика не ждут работы DevOps, но хотят понять, сможете ли вы сами поправить инфраструктуру своего сервиса и не сломать общую. Следом спрашивают про состояние Terraform, разницу между инструментами или просят описать, как ваш сервис попадал на сервер.
Как отвечать
Сначала покажите, что различаете роли:
- Terraform: декларативно создаёт ресурсы через API провайдера: сети, виртуалки, управляемые базы, топики, бакеты. Цикл
terraform plan, затемterraform apply. Состояние хранится вterraform.tfstate, в команде оно лежит в удалённом бэкенде с блокировкой, чтобы дваapplyне шли одновременно; - Ansible: настраивает то, что уже создано. Работает без агентов по SSH, шаги описаны в playbook и ролях, задачи идемпотентны, и повторный прогон ничего не меняет. Секреты шифруют
ansible-vault, пробный прогон делают с--check --diff.
Затем привяжите к Java. Типичный вклад бэкендера: модуль Terraform для базы, топика Kafka или бакета своего сервиса; роль Ansible, которая ставит JDK, кладёт jar, пишет systemd-юнит с JAVA_OPTS и -Xmx и перезапускает сервис. Если сервисы живут в Kubernetes, Ansible часто уже не нужен: образ собирается в CI, выкладка идёт через Helm или Argo CD, а Terraform остаётся для облачных ресурсов.
Полезный контекст: в 2023 году HashiCorp перевела Terraform на лицензию BSL, и появился открытый форк OpenTofu с совместимым синтаксисом.
Опыт подавайте своими примерами и цифрами: сколько окружений, что писали сами, а что только запускали. Если опыта нет, так и скажите: «Сам не писал, но читал модули нашей команды, понимаю plan и state, с Docker Compose и Helm работал». Это лучше пересказа туториала.
Где спотыкаются
Не знают про state и правят ресурсы руками в консоли облака. Следующий plan показывает дрейф, и никто не понимает, откуда он взялся.
Путают инструменты: создают облачную инфраструктуру через Ansible или настраивают софт внутри ВМ провижинерами Terraform.
Приводят выдуманные проценты вроде «ускорили деплой на 30%», которые рассыпаются на первом уточнении.