Рис. 1.8. Terraform использует архитектуру, не требующую наличия центральных серверов и агентов. Вам достаточно лишь запустить клиент Terraform, а тот уже позаботится обо всем остальном, применяя API облачных провайдеров, таких как AWS
Размер сообщества
Вместе с технологией вы выбираете и сообщество. Во многих случаях впечатления от использования проекта могут в большей степени зависеть от экосистемы вокруг него, чем от качества самой технологии. Сообщество определяет то, сколько людей помогают проекту, сколько у него подключаемых модулей и расширений, насколько просто получить помощь в Интернете (например, посредством статей или вопросов на StackOverflow) и проблематично ли нанять того, кто мог бы вам помочь (вроде работника, консультанта или компании технической поддержки).
Сложно провести точное сравнение между разными сообществами, но вы можете заметить некоторые тенденции, используя поисковую систему. В табл. 1.1 сравниваются популярные средства IaC с использованием данных, которые я собрал в мае 2019 года. Здесь учитывается, имеет ли инструмент открытый исходный код, с какими провайдерами он совместим, общее количество участников проекта и звезд в GitHub, сколько фиксаций кода и активных заявок было с середины апреля до середины мая, сколько открытых библиотек доступно для этого инструмента, количество вопросов о нем на StackOverflow и в скольких вакансиях на Indeed.com он упоминается11.
Естественно, это неидеальное сравнение равнозначных показателей. Например, некоторые инструменты имеют больше одного репозитория, а некоторые используют другие методы для отслеживания ошибок и вопросов. Поиск вакансий по таким общеупотребимым словам, как chef или puppet, нельзя считать надежным. В 2017 году код провайдеров Terraform был разделен по отдельным репозиториям, поэтому оценка активности лишь по основному репозиторию будет крайне заниженной (минимум в десять раз).
Таблица 1.1. Сравнение сообществ IaC121314151617181920212223
Инструмент
Код
Облака
Участники
Звезды
Фиксации (30 дней)
Заявки (30 дней)
Библиотеки
StackOverflow
Вакансии
Chef
Откр.
Все
562
5794
435
86
38322
5982
43783
Puppet
Откр.
Все
515
5299
94
3144
61105
3585
42006
Ansible
Откр.
Все
4386
37 161
506
523
20 6777
11 746
8787
SaltStack
Откр.
Все
2237
9901
608
441
3188
1062
1622
CloudFormation
Закр.
AWS
?
?
?
?
3779
3315
3218
Heat
Откр.
Все
361
349
12
60010
011
88
220112
Terraform
Откр.
Все
1261
16 837
173
204
146213
2730
3641
Тем не менее некоторые тенденции очевидны. Во-первых, все средства IaC в этом сравнении имеют открытый исходный код и совместимы со многими облачными провайдерами; исключение составляет проект с закрытым исходным кодом CloudFormation, который работает только с AWS. Во-вторых, в плане популярности лидирует проект Ansible, за которым с небольшим отставанием следуют Salt и Terraform.
Еще одна интересная тенденция — все эти цифры поменялись с момента выхода первого издания. В табл. 1.2 показано относительное изменение каждого показателя по сравнению с той информацией, которую я собрал в сентябре 2016 года.
Таблица 1.2. Как изменились сообщества IaC с сентября 2016 по май 2019 года
Инструмент
Код
Облака
Участники
Звезды
Фиксации (30 дней)
Заявки (30 дней)
Библиотеки
StackOverflow
Вакансии
Chef
Откр.
Все
+18 %
+31 %
+139 %
+48 %
+26 %
+43 %
–22 %
Puppet
Откр.
Все
+19 %
+27 %
+19 %
+42 %
+38 %
+36 %
–19 %
Ansible
Откр.
Все
+195 %
+97 %
+49 %
+66 %
+157 %
+223 %
+125 %
SaltStack
Откр.
Все
+40 %
+44 %
+79 %
+27 %
+33 %
+73 %
+257 %
CloudFormation
Закр.
AWS
?
?
?
?
+57 %
+441 %
+249 %
Heat
Откр.
Все
+28 %
+23 %
–85 %
+1566 %
0
+69 %
+2957 %
Terraform
Откр.
Все
+93 %
+194 %
–61 %
–58 %
+3555 %
+1984 %
+8288 %
Это неидеальные данные, но их достаточно, чтобы заметить четкую тенденцию: Terraform и Ansible испытывают взрывной рост. Увеличение количества участников, звезд, открытых библиотек, вопросов на StackOverflow и вакансий просто зашкаливает24. Сегодня оба инструмента имеют большие и активные сообщества, которые, судя по приведенным выше тенденциям, продолжат расти.
Выбор между зрелостью и новизной
Еще один ключевой фактор при выборе любой технологии — ее зрелость.
В табл. 1.3 приводятся даты выпуска начальной версии каждого инструмента IaC и их версии на данный момент (по состоянию на май 2019 года).
Таблица 1.3. Сравнение инструментов IaC в плане зрелости по состоянию на май 2019 года
Инструмент
Начальный выпуск
Текущая версия
Puppet
2005
6.12.0
Chef
2009
13.1.58
CloudFormation
2011
???
SaltStack
2011
3000
Ansible
2012
2.9.5
Heat
2012
13.0.0
Terraform
2014
0.12.21
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии