Читаем Terraform: инфраструктура на уровне кода полностью

Преимущество этого подхода в том, что образы Docker собираются довольно быстро, поэтому их можно запускать и тестировать на локальном компьютере. Вы также можете использовать богатые возможности Kubernetes, включая различные стратегии развертывания, автовосстановление, автомасштабирование и т. д. Недостатки связаны с повышением сложности — как с точки зрения инфраструктуры (развертывание кластеров Kubernetes является сложным и дорогим, хотя большинство основных облачных провайдеров теперь предоставляют управляемые сервисы Kubernetes, на которые можно возложить часть этой работы), так и в смысле дополнительных слоев абстракции (Kubernetes, Docker, Packer), которые необходимо изучать, обслуживать и отлаживать.


Резюме

Ниже показана сводная таблица самых популярных средств IaC (табл. 1.4). Заметьте, что здесь приводятся стандартные и самые распространенные способы их применения. Как уже упоминалось ранее, данные инструменты достаточно гибкие, чтобы их можно было применять и в других конфигурациях (например, Chef можно запускать без центрального сервера, а Salt поддерживает неизменяемую инфраструктуру).


Таблица 1.4. Сравнение наиболее распространенных способов использования самых популярных средств IaC

Инструмент

Код

Об­ла­ка

Тип

Инфра­структура

Язык

Агент

Вед. cер­вер

Сообщество

Зрелость

Chef

Откр.

Все

Упр. конф.

Изменя­емая

Проце­дур­ный

Есть

Есть

Большое

Высокая

Puppet

Откр.

Все

Упр. конф.

Изменя­емая

Декларативный

Есть

Есть

Большое

Высокая

Ansible

Откр.

Все

Упр. конф.

Изменя­емая

Проце­дур­ный

Нет

Нет

Огромное

Средняя

SaltStack

Откр.

Все

Упр. конф.

Изменя­емая

Декларативный

Есть

Есть

Большое

Средняя

CloudFor­mation

Закр.

AWS

Иниц. рес.

Неизменяемая

Декларативный

Нет

Нет

Маленькое

Средняя

Heat

Откр.

Все

Иниц. рес.

Неизменяемая

Декларативный

Нет

Нет

Маленькое

Низкая

Terraform

Откр.

Все

Иниц. рес.

Неизменяемая

Декларативный

Нет

Нет

Огромное

Низкая

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

Подходит ли он под ваши критерии? Если да, то переходите к главе 2, в которой вы научитесь его использовать.

3 Источник: Kim G., Humble J., Debois P., WillisJ. TheDevOpsHandbook: HowtoCreateWorld-ClassAgility, Reliability & SecurityinTechnologyOrganizations. — ITRevolutionPress, 2016.

4 Идемпотентность — свойство объекта или операции при повторном применении операции к объекту давать тот же результат, что и при первом.

5 В современных операционных системах код выполняется в одном из двух «пространств»: в пространстве ядра и пространстве пользователя. Код, который работает в пространстве ядра, имеет прямой и неограниченный доступ ко всему оборудованию. На него не распространяются ограничения безопасности: вы можете выполнять любые процессорные инструкции, обращаться к любому участку жесткого диска, записывать в любой адрес памяти. При этом сбой в пространстве ядра обычно приводит к сбою всего компьютера. В связи с этим оно обычно отводится для самых низкоуровневых и доверенных функций ОС (которые называют ядром). Код в пользовательском пространстве не имеет непосредственного доступа к аппаратному обеспечению и вместо этого должен использовать API, предоставляемые ядром ОС. Эти интерфейсы могут накладывать ограничения безопасности (скажем, права доступа) и локализовать сбои в пользовательских приложениях, поэтому весь прикладной код работает в пользовательском пространстве.

6 Той изоляции, которую предоставляют контейнеры, как правило, достаточно для выполнения собственного кода. Но если нужно выполнять сторонний код (например, если вы хотите создать свое публичное облако), который может намеренно предпринять вредоносные действия, вам пригодятся повышенные гарантии изоляции ВМ.

7 В качестве альтернативы bash для настройки образов в Packer можно использовать средства управления конфигурацией, такие как Ansible и Chef.

8 В качестве примера можно взять библиотеку IaC от компании Gruntwork по адресу bit.ly/2H3Y7yT.

9 Docker, Packer и Kubernetes не участвуют в сравнении, так как их можно использовать в сочетании с любыми средствами управления конфигурацией или инициализации ресурсов.

10 На сегодня различие между управлением конфигурацией и инициализацией ресурсов еще менее очевидно, поскольку ряд популярных средств, входящих в первую категорию, таких как Chef Provisioning (https://github.com/chef-boneyard/chef-provisioning) и Puppet AWS Module (bit.ly/2YIQIuN), постепенно улучшил поддержку инициализации ресурсов.

Перейти на страницу:

Все книги серии Бестселлеры O'Reilly

Искусство управления IT-проектами
Искусство управления IT-проектами

В отличие от множества трудов, посвященных руководству проектами и командами, в этой книге не проповедуются никакие новые учения и не превозносятся великие теории. Скотт Беркун считает залогом успеха практику и разнообразие подходов. В книге описываются основные сложности и проблемные ситуации, возникающие в работе менеджера проекта, даны рекомендации по выходу из них.Издание предназначено не только для лидеров команд и менеджеров высшего звена, но и для программистов, тестеров и других исполнителей конкретных проектных заданий. Также оно будет полезно студентам, изучающим бизнес-менеджмент, проектирование изделий или программную инженерию.Текст нового издания значительно переработан автором с целью добиться большей ясности, кроме того, книга дополнена новым приложением и более чем 120 практическими упражнениями.

Скотт Беркун

Деловая литература
iOS. Приемы программирования
iOS. Приемы программирования

Книга, которую вы держите в руках, представляет собой новый, полностью переписанный сборник приемов программирования по работе с iOS. Он поможет вам справиться с наболевшими проблемами, с которыми приходится сталкиваться при разработке приложений для iPhone, iPad и iPod Touch. Вы быстро освоите всю информацию, необходимую для начала работы с iOS 7 SDK, в частности познакомитесь с решениями для добавления в ваши приложения реалистичной физики или движений — в этом вам помогут API UIKit Dynamics.Вы изучите новые многочисленные способы хранения и защиты данных, отправки и получения уведомлений, улучшения и анимации графики, управления файлами и каталогами, а также рассмотрите многие другие темы. При описании каждого приема программирования приводятся образцы кода, которые вы можете смело использовать.

Вандад Нахавандипур

Программирование, программы, базы данных / Программирование / Книги по IT

Похожие книги

Старший брат следит за тобой. Как защитить себя в цифровом мире
Старший брат следит за тобой. Как защитить себя в цифровом мире

В эпоху тотальной цифровизации сложно представить свою жизнь без интернета и умных устройств. Но даже люди, осторожно ведущие себя в реальном мире, часто недостаточно внимательно относятся к своей цифровой безопасности. Между тем с последствиями такой беспечности можно столкнуться в любой момент: злоумышленник может перехватить управление автомобилем, а телевизор – записывать разговоры зрителей, с помощью игрушек преступники могут похищать детей, а к видеокамерам можно подключиться и шпионить за владельцами. Существуют и государственные проекты наподобие «Умного города», подразумевающие повсеместное внедрение видеокамер и технологий распознавания лиц.Все это не значит, что нужно стремиться к цифровому затворничеству и панически избегать гаджетов, но необходимо изучить и соблюдать элементарные правила безопасности. Михаил Райтман в своей книге рассказывает, как максимально снизить вероятность утечки персональных данных, осложнив задачу потенциальным злоумышленникам.

Михаил Анатольевич Райтман

Зарубежная компьютерная, околокомпьютерная литература
Восстановление данных на 100%
Восстановление данных на 100%

В книге изложены методы восстановления данных с различных носителей информации – жестких дисков, массивов RAID, CD, DVD, карт флэш-памяти, карт фотоаппаратов и мобильных телефонов. Ремонт поврежденного оборудования рассматривается в издании только как один из аспектов всего процесса извлечения данных. Основная тема – извлечение данных, поврежденных из-за физических или логических нарушений в работе компьютерной системы либо неверных действий пользователя. В книге рассматривается восстановление случайно удаленных файлов, извлечение ценной информации с поломанных жестких дисков; описываются программы и методика восстановления данных с поврежденных массивов RAID, что критически важно для работы корпоративных компьютерных систем.Книга не требует специальной подготовки читателя: простые пошаговые процедуры восстановления данных предваряются описанием принципов их хранения на различных носителях.

Петр Андреевич Ташков

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT