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

548

Описание

Terraform является настоящей звездой в мире DevOps. Это технология, позволяющая конфигурировать, запускать и управлять облачной инфраструктурой. «Инфраструктура как код» (IaC) позволяет оптимально использовать виртуализированные платформы таких технологических гигантов, как AWS, Google Cloud, Azure и другие. Евгений Брикман приводит простотые и лаконичные примеры кода, который используется в Terraform для развертывания инфраструктуры и управления ею. Бывалые сисадмины, DevOps-инженеры и разработчики-новички быстро перейдут от основ Terraform к работе с полным стеком, способным поддерживать большие объемы трафика и гарантируют стабильные условия для работы большой команды специалистов.

1 страница из 71
читать на одной стр.
Настроики
A

Фон текста:

  • Текст
  • Текст
  • Текст
  • Текст

Шрифты

  • Аа

    Roboto

  • Аа

    Garamond

  • Аа

    Fira Sans

  • Аа

    Times

  • Аа

    Iowan

  • Аа

    San Francisco

  • Аа

    SF Serif

  • Аа

    New York

  • Аа

    Helvetica Neue

  • Аа

    Arial

  • Аа

    Georgia

  • Аа

    Times New Roman

  • Аа

    Courier

  • Аа

    Courier New

  • Аа

    Menlo

  • Аа

    SF Mono

стр.

Евгений Брикман

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

2-е издание

Научный редактор К. Русецкий

Переводчики О. Сивченко, С. Черников

Литературный редактор В. Байдук

Художник В. Мостипан

Корректоры Е. Павлович, Е. Рафалюк-Бузовская

Евгений Брикман

Terraform: инфраструктура на уровне кода. — СПб.: Питер, 2020.

ISBN 978-5-4461-1590-7

© ООО Издательство "Питер", 2020

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

Посвящается маме, папе, Лайле и Молли

Давным-давно в далеком-предалеком вычислительном центре древнее племя могущественных существ, известных как «сисадмины», вручную развертывало инфраструктуру. Каждый сервер, база данных (БД), балансировщик нагрузки и фрагмент сетевой конфигурации создавались и управлялись вручную. Это было мрачное и ужасное время: страх простоя, случайной ошибки в конфигурации, медленных и хрупких развертываний и того, что может произойти, если сисадмины перейдут на темную сторону (то есть возьмут отпуск). Но спешу вас обрадовать — благодаря движению DevOps у нас теперь есть замечательный инструмент: Terraform.

Terraform (https://www.terraform.io/) — это инструмент с открытым исходным кодом от компании HashiCorp. Он позволяет описывать инфраструктуру в виде кода на простом декларативном языке и развертывать ее/управлять ею в различных публичных облачных сервисах (скажем, Amazon Web Services, Microsoft Azure, Google Cloud Platform, DigitalOcean), а также частных облаках и платформах виртуализации (OpenStack, VMWare и др.) всего несколькими командами. Например, вместо того чтобы вручную щелкать кнопкой мыши на веб-странице или вводить десятки команд в консоль, вы можете воспользоваться следующим кодом и сконфигурировать сервер в AWS:

provider "aws" {

  region = "us-east-2"

resource "aws_instance" "example" {

  ami           = "ami-0c55b159cbfafe1f0"

  instance_type = "t2.micro"

Чтобы его развернуть, введите следующее:

$ terraform init

$ terraform apply

Благодаря своей простоте и мощи Terraform стал ключевым игроком в мире DevOps. Он позволяет заменить громоздкие, хрупкие и неавтоматизированные средства управления инфраструктурой на надежный автоматизированный инструмент, поверх которого вы можете объединить все остальные элементы DevOps (автоматическое тестирование, непрерывную интеграцию и непрерывное развертывание) и сопутствующий инструментарий (например, Docker, Chef, Puppet).

Прочитайте эту книгу, и вы сможете сразу приступить к работе с Terraform.

Начав с простейшего примера Hello, World, вы научитесь работать с полным стеком технологий (кластером серверов, балансировщиком нагрузки, базой данных), рассчитанным на огромные объемы трафика и крупные команды разработчиков, уже после прочтения лишь нескольких глав. Это практическое руководство не только научит принципам DevOps и инфраструктуры как кода (infrastructure as code, или IaC), но и проведет вас через десятки примеров кода, которые можно попробовать выполнить дома. Поэтому держите компьютер под рукой.

Дочитав книгу, вы будете готовы к работе с Terraform в реальных условиях.

Целевая аудитория книги

Книга предназначена для всех, кто отвечает за уже написанный код. Это относится к сисадминам, специалистам по эксплуатации, релиз-, SR-, DevOps-инженерам, разработчикам инфраструктуры, разработчикам полного цикла, руководителям инженерной группы и техническим директорам. Какой бы ни была ваша должность, если вы занимаетесь инфраструктурой, развертываете код, конфигурируете серверы, масштабируете кластеры, выполняете резервное копирование данных, мониторите приложения и отвечаете на вызовы в три часа ночи, эта книга для вас.

В совокупности эти обязанности обычно называют операционной деятельностью (или системным администрированием). Раньше часто встречались разработчики, которые умели писать код, но не разбирались в системном администрировании; точно так же нередко попадались сисадмины без умения писать код. Когда-то такое разделение было приемлемым, но в современном мире, который уже нельзя представить без облачных вычислений и движения DevOps, практически любому разработчику необходимы навыки администрирования, а любой сисадмин должен уметь программировать.

Для чтения этой книги не обязательно быть специалистом в той или иной области — поверхностного знакомства с языками программирования, командной ­строкой и серверным программным обеспечением (сайтами) должно хватить. Всему остальному можно научиться в процессе. Таким образом, по окончании чтения вы будете уверенно разбираться в одном из важнейших аспектов современной разработки и системного администрирования — в управлении инфраструктурой как кодом.

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

• Зачем вообще использовать IaC?

• Какая разница между управлением конфигурацией, оркестрацией, инициализацией ресурсов и шаблонизацией серверов?

• Когда следует использовать Terraform, Chef, Ansible, Puppet, Salt, CloudFor­mation, Docker, Packer или Kubernetes?

• Как работает система Terraform и как с ее помощью управлять инфраструктурой?

• Как создавать модули Terraform, подходящие для повторного использования?

• Как писать код для Terraform, который будет достаточно надежным для практического применения?

• Как тестировать свой код для Terraform?

• Как внедрить Terraform в свой процесс автоматического развертывания?

• Как лучше всего использовать Terraform в командной работе?

Вам понадобятся лишь компьютер (Terraform поддерживает большинство операционных систем), интернет-соединение и желание учиться.

Почему я написал эту книгу

Terraform — мощный инструмент, совместимый со всеми популярными облачными провайдерами. Он основан на простом языке, позволяет повторно использовать код, выполнять тестирование и управлять версиями. Это открытый проект с дружелюбным и активным сообществом. Но, надо признать, он еще не до конца сформирован.

Terraform — относительно новая технология. Несмотря на ее популярность, по состоянию на январь 2020 года все еще не вышла версия 1.0.0 (стабильная версия — 0.12.21. — Примеч. ред.). По-прежнему сложно найти книги и статьи или встретить специалистов, которые бы помогли вам овладеть этим инструментом. Официальная документация Terraform хорошо подходит для знакомства с базовым синтаксисом и возможностями, но в ней мало информации об идиоматических шаблонах, рекомендуемых методиках, тестировании, повторном использовании кода и рабочих процессах в команде. Это как пытаться овладеть французским языком с помощью одного лишь словаря, игнорируя грамматику и идиомы.

Я написал эту книгу, чтобы помочь разработчикам изучить Terraform. Я пользуюсь этим инструментом четыре года из пяти с момента его создания — в основном в моей компании Gruntwork (http://www.gruntwork.io). Там он сыграл ключевую роль в создании библиотеки более чем из 300 000 строк проверенного временем инфраструктурного кода, готового к повторному использованию и уже применяемого сотнями компаний в промышленных условиях. Написание и поддержка такого большого объема инфраструктурного кода на таком длинном отрезке времени в таком огромном количестве разных компаний и сценариев применения позволили нам извлечь много непростых уроков. Я хочу поделиться ими с вами, чтобы вы могли сократить этот долгий процесс и овладеть Terraform в считаные дни.

Конечно, одним чтением этого не добьешься. Чтобы начать свободно разговаривать на французском, придется потратить какое-то время на общение с носителями языка, просмотр французских телепередач и прослушивание французской музыки. Чтобы овладеть Terraform, нужно написать для этой системы настоящий код, использовать его в реальном ПО и развернуть это ПО на настоящих серверах. Поэтому приготовьтесь к чтению, написанию и выполнению большого количества кода.

Структура издания

В книге освещается следующий список тем.

Глава 1 «Почему Terraform». Как DevOps меняет наш подход к выполнению ПО; краткий обзор инструментов IaC, включая управление конфигурацией, шаблонизацию серверов, оркестрацию и инициализацию ресурсов; преимущества IaC; сравнение Terraform, Chef, Puppet, Ansible, SaltStack, OpenStack Heat и CloudFormation; как сочетать такие инструменты, как Terraform, Packer, Docker, Ansible и Kubernetes.

• Глава 2 «Приступаем к работе с Terraform». Установка Terraform; краткий обзор синтаксиса Terraform; обзор утилиты командной строки Terraform; как развернуть один сервер; как развернуть веб-сервер; как развернуть кластер веб-серверов; как развернуть балансировщик нагрузки; как очистить созданные вами ресурсы.

Комментарии к книге «Terraform: инфраструктура на уровне кода», Евгений Брикман

Всего 0 комментариев

Комментариев к этой книге пока нет, будьте первым!

РЕКОМЕНДУЕМ К ПРОЧТЕНИЮ

Популярные и начинающие авторы, крупнейшие и нишевые издательства