Бесплатная библиотека
Читайте книгу на сайте или телефоне
READ-E-BOOK » Прочая компьютерная литература » Terraform: инфраструктура на уровне кода [Terraform: Up & Running: Writing Infrastructure as Code 2nd Edition]
Terraform: инфраструктура на уровне кода [Terraform: Up & Running: Writing Infrastructure as Code 2nd Edition] - Читать Любимую Русскую Полную Книгу 👉 Read-E-Book.com

Terraform: инфраструктура на уровне кода [Terraform: Up & Running: Writing Infrastructure as Code 2nd Edition]

Электронная книга - «Terraform: инфраструктура на уровне кода [Terraform: Up & Running: Writing Infrastructure as Code 2nd Edition]». Краткое содержание книги:

Terraform является настоящей звездой в мире DevOps. Это технология, позволяющая конфигурировать, запускать и управлять облачной инфраструктурой. «Инфраструктура как код» (IaC) позволяет оптимально использовать виртуализированные платформы таких технологических гигантов, как AWS, Google Cloud, Azure и другие. Евгений Брикман приводит простотые и лаконичные примеры кода, который используется в Terraform для развертывания инфраструктуры и управления ею. Бывалые сисадмины, DevOps-инженеры и разработчики-новички быстро перейдут от основ Terraform к работе с полным стеком, способным поддерживать большие объемы трафика и гарантируют стабильные условия для работы большой команды специалистов.
1 ... 9 10 11 12 13 14 15 16 17 ... 20
Перейти на страницу:

Теперь вы понимаете, почему IaC важна. Следующий вопрос: является ли Terraform лучшим средством IaC именно для вас? Чтобы на это ответить, мы кратко рассмотрим принцип работы Terraform, а затем сравним его с другими популярными продуктами в этой области, такими как Chef, Puppet и Ansible.

Как работает Terraform

Вот обобщенная и немного упрощенная картина того, как работает Terraform. Terraform — это инструмент с открытым исходным кодом от компании HashiCorp, написанный на языке программирования Go. Код на Go компилируется в единый двоичный файл (если быть точным, по одному файлу для каждой поддерживаемой операционной системы) с предсказуемым названием terraform.

Этот файл позволяет развернуть инфраструктуру прямо с вашего ноутбука или сборочного сервера (либо любого другого компьютера), и для всего этого не требуется никакой дополнительной инфраструктуры. Все благодаря тому, что внутри исполняемый файл terraform делает от вашего имени API-вызовы к одному/нескольким провайдерам, таким как AWS, Azure, Google Cloud, DigitalOcean, OpenStack и т. д. Это означает, что Terraform использует инфраструктуру, которую эти провайдеры предоставляют для своих API-серверов, а также их механизмы аутентификации, которые вы уже применяете (например, ваши API-ключи для AWS).

Но откуда Terraform знает, какие API-вызовы нужно делать? Для этого вам необходимо создать текстовые файлы с конфигурацией, в которых описывается, какую инфраструктуру вы хотите создать. В концепции «инфраструктура как код» эти файлы играют роль кода. Вот пример конфигурации Terraform:

resource "aws_instance" "example" {

  ami           = "ami-0c55b159cbfafe1f0"

  instance_type = "t2.micro"

}

resource "google_dns_record_set" "a" {

  name         = "demo.google-example.com"

  managed_zone = "example-zone"

  type         = "A"

  ttl          = 300

  rrdatas      = [aws_instance.example.public_ip]

}

Даже если вы никогда раньше не видели код Terraform, не должно быть особых проблем с тем, чтобы его понять. Этот фрагмент заставляет Terraform выполнить API-вызовы к двум провайдерам: к AWS, чтобы развернуть там сервер, и к Google Cloud, чтобы создать DNS-запись, которая указывает на IP-адрес сервера из AWS. Terraform позволяет использовать единый простой синтаксис (который вы изучите в главе 2) для развертывания взаимосвязанных ресурсов в нескольких разных облаках.

Вы можете описать всю свою инфраструктуру (серверы, базы данных, балансировщики нагрузки, топологию сети и т. д.) в конфигурационных файлах Terraform и сохранить их в системе управления версиями. Затем эту инфраструктуру можно будет развернуть с помощью определенных команд, таких как terraformapply. Утилита terraform проанализирует ваш код, преобразует его в последовательность API-вызовов к облачным провайдерам, которые в нем заданы, и выполнит эти API-вызовы от вашего имени максимально эффективным образом (рис. 1.6).

Рис. 1.6. Terraform — это утилита, которая преобразует содержимое ваших конфигурационных файлов в API-вызовы к облачным провайдерам

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

Прозрачная переносимость между облачными провайдерами

Поскольку Terraform поддерживает множество разных облачных провайдеров, часто возникает вопрос: обеспечивает ли этот инструмент прозрачную переносимость между ними? Например, если вы использовали Terraform для описания кучи серверов, баз данных, балансировщиков нагрузки и другой инфраструктуры в AWS, можете ли вы несколькими щелчками кнопкой мыши развернуть все это в другом облаке, таком как Azure или Google Cloud?

На практике этот вопрос оказывается не совсем корректным. Вы не можете развернуть «идентичную инфраструктуру» в разных облаках, поскольку инфраструктура, предоставляемая облачными провайдерами, разнится! Серверы, балансировщики нагрузки и базы данных, предлагаемые в AWS, Azure и Google Cloud, сильно различаются с точки зрения возможностей, конфигурации, управления, безопасности, масштабируемости, доступности, наблюдаемости и т. д. Не существует простого и прозрачного способа преодолеть эти различия, особенно учитывая то, что некоторые функции одного облачного провайдера часто отсутствуют во всех остальных.

1 ... 9 10 11 12 13 14 15 16 17 ... 20
Перейти на страницу:
0
Сюжет
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
0
Атмосфера
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
0
Главный герой
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
0
Общее впечатление
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
Итоговая оценка: 0.0 из 10 (голосов: 0 / История оценок)