Что это простыми словами

Terraform — это программа, которая создаёт и настраивает серверы и облачную инфраструктуру по текстовому описанию.

Аналогия: представьте, что вы строите офис. Обычно нужно лично обзванивать подрядчиков, заказывать мебель, подключать интернет — каждый шаг вручную. Terraform работает как прораб с подробным чертежом: вы описываете в файле, каким должен быть офис, а он сам договаривается с подрядчиками и собирает всё по чертежу. Захотели второй такой же офис — просто запустили тот же файл снова.

В мире IT «офис» — это серверы, базы данных, сети в облаке. Terraform позволяет описать их в файле и разворачивать одной командой, а не кликать вручную в интерфейсе облачного провайдера.

Официальное определение

Теперь, когда суть понятна, вот как Terraform описывают в вакансиях и документации. Эту формулировку вы будете встречать в требованиях к DevOps- и SRE-инженерам.

«Terraform — open-source инструмент категории IaC (Infrastructure as Code) от HashiCorp для декларативного описания, провижининга и управления облачной и on-premise инфраструктурой через провайдеры».

Разберём по словам. «Open-source» — бесплатная программа с открытым кодом. «IaC» (Infrastructure as Code, инфраструктура как код) — подход, при котором серверы и сети описываются в текстовых файлах, как рецепт, а не настраиваются вручную. «Декларативный» — вы пишете не «как сделать», а «что должно быть в итоге», а Terraform сам разбирается с шагами. «Провижининг» — процесс создания и первоначальной настройки ресурсов. «Провайдеры» — это плагины, которые позволяют Terraform общаться с конкретными облаками: AWS, Google Cloud, Azure и другими. «On-premise» — оборудование, которое стоит в собственном дата-центре компании, а не арендуется в облаке.

Какую задачу решает

Без Terraform инженер заходит в личный кабинет облака, вручную нажимает кнопки: создать сервер, выбрать мощность, подключить сеть, настроить доступы. Если нужно повторить это для тестового, а потом боевого окружения — всё снова руками. Если что-то сломалось и надо понять, какая настройка изменилась — непонятно.

Terraform решает три проблемы сразу:

Кто им пользуется

Terraform не привязан к языку программирования — это отдельный инструмент для управления инфраструктурой. Им пользуются несколько ролей:

Если в вакансии DevOps или SRE стоит Terraform — это ожидаемо и стандартно. Если Terraform встречается в вакансии разработчика — уточните у нанимающего менеджера, насколько глубоко нужны эти знания.

Аналоги / чем заменяется

Задачу управления инфраструктурой через код решают и другие инструменты:

Переход между Terraform и OpenTofu — почти бесшовный, разница минимальна. Переход на Pulumi или CloudFormation потребует переобучения, но концептуальное понимание IaC переносится.

Что не путать

Насколько это важно при отборе

Короткий ответ: для DevOps- и SRE-инженера Terraform — стандартное требование, а не бонус.

Когда это жёсткое требование: если компания уже использует Terraform и инфраструктура описана в нём — кандидат без опыта IaC не сможет работать с первого дня. В таких вакансиях Terraform стоит наравне с требованием знать Linux или облачного провайдера. Отсутствие опыта — весомый сигнал, стоит уточнить у нанимающего менеджера.

Когда требование можно смягчить: если кандидат уверенно работал с OpenTofu или Pulumi и понимает принципы IaC — он освоит Terraform быстро, за одну-две недели. Концепция одна, меняется только синтаксис. Опыт с CloudFormation переносится чуть сложнее, но инженер с таким бэкграундом в целом понимает, о чём идёт речь.

Главный сигнал при отборе DevOps — понимание принципов IaC в целом. Кандидат, который умеет думать «инфраструктурой как кодом», адаптируется к конкретному инструменту. Кандидат, который только кликал в консоли облака, — нет.

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