SlideShare a Scribd company logo
1 of 25
Download to read offline
Сравнение систем
управления конфигурациями
CFEngine3, Puppet, Chef, SaltStack, Ansible
Что такое CM-системы?
Централизованное,
формализованное и
согласованное управление
большими группами устройств
(до сотен и тысяч) для
обеспечения необходимых
процессов в инфраструктуре.
Управление состояниями
инфраструктуры, состоящей из
большого числа компьютеров и
других устройств,
поддерживающее версионность
и переключение между этими
состояниями.
Общая схема работы CM-инструмента
Repository
System Input
Translation agent
Profile Profile Profile Profile
Managed device
(Deployment agent)
Managed device
(Deployment agent)
Managed device
(Deployment agent)
История появления CM-инструментов
1. CFEngine (Mark Burgess),
1993
2. LCFG (Perl), 1994
3. ISConf, PIKT, STAF, 1997-1998
4. CFEngine2 (Convergence to
desired state), 2002
5. BCfg (Python), 2002
6. Puppet, 2005
7. Chef (idempotence, flow
control), 2009
8. CFEngine3 (Theory of
promises), 2009
9. SaltStack (ZeroMQ), 2011
10. Ansible (CM, adhoc,
deployment)
Как мы сравнивали CM-инструменты?
1. Свойства спецификации ввода
1. Язык описаний
2. Доступные механизмы абстракции
3. Поддержка модульности
4. Возможность управления
отношениями между узлами
2. Свойства процесса внедрения
1. Масштабируемость
2. Архитектура внедрения
3. Поддержка платформ
3. Свойства управления спецификациями
1. Удобство
2. Версионность
3. Документация
4. Интеграция с окружением
5. Права доступа
4. Поддержка продукта
1. Доступная документация
2. Коммерческая поддержка
3. Сообщество
4. Зрелость продукта
Какие CM-инструменты мы сравнивали?
1.CFEngine 3.0.4, 3.5.2
2.Puppet 2.7.*
3.Opscode Chef 11.6.0
4.SaltStack 2014.1.0
5.Ansible 1.5
CM-инструментыCM-инструментыCM-инструменты
Свойства языка ввода спецификаций
CM-инструмент Декларативный/
императивный DSL
DSL использует
язык/стандарт
Наличие Web-
интерфейса
СF Engine 3 Декларативный Свой Да, в платной версии
Puppet Декларативный/Импер
ативные элементы
Свой/Ruby Да
Chef Императивный/
Декларативные
элементы
Ruby (в чистом виде) Да, только управление
рецептами/кукбуками
Salt Декларативный/импер
ативные элементы
YAML/Python Да, пока сырая версия
Ansible Декларативный/импер
ативные элементы
YAML Да, только в платной
версии Ansible Tower
Возможные механизмы абстракции DSL
A. Управление требованиями SLA к системе (например: «сконфигурировать достаточно
почтовых серверов, чтобы обеспечить время SMTP-отклика N ms»)
B. Управление требованиями к ролям (классам) инстансов (например: «сконфигурировать N
подходящих машин в качестве почтовых серверов»)
C. Управление требованиями к инстансам, независимо от их конкретной реализации
(например: «сконфигурировать машины X,Y,Z как почтовые серверы»).
D. Управление требованиями к конкретным реализациям инстансов (например:
«Создать/заменить следующие строчки в sendmail.cf на машинах X,Y,Z»)
E. Управление конфигурационными файлами (например: «положить конфигурационный
файл sendmail.cf на сервер X»)
F. Управление двоичными образами конфигураций («залить образ виртуальной машины на
сервер X»)
Возможные механизмы абстракции DSL
СМ-инструмент Возможные уровни абстракции
CFEngine 3 C, D, E
Puppet С, D, E
Chef C, D, E
SaltStack C, D, E
Ansible C, D, E
Механизмы поддержки модульности
A. Статически
описанные
группы (Static)
B. Группы
сформированны
е по запросу
(Query based)
C. Иерархические
группы
(Hierarchical)
СМ-
инструмент
Механизмы
поддержки
модульности
Возможность
создания
модулей 3
сторонами
CFEngine 3 A,B,C Да
Puppet A,B,C Да
Chef A,B Да
SaltStack A,B Да
Ansible A Да
Механизмы моделирования отношений. Детальность.
A. Инстанс-инстанс. Примером такого отношения является приведенный
выше пример зависимости между инстансом сервера DNS и его клиентов.
B. Параметр-параметр. Примером такой зависимости является, например,
CNAME-запись, которая требует обязательного наличия соотвествующей A-
записи в DNS.
C. Параметр-инстанс. Примером такой зависимости может быть зависимость
mail-сервера от наличия MX-записи в DNS.
Механизмы моделирования отношений: Арность, Ограничения
Арность
A. One-to-one
B. One-to-many
C. Many-to-many
Ограничения
A. Ограничение с проверкой условия.
B. «Мягкое» ограничение. Одно из ряда.
СМ-
инструмент
Детальность Арность Ограничения
CFEngine 3 A, B, C A, B, C B
Puppet A, B, C B, C A
Chef A, B, C B, C A
SaltStack A, B, C B, C A
Ansible Не поддержвает Не поддержвает Не поддержвает
Свойства процесса внедрения.
СМ-
инструмент
Масштабируе
мость
Deployment
architecture
Способ
доставки
Platforms
CFEngine 3  10000 узлов Stronglydistributed Pull, Push *BSD, AIX, HP-UX,
Linux, Mac OS X,
Solaris, Windows
Puppet Есть
инсталляции
100k узлов
Centralizedor weakly
distributed
Push, Pull *BSD, AIX, HP-UX,
Linux, Mac OS X,
Solaris, Windows
Chef > 10000, заявлено
до 50000
Centralizedor weakly
distributed
Pull, Push *BSD, Linux, Mac OS
X, Solaris, Windows
SaltStack No info Centralizedor weakly
distributed
Pull *BSD, AIX, HP-UX,
Linux, Mac OS X,
Solaris, Windows
Ansible  100 Centralized Push *BSD, AIX, HP-UX,
Linux, Mac OS X,
Solaris
Управление спецификациями.
СМ-
инструмент
Простота Тесты Мониторинг Версион-
ность
репозиторий
Докумен-
тирование
Окружения Права
CFEngine 3 Сложно Dry run Встроен Внешний Структ. Runtime Path-based
Puppet Средне Dry run,
staging/testing
Интеграция с
внешним
Внешний Свободная и
структ.
Runtime,
database
Path-based
Chef Сложно
DevOps
Dry run,
staging/testing
Интеграция с
внешним
Встроенный и
внешний
Свободная и
структ.
Runtime,
database
Path-based
SaltStack Средне Dry run Встроен с
0.15.0
Внешний Свободная Runtime,
database
Встроенный
ACL
Ansible Просто Dry run Интеграция с
внешним
Внешний Свободная Runtime Нет
Поддержка продукта.
СМ-
инструм
ент
Освоение Внедрение Документация Коммерч.
поддержка
Сообщество Зрелость
CFEngine 3 2 3 Полная документация,
туториал, справка
Есть 3 5
Puppet 3 4 Полная документация,
туториал, справка
Есть 5 4
Chef 2 3 Полная документация,
туториал, справка
Есть 5 5
SaltStack 4 3 Полная документация,
справка
Есть 3 3
Ansible 5 5 Полная документация,
справка
Есть 3 3
Выводы
Все системы достаточно хороши, но приспособлены немного для разного.
1) Если у вас есть ограничения по мощности машин и/или по коннективити – однозначно
CFEngine
2) Если вы Ruby-developer – ваш выбор Chef
3) Если вы питонщик, то SaltStack понравится вам больше.
4) Если вы системный инженер/администратор и только начинаете осваивать СM-
инструменты, попробуйте Ansible
5) Puppet имеет в своих списках внедрения ОГРОМНЫЕ (HUGE!) инфраструктуры.
Мы попробовали все системы в реальных конфигурациях, поэтому можем помочь вам с тем,
как определиться. Да и вообще, написать все скрипты .
С вами был Сергей Житинский, CEO, Git in Sky
sergey@gitinsky.ru
А о конкретных кейсах внедрения расскажет главный инженер Git in Sky
Александр Чистяков
Краткий обзор CM-систем с высоты 10000 метров
§ Что-то большое и сложное, за день не облететь
§ Кажется, в инфраструктуре есть сервер
§ Раз есть сервер — значит, есть и клиенты
§ Знакомо, не правда ли?
§ CM-система — это сервер и клиенты (агенты)
Кстати, как называется конференция?
§ Мы еще ничем не начали управлять,
§ А у нас уже прибавилось точек отказа!
§ Кстати, сколько их теперь?
§ Рассмотрим, например, архитектуру Chef-сервер
§ (Это старая диаграмма, сейчас квадратиков
еще больше)
Мы же обещали кейсы! Не беспокойтесь, сейчас всё будет
§ Сначала я познакомился с Puppet, и это было
довольно давно
§ Сейчас мы тоже работаем с Puppet
§ Puppet — он как Windows, стремится быть
умнее своего пользователя
§ Ключевые слова: RHEL, enterprise
§ В 2014 году нам это уже не мешает (потому что современный
Puppet это такой почти Chef)
Chef: эта музыка может быть вечной
§ Chef — это очень большой и не очень
простой стек технологий
§ К счастью, он очень гибкий
§ К несчастью, из него могут застрелиться
даже его создатели
§ Про Chef-сервер я уже говорил
§ Безусловные плюсы: инфраструктура
тестирования (от юнит-тестов до интеграционных),
система управления зависимостями
Salt: альтернативная кулинария
§ Salt начинался как parallel execution tool
§ Два других важных преимущества — очень
отзывчивое сообщество и простота (сервер -
один процесс, описание на YAML, старый
добрый Python в качестве языка ядра системы)
§ Пытается догнать Chef и, в конце концов,
догонит
§ Пока не догнал — используем с удовольствием, рекомендуем
и внедряем клиентам
Ansible: серебряной пули нет
§ Для автора Ansible это была уже вторая попытка
§ Простота и легкость использования
§ Очень большое удобство для решения повседневных
задач
§ Нет необходимости в сервере
§ Нет необходимости в агенте - «сервер» и клиент
общаются по SSH, нужен только интепрертатор Python
§ ansible-pull
Обратно на 10000 метров
§ Прогресс не стоит на месте:
serverless Chef, serverless Puppet, serverless Salt
§ Конкуренция идет:
производители с удовольствием копируют
друг у друга
§ Пользователь пока выигрывает!
Подведение итогов и награждение
§ Спасибо за внимание!
§ Мы готовы отвечать на вопросы
§ С вами были Сергей Житинский и
Александр Чистяков
§ sergey@gitinsky.com
§ alex@gitinsky.com
§ http://gitinsky.com, http://meetup.com/DevOps-40

More Related Content

What's hot

Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Alexey Lesovsky
 
Первые шаги с RabbitMQ
Первые шаги с RabbitMQПервые шаги с RabbitMQ
Первые шаги с RabbitMQAlexander Svetkin
 
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай КондратовБыстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай КондратовFuenteovejuna
 
PHP 5.4: Что нового?
PHP 5.4: Что нового?PHP 5.4: Что нового?
PHP 5.4: Что нового?phpdevby
 
Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы
Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы
Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы Yandex
 
Компиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоКомпиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоFuenteovejuna
 
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотестыСпецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты7bits
 
СУБД осень 2012 лекция 9
СУБД осень 2012 лекция 9СУБД осень 2012 лекция 9
СУБД осень 2012 лекция 9Technopark
 
Git - распределенная система контроля версий
Git - распределенная система контроля версийGit - распределенная система контроля версий
Git - распределенная система контроля версийOleg Poyaganov
 
06 php instalation_ru
06 php instalation_ru06 php instalation_ru
06 php instalation_rumcroitor
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"Technopark
 
сотни серверов, десятки компонент. автоматизация раскладки и конфигурирования...
сотни серверов, десятки компонент. автоматизация раскладки и конфигурирования...сотни серверов, десятки компонент. автоматизация раскладки и конфигурирования...
сотни серверов, десятки компонент. автоматизация раскладки и конфигурирования...rit2011
 
Бессигнатурное обнаружение PHP-бэкдоров
Бессигнатурное обнаружение PHP-бэкдоровБессигнатурное обнаружение PHP-бэкдоров
Бессигнатурное обнаружение PHP-бэкдоровPositive Hack Days
 
aptly: система управления репозиториями пакетов (РИТ-2014)
aptly: система управления репозиториями пакетов (РИТ-2014)aptly: система управления репозиториями пакетов (РИТ-2014)
aptly: система управления репозиториями пакетов (РИТ-2014)Andrey Smirnov
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Ontico
 
Streaming replication in practice
Streaming replication in practiceStreaming replication in practice
Streaming replication in practiceAlexey Lesovsky
 
Repeatability on DevOps-40 meetup Apr 2014
Repeatability on DevOps-40 meetup Apr 2014Repeatability on DevOps-40 meetup Apr 2014
Repeatability on DevOps-40 meetup Apr 2014Alex Chistyakov
 

What's hot (20)

Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.
 
Первые шаги с RabbitMQ
Первые шаги с RabbitMQПервые шаги с RabbitMQ
Первые шаги с RabbitMQ
 
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай КондратовБыстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
 
PHP 5.4: Что нового?
PHP 5.4: Что нового?PHP 5.4: Что нового?
PHP 5.4: Что нового?
 
Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы
Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы
Петр Леменков - Как облачные технологии меняют Linux-дистрибутивы
 
Chef (Rus)
Chef (Rus)Chef (Rus)
Chef (Rus)
 
Компиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей РоманенкоКомпиляция скриптов PHP. Алексей Романенко
Компиляция скриптов PHP. Алексей Романенко
 
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотестыСпецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
 
СУБД осень 2012 лекция 9
СУБД осень 2012 лекция 9СУБД осень 2012 лекция 9
СУБД осень 2012 лекция 9
 
Git - распределенная система контроля версий
Git - распределенная система контроля версийGit - распределенная система контроля версий
Git - распределенная система контроля версий
 
06 php instalation_ru
06 php instalation_ru06 php instalation_ru
06 php instalation_ru
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
 
сотни серверов, десятки компонент. автоматизация раскладки и конфигурирования...
сотни серверов, десятки компонент. автоматизация раскладки и конфигурирования...сотни серверов, десятки компонент. автоматизация раскладки и конфигурирования...
сотни серверов, десятки компонент. автоматизация раскладки и конфигурирования...
 
Symfony 3
Symfony 3Symfony 3
Symfony 3
 
Бессигнатурное обнаружение PHP-бэкдоров
Бессигнатурное обнаружение PHP-бэкдоровБессигнатурное обнаружение PHP-бэкдоров
Бессигнатурное обнаружение PHP-бэкдоров
 
aptly: система управления репозиториями пакетов (РИТ-2014)
aptly: система управления репозиториями пакетов (РИТ-2014)aptly: система управления репозиториями пакетов (РИТ-2014)
aptly: система управления репозиториями пакетов (РИТ-2014)
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
 
бегун
бегунбегун
бегун
 
Streaming replication in practice
Streaming replication in practiceStreaming replication in practice
Streaming replication in practice
 
Repeatability on DevOps-40 meetup Apr 2014
Repeatability on DevOps-40 meetup Apr 2014Repeatability on DevOps-40 meetup Apr 2014
Repeatability on DevOps-40 meetup Apr 2014
 

Viewers also liked

Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеAlexandr Krasheninnikov
 
Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...
Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...
Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...Badoo Development
 
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...Positive Hack Days
 
Network Automation: Ansible 101
Network Automation: Ansible 101Network Automation: Ansible 101
Network Automation: Ansible 101APNIC
 

Viewers also liked (6)

SECON'2014 - Александр Чистяков - Сравнение современных средств управления ко...
SECON'2014 - Александр Чистяков - Сравнение современных средств управления ко...SECON'2014 - Александр Чистяков - Сравнение современных средств управления ко...
SECON'2014 - Александр Чистяков - Сравнение современных средств управления ко...
 
Vagrant puppet
Vagrant puppetVagrant puppet
Vagrant puppet
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
 
Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...
Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...
Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...
 
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
 
Network Automation: Ansible 101
Network Automation: Ansible 101Network Automation: Ansible 101
Network Automation: Ansible 101
 

Similar to CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14

Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QASQALab
 
Chef, Puppet, Salt, Ansible on SECON 2014
Chef, Puppet, Salt, Ansible on SECON 2014Chef, Puppet, Salt, Ansible on SECON 2014
Chef, Puppet, Salt, Ansible on SECON 2014Alex Chistyakov
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)SPB SQA Group
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeYehor Herasymchuk
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_haElena Ometova
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.
Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.
Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.DrupalSib
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...it-people
 
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The GrinderИлья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The GrinderSQALab
 
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»FDConf
 
Android Telegram S Optimizations
Android Telegram S OptimizationsAndroid Telegram S Optimizations
Android Telegram S OptimizationsStepan Korshakov
 
Нюансы запуска приложений в Kubernetes
Нюансы запуска приложений в KubernetesНюансы запуска приложений в Kubernetes
Нюансы запуска приложений в KubernetesАндрей Новиков
 
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностейПакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностейCisco Russia
 
Страх и ненависть в мире релиз-инжиниринга
Страх и ненависть в мире релиз-инжинирингаСтрах и ненависть в мире релиз-инжиниринга
Страх и ненависть в мире релиз-инжинирингаMikhail Chinkov
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusCisco Russia
 
5 колчинская
5 колчинская 5 колчинская
5 колчинская qasib
 
Как легко и быстро поднять стартап на облаке
Как легко и быстро поднять стартап на облакеКак легко и быстро поднять стартап на облаке
Как легко и быстро поднять стартап на облакеTatiana Smetanina
 
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...Nikolay Samokhvalov
 

Similar to CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14 (20)

Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
 
Chef, Puppet, Salt, Ansible on SECON 2014
Chef, Puppet, Salt, Ansible on SECON 2014Chef, Puppet, Salt, Ansible on SECON 2014
Chef, Puppet, Salt, Ansible on SECON 2014
 
Dev collaboration
Dev collaborationDev collaboration
Dev collaboration
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)
 
php frameworks
php frameworksphp frameworks
php frameworks
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_ha
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.
Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.
Sergey Cherebedov. Deployment of the environment for Drupal using Ansible.
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The GrinderИлья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
 
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
 
Android Telegram S Optimizations
Android Telegram S OptimizationsAndroid Telegram S Optimizations
Android Telegram S Optimizations
 
Нюансы запуска приложений в Kubernetes
Нюансы запуска приложений в KubernetesНюансы запуска приложений в Kubernetes
Нюансы запуска приложений в Kubernetes
 
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностейПакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
 
Страх и ненависть в мире релиз-инжиниринга
Страх и ненависть в мире релиз-инжинирингаСтрах и ненависть в мире релиз-инжиниринга
Страх и ненависть в мире релиз-инжиниринга
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
 
5 колчинская
5 колчинская 5 колчинская
5 колчинская
 
Как легко и быстро поднять стартап на облаке
Как легко и быстро поднять стартап на облакеКак легко и быстро поднять стартап на облаке
Как легко и быстро поднять стартап на облаке
 
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 

More from Serguei Gitinsky

как из трех стоек сделать две.
как из трех стоек сделать две.как из трех стоек сделать две.
как из трех стоек сделать две.Serguei Gitinsky
 
Управление IT командами. Нюансы и практики.
Управление IT командами. Нюансы и практики.Управление IT командами. Нюансы и практики.
Управление IT командами. Нюансы и практики.Serguei Gitinsky
 
Управление рисками при эксплуатации ИТ-инфраструктуры
Управление рисками при эксплуатации ИТ-инфраструктурыУправление рисками при эксплуатации ИТ-инфраструктуры
Управление рисками при эксплуатации ИТ-инфраструктурыSerguei Gitinsky
 
Why we did not choose Hadoop
Why we did not choose HadoopWhy we did not choose Hadoop
Why we did not choose HadoopSerguei Gitinsky
 
Наши финские партнеры - большой ДЦ, построенный по современнейшим технологиям...
Наши финские партнеры - большой ДЦ, построенный по современнейшим технологиям...Наши финские партнеры - большой ДЦ, построенный по современнейшим технологиям...
Наши финские партнеры - большой ДЦ, построенный по современнейшим технологиям...Serguei Gitinsky
 
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...Serguei Gitinsky
 
SmartOS @ Russian Open Source Summit 2014
SmartOS @ Russian Open Source Summit 2014SmartOS @ Russian Open Source Summit 2014
SmartOS @ Russian Open Source Summit 2014Serguei Gitinsky
 
Stairway 2 heaven 2014. Grand Forum Business & IT in Moscow, 13 Feb 2014
Stairway 2 heaven 2014. Grand Forum Business & IT in Moscow, 13 Feb 2014Stairway 2 heaven 2014. Grand Forum Business & IT in Moscow, 13 Feb 2014
Stairway 2 heaven 2014. Grand Forum Business & IT in Moscow, 13 Feb 2014Serguei Gitinsky
 
Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013Serguei Gitinsky
 

More from Serguei Gitinsky (11)

как из трех стоек сделать две.
как из трех стоек сделать две.как из трех стоек сделать две.
как из трех стоек сделать две.
 
Управление IT командами. Нюансы и практики.
Управление IT командами. Нюансы и практики.Управление IT командами. Нюансы и практики.
Управление IT командами. Нюансы и практики.
 
Управление рисками при эксплуатации ИТ-инфраструктуры
Управление рисками при эксплуатации ИТ-инфраструктурыУправление рисками при эксплуатации ИТ-инфраструктуры
Управление рисками при эксплуатации ИТ-инфраструктуры
 
Why we did not choose Hadoop
Why we did not choose HadoopWhy we did not choose Hadoop
Why we did not choose Hadoop
 
Наши финские партнеры - большой ДЦ, построенный по современнейшим технологиям...
Наши финские партнеры - большой ДЦ, построенный по современнейшим технологиям...Наши финские партнеры - большой ДЦ, построенный по современнейшим технологиям...
Наши финские партнеры - большой ДЦ, построенный по современнейшим технологиям...
 
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
 
SmartOS @ Russian Open Source Summit 2014
SmartOS @ Russian Open Source Summit 2014SmartOS @ Russian Open Source Summit 2014
SmartOS @ Russian Open Source Summit 2014
 
Stairway 2 heaven 2014. Grand Forum Business & IT in Moscow, 13 Feb 2014
Stairway 2 heaven 2014. Grand Forum Business & IT in Moscow, 13 Feb 2014Stairway 2 heaven 2014. Grand Forum Business & IT in Moscow, 13 Feb 2014
Stairway 2 heaven 2014. Grand Forum Business & IT in Moscow, 13 Feb 2014
 
Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013
 
Stairway to Heaven
Stairway to HeavenStairway to Heaven
Stairway to Heaven
 
Git in Sky services intro
Git in Sky services introGit in Sky services intro
Git in Sky services intro
 

CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14

  • 2. Что такое CM-системы? Централизованное, формализованное и согласованное управление большими группами устройств (до сотен и тысяч) для обеспечения необходимых процессов в инфраструктуре. Управление состояниями инфраструктуры, состоящей из большого числа компьютеров и других устройств, поддерживающее версионность и переключение между этими состояниями.
  • 3. Общая схема работы CM-инструмента Repository System Input Translation agent Profile Profile Profile Profile Managed device (Deployment agent) Managed device (Deployment agent) Managed device (Deployment agent)
  • 4. История появления CM-инструментов 1. CFEngine (Mark Burgess), 1993 2. LCFG (Perl), 1994 3. ISConf, PIKT, STAF, 1997-1998 4. CFEngine2 (Convergence to desired state), 2002 5. BCfg (Python), 2002 6. Puppet, 2005 7. Chef (idempotence, flow control), 2009 8. CFEngine3 (Theory of promises), 2009 9. SaltStack (ZeroMQ), 2011 10. Ansible (CM, adhoc, deployment)
  • 5. Как мы сравнивали CM-инструменты? 1. Свойства спецификации ввода 1. Язык описаний 2. Доступные механизмы абстракции 3. Поддержка модульности 4. Возможность управления отношениями между узлами 2. Свойства процесса внедрения 1. Масштабируемость 2. Архитектура внедрения 3. Поддержка платформ 3. Свойства управления спецификациями 1. Удобство 2. Версионность 3. Документация 4. Интеграция с окружением 5. Права доступа 4. Поддержка продукта 1. Доступная документация 2. Коммерческая поддержка 3. Сообщество 4. Зрелость продукта
  • 6. Какие CM-инструменты мы сравнивали? 1.CFEngine 3.0.4, 3.5.2 2.Puppet 2.7.* 3.Opscode Chef 11.6.0 4.SaltStack 2014.1.0 5.Ansible 1.5 CM-инструментыCM-инструментыCM-инструменты
  • 7. Свойства языка ввода спецификаций CM-инструмент Декларативный/ императивный DSL DSL использует язык/стандарт Наличие Web- интерфейса СF Engine 3 Декларативный Свой Да, в платной версии Puppet Декларативный/Импер ативные элементы Свой/Ruby Да Chef Императивный/ Декларативные элементы Ruby (в чистом виде) Да, только управление рецептами/кукбуками Salt Декларативный/импер ативные элементы YAML/Python Да, пока сырая версия Ansible Декларативный/импер ативные элементы YAML Да, только в платной версии Ansible Tower
  • 8. Возможные механизмы абстракции DSL A. Управление требованиями SLA к системе (например: «сконфигурировать достаточно почтовых серверов, чтобы обеспечить время SMTP-отклика N ms») B. Управление требованиями к ролям (классам) инстансов (например: «сконфигурировать N подходящих машин в качестве почтовых серверов») C. Управление требованиями к инстансам, независимо от их конкретной реализации (например: «сконфигурировать машины X,Y,Z как почтовые серверы»). D. Управление требованиями к конкретным реализациям инстансов (например: «Создать/заменить следующие строчки в sendmail.cf на машинах X,Y,Z») E. Управление конфигурационными файлами (например: «положить конфигурационный файл sendmail.cf на сервер X») F. Управление двоичными образами конфигураций («залить образ виртуальной машины на сервер X»)
  • 9. Возможные механизмы абстракции DSL СМ-инструмент Возможные уровни абстракции CFEngine 3 C, D, E Puppet С, D, E Chef C, D, E SaltStack C, D, E Ansible C, D, E
  • 10. Механизмы поддержки модульности A. Статически описанные группы (Static) B. Группы сформированны е по запросу (Query based) C. Иерархические группы (Hierarchical) СМ- инструмент Механизмы поддержки модульности Возможность создания модулей 3 сторонами CFEngine 3 A,B,C Да Puppet A,B,C Да Chef A,B Да SaltStack A,B Да Ansible A Да
  • 11. Механизмы моделирования отношений. Детальность. A. Инстанс-инстанс. Примером такого отношения является приведенный выше пример зависимости между инстансом сервера DNS и его клиентов. B. Параметр-параметр. Примером такой зависимости является, например, CNAME-запись, которая требует обязательного наличия соотвествующей A- записи в DNS. C. Параметр-инстанс. Примером такой зависимости может быть зависимость mail-сервера от наличия MX-записи в DNS.
  • 12. Механизмы моделирования отношений: Арность, Ограничения Арность A. One-to-one B. One-to-many C. Many-to-many Ограничения A. Ограничение с проверкой условия. B. «Мягкое» ограничение. Одно из ряда. СМ- инструмент Детальность Арность Ограничения CFEngine 3 A, B, C A, B, C B Puppet A, B, C B, C A Chef A, B, C B, C A SaltStack A, B, C B, C A Ansible Не поддержвает Не поддержвает Не поддержвает
  • 13. Свойства процесса внедрения. СМ- инструмент Масштабируе мость Deployment architecture Способ доставки Platforms CFEngine 3  10000 узлов Stronglydistributed Pull, Push *BSD, AIX, HP-UX, Linux, Mac OS X, Solaris, Windows Puppet Есть инсталляции 100k узлов Centralizedor weakly distributed Push, Pull *BSD, AIX, HP-UX, Linux, Mac OS X, Solaris, Windows Chef > 10000, заявлено до 50000 Centralizedor weakly distributed Pull, Push *BSD, Linux, Mac OS X, Solaris, Windows SaltStack No info Centralizedor weakly distributed Pull *BSD, AIX, HP-UX, Linux, Mac OS X, Solaris, Windows Ansible  100 Centralized Push *BSD, AIX, HP-UX, Linux, Mac OS X, Solaris
  • 14. Управление спецификациями. СМ- инструмент Простота Тесты Мониторинг Версион- ность репозиторий Докумен- тирование Окружения Права CFEngine 3 Сложно Dry run Встроен Внешний Структ. Runtime Path-based Puppet Средне Dry run, staging/testing Интеграция с внешним Внешний Свободная и структ. Runtime, database Path-based Chef Сложно DevOps Dry run, staging/testing Интеграция с внешним Встроенный и внешний Свободная и структ. Runtime, database Path-based SaltStack Средне Dry run Встроен с 0.15.0 Внешний Свободная Runtime, database Встроенный ACL Ansible Просто Dry run Интеграция с внешним Внешний Свободная Runtime Нет
  • 15. Поддержка продукта. СМ- инструм ент Освоение Внедрение Документация Коммерч. поддержка Сообщество Зрелость CFEngine 3 2 3 Полная документация, туториал, справка Есть 3 5 Puppet 3 4 Полная документация, туториал, справка Есть 5 4 Chef 2 3 Полная документация, туториал, справка Есть 5 5 SaltStack 4 3 Полная документация, справка Есть 3 3 Ansible 5 5 Полная документация, справка Есть 3 3
  • 16. Выводы Все системы достаточно хороши, но приспособлены немного для разного. 1) Если у вас есть ограничения по мощности машин и/или по коннективити – однозначно CFEngine 2) Если вы Ruby-developer – ваш выбор Chef 3) Если вы питонщик, то SaltStack понравится вам больше. 4) Если вы системный инженер/администратор и только начинаете осваивать СM- инструменты, попробуйте Ansible 5) Puppet имеет в своих списках внедрения ОГРОМНЫЕ (HUGE!) инфраструктуры. Мы попробовали все системы в реальных конфигурациях, поэтому можем помочь вам с тем, как определиться. Да и вообще, написать все скрипты .
  • 17. С вами был Сергей Житинский, CEO, Git in Sky sergey@gitinsky.ru А о конкретных кейсах внедрения расскажет главный инженер Git in Sky Александр Чистяков
  • 18. Краткий обзор CM-систем с высоты 10000 метров § Что-то большое и сложное, за день не облететь § Кажется, в инфраструктуре есть сервер § Раз есть сервер — значит, есть и клиенты § Знакомо, не правда ли? § CM-система — это сервер и клиенты (агенты)
  • 19. Кстати, как называется конференция? § Мы еще ничем не начали управлять, § А у нас уже прибавилось точек отказа! § Кстати, сколько их теперь? § Рассмотрим, например, архитектуру Chef-сервер § (Это старая диаграмма, сейчас квадратиков еще больше)
  • 20. Мы же обещали кейсы! Не беспокойтесь, сейчас всё будет § Сначала я познакомился с Puppet, и это было довольно давно § Сейчас мы тоже работаем с Puppet § Puppet — он как Windows, стремится быть умнее своего пользователя § Ключевые слова: RHEL, enterprise § В 2014 году нам это уже не мешает (потому что современный Puppet это такой почти Chef)
  • 21. Chef: эта музыка может быть вечной § Chef — это очень большой и не очень простой стек технологий § К счастью, он очень гибкий § К несчастью, из него могут застрелиться даже его создатели § Про Chef-сервер я уже говорил § Безусловные плюсы: инфраструктура тестирования (от юнит-тестов до интеграционных), система управления зависимостями
  • 22. Salt: альтернативная кулинария § Salt начинался как parallel execution tool § Два других важных преимущества — очень отзывчивое сообщество и простота (сервер - один процесс, описание на YAML, старый добрый Python в качестве языка ядра системы) § Пытается догнать Chef и, в конце концов, догонит § Пока не догнал — используем с удовольствием, рекомендуем и внедряем клиентам
  • 23. Ansible: серебряной пули нет § Для автора Ansible это была уже вторая попытка § Простота и легкость использования § Очень большое удобство для решения повседневных задач § Нет необходимости в сервере § Нет необходимости в агенте - «сервер» и клиент общаются по SSH, нужен только интепрертатор Python § ansible-pull
  • 24. Обратно на 10000 метров § Прогресс не стоит на месте: serverless Chef, serverless Puppet, serverless Salt § Конкуренция идет: производители с удовольствием копируют друг у друга § Пользователь пока выигрывает!
  • 25. Подведение итогов и награждение § Спасибо за внимание! § Мы готовы отвечать на вопросы § С вами были Сергей Житинский и Александр Чистяков § sergey@gitinsky.com § alex@gitinsky.com § http://gitinsky.com, http://meetup.com/DevOps-40