Как стать автором
Обновить

Комментарии 10

Для тех, кто не знает, что такое Terraform было бы неплохо небольшое введение в статье, например, такое:

Terraform: новый подход к Infrastructure as code
habr.com/en/company/piter/blog/351878

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

Terraform и инфраструктура на уровне кода

Terraform – это инструмент от компании Hashicorp, помогающий декларативно управлять инфраструктрой. В данном случае не приходится вручную создавать инстансы, сети и т.д. в консоли вашего облачного провайдера; достаточно написать конфигурацию, в которой будет изложено, как вы видите вашу будущую инфраструктуру. Такая конфигурация создается в человеко-читаемом текстовом формате. Если вы хотите изменить вашу инфраструктуру, то редактируете конфигурацию и запускаете terraform apply. Terraform направит вызовы API к вашему облачному провайдеру, чтобы привести инфраструктуру в соответствие с конфигурацией, указанной в этом файле.
И фразу про «книгу Евгения Брикмана» тоже неплохо было бы в начале разместить. Повествование начинается так «с места в карьер» и непонятно то ли это часть серии статей или что.

Вначале все выглядит красиво, на уровне Hello world. Далее идет усложнение, декларативность языка больше мешает, чем помогает.


Знакомые выкинули все это и учправляют через API из нормального скриптового языка

и управляют через API из нормального скриптового языка
а что есть нормальный скриптовый язык?
У них это… ммм… вы наверное удивитесь… PowerShell.
resource "aws_lb" "example" {
   name                    = var.cluster_name
   load_balancer_type = "application"
   subnets = data.aws_subnet_ids.default.ids
   security_groups      = [aws_security_group.alb.id]
}

vs

resource "aws_lb" "example" {
   name               = var.cluster_name
   subnets            = data.aws_subnet_ids.default.ids
   security_groups    = [aws_security_group.alb.id]
   load_balancer_type = "application"
}

как по мне, то второй способ записи намного легче для восприятия
 Кстати, кому не нравится декларативщина, придумали уже Pulumi.

Pulumi тоже декларативный, но в нем можно писать процедурный код.

А state они как администрируют?

Тоже интересно. Возможно, они сначала опрашивают текущую инфраструктуру? По идее это самый лучший путь (но и самый сложный). Ну или просто права у всех отобрали, чтоб руками некому было зайти и сломать :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий