SlideShare a Scribd company logo
1 of 18
Download to read offline
Сравнение современных средств управления
конфигурацией: Chef, Puppet, SaltStack, Ansible
Александр Чистяков, главный инженер
Git in Sky, 2014
Давайте познакомимся, я:
✔ Занимаюсь поддержкой инфраструктуры разных проектов, больших и
маленьких
✔ Живу на Северо-Западе
✔ Работаю главным инженером в компании Git in Sky
✔ Постоянно что-нибудь конфигурирую
Давайте познакомимся, вы:
✔ Занимаетесь разработкой веб-проектов?
✔ Занимаетесь поддержкой веб-проектов?
✔ Не занимаетесь? А чем занимаетесь?
✔ Готов поспорить, вы немного конфигурируете?
✔ Если нет, кто-то делает это за вас
How to configure like a pro!
✔ 70-е Сначала был UNIX shell (почему «был», он и сейчас есть)
✔ 90-е CFEngine 1, CFEngine 2 (ядро проекта - на языке C, кстати, кто-
нибудь здесь разрабатывает на языке C?)
✔ 00-е Puppet (на Ruby), Bcfg2 (на Python)
✔ 10-е Chef (Ruby), Salt (Python), Ansible (Python), Juju (Go),
Rundeck (Java), Babushka (Ruby), Marelle (Prolog)
✔ Как видите, выбор есть! (Наверняка, я перечислил не всё)
Мужской справочник по CM системам
✔ Задача: выбрать систему управления конфигурацией
✔ План действий (два варианта):
Меня зовут Саша, и у меня есть проблема
✔ Как решал эту задачу я:
✔
Начало 2011-го, Puppet и Chef уже есть, выбираю из них
✔
Не знаю ни Chef, ни Puppet, ни Ruby
✔
Но! Про Puppet есть книга!
✔
Книга — источник знаний?
✔
Книга — показатель «взрослости» проекта!
✔
http://goo.gl/MKe5Ni (опубликована Feb 4, 2008)
Назад в будущее
✔ Как бы я решал эту задачу сейчас?
✔
2014: Puppet, Chef, Salt, Ansible, Fabric, ...
✔
Про Chef есть книга...две книги...три книги
✔
Про Puppet есть три книги...или больше?
✔
(Packt Publishing — это круто!)
✔
O_O
✔
Нужно менять критерии отбора!
Придумываем критерии
✔ Порог вхождения (низкий, высокий, средний)
✔ Сложность развертывания (низкая, высокая, средняя)
✔ Язык ядра проекта (Ruby, Python, C, Java, Prolog, ...)
✔ Язык описания конфигурации (custom DSL, YAML, XML, eDSL, Ruby)
✔ Парадигма описания конфигурации (императивная, декларативная)
✔ Сложность поддерживания сервиса (низкая, высокая, средняя)
✔ Ресурсоемкость (низкая, высокая, средняя)
✔ Дружелюбность и компетентность сообщества
✔ Классификация получилась очень субъективная и не очень стройная
✔ Но другой у меня для вас нет (может, есть у вас для меня?)
Порог вхожения
✔ Сильно зависит от вашего пути:
✔
Я начинал с Puppet, и мне было сложно
✔
Через три года я вернулся - «так здесь же все понятно!»
✔
Я уже знал анатомию типичной CM системы
✔
Я знал, что именно мне необходимо (все CM системы похожи)
✔
Новая информация про Puppet в сети, новые книги, etc
✔ Тем не менее, у разных систем порог вхождения разный
Порог вхожения
✔ Про CFEngine тоже есть книга
✔
Я пытался читать ее, уже имея опыт с Puppet и Chef
✔
Сначала я сломался прямо на оглавлении
✔
Потом я не смог найти, как в CFEngine устроена генерация конфигов
при помощи шаблонов
✔
Так, до сих пор, и не знаю, возможно, никак не устроена
✔ Да, я не хочу читать никакие книги, я хочу описывать конфигурацию,
где мой «Getting started»?
«Getting started»
✔ Типичные действия:
✔
Развернуть и настроить сервер, пусть в минимальном варианте
(если сервер вообще предусмотрен)
✔
Настроить агент на клиентских машинах, связать их с сервером
✔
Начать описывать конфигурацию
✔
Протестировать описание
✔
Применить описание
✔ Казалось бы, пять простых пунктов!
Анатомия CM системы
✔ Сервер (если есть, обычно — есть)
✔ Агент на клиентских узлах (если есть, часто — есть)
✔ Описания конфигурации (хранятся на сервере, применяются на
клиенте), состоят из:
✔
Описаний установленных пакетов
✔
Описаний разрешенных и запущенных сервисов
✔
Шаблонов конфигурационных файлов и правил генерации
✔
Описаний параметров сред (логических групп серверов)
Все CM-системы похожи?
✔ С большого расстояния — да
✔ Если подойти поближе, то у них окажется
разный цвет и разная форма ушей
✔ Кроме того, у каждой будет уникальный характер
✔ Поговорим об уникальных отличиях
У каждой системы свой жаргон
✔ На мой взгляд это довольно глупая уникальность
✔ Но создателей CM систем тоже можно понять — они
втайне хотят, чтобы остался только один игрок
✔ Раньше я приводил в докладах словарики этого жаргона
но, говоря о четырех системах сразу, я не вижу смысла этого
делать
✔ Теперь о действительно уникальном
Chef: сделано рубистами для рубистов
✔ Chef-Librarian и Berkshelf — dependency managers
(то же, что Bundler (Ruby), Composer (PHP), Bower (Node), etc)
✔ Chef появился как SaaS, и в этом качестве он лучше всех
✔ Шифрование sensitive данных — функция ядра системы
(Для Puppet есть подпроект Hiera-Puppet и отдельный плагин
hiera-gpg для шифрования)
✔ foodcritic — lint tool
✔ test-kitchen — integration testing tool
✔ ChefSpec, Cucumber-chef, rspec-chef — unit testing tools
Puppet: сделано для RHEL
✔ В отличие от Chef, Puppet всегда таргетировался на
RHEL-based системы и нормально на них работал
✔ Полная поддержка команд Augeas
✔
Augeas — это API и tool для управления конфигурационными
файлами
✔
Сhef с Augeas не работает вообще, Salt поддерживает только
команду «set», для Ansible есть сторонний модуль
Выводы
✔ Знать одну CM систему лучше, чем ни одной
✔ Знать несколько CM систем лучше, чем одну
✔ План не изменился
✔ Но теперь у вас есть схема
магазина (я надеюсь)
✔ Кстати, моя торговая точка
здесь: http://gitinsky.com
✔ Заходите!
Спасибо за внимание!
✔ Пожалуйста, ваши вопросы!
✔ ...
✔ ...
✔ С вами был:
✔
Александр Чистяков, главный инженер, Git in Sky
✔
alex@gitinsky.com, http://gitinsky.com
✔
http://meetup.com/DevOps-40

More Related Content

What's hot

Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...Ontico
 
Chef Server не нужен? для DevOps-40
Chef Server не нужен? для DevOps-40Chef Server не нужен? для DevOps-40
Chef Server не нужен? для DevOps-40Stanislav Bogatyrev
 
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаКолёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаITCrowd Almaty
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаendeveit
 
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил ТюринPG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюринpgdayrussia
 
My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014Alex Chistyakov
 
Kolosov drupalconf2011 2_kolosov
Kolosov drupalconf2011 2_kolosovKolosov drupalconf2011 2_kolosov
Kolosov drupalconf2011 2_kolosovdrupalconf
 
Инструментарий начинающего разработчика Drupal.
Инструментарий начинающего разработчика Drupal.Инструментарий начинающего разработчика Drupal.
Инструментарий начинающего разработчика Drupal.PVasili
 
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид ШирмановКомпонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид ШирмановMoscowJS
 
My talk on Salt and Ansible from DevConf 2014
My talk on Salt and Ansible from DevConf 2014My talk on Salt and Ansible from DevConf 2014
My talk on Salt and Ansible from DevConf 2014Alex Chistyakov
 
Про бэкапы (не энтерпрайз!)
Про бэкапы (не энтерпрайз!)Про бэкапы (не энтерпрайз!)
Про бэкапы (не энтерпрайз!)Alex Chistyakov
 
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)Ontico
 
Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Ontico
 
Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.Vladimir Malyk
 
Павел Пушкарев "Отказоустойчивость сервисов"
Павел Пушкарев "Отказоустойчивость сервисов"Павел Пушкарев "Отказоустойчивость сервисов"
Павел Пушкарев "Отказоустойчивость сервисов"Yandex
 

What's hot (20)

Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
 
Chef Server не нужен? для DevOps-40
Chef Server не нужен? для DevOps-40Chef Server не нужен? для DevOps-40
Chef Server не нужен? для DevOps-40
 
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаКолёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервиса
 
Chef @DevWeb
Chef @DevWebChef @DevWeb
Chef @DevWeb
 
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил ТюринPG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
 
My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014My talk on LeoFS, Highload++ 2014
My talk on LeoFS, Highload++ 2014
 
Drupal conf2011 2_kolosov
Drupal conf2011 2_kolosovDrupal conf2011 2_kolosov
Drupal conf2011 2_kolosov
 
Kolosov drupalconf2011 2_kolosov
Kolosov drupalconf2011 2_kolosovKolosov drupalconf2011 2_kolosov
Kolosov drupalconf2011 2_kolosov
 
Инструментарий начинающего разработчика Drupal.
Инструментарий начинающего разработчика Drupal.Инструментарий начинающего разработчика Drupal.
Инструментарий начинающего разработчика Drupal.
 
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид ШирмановКомпонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
 
My talk on Salt and Ansible from DevConf 2014
My talk on Salt and Ansible from DevConf 2014My talk on Salt and Ansible from DevConf 2014
My talk on Salt and Ansible from DevConf 2014
 
Using Ansible
Using AnsibleUsing Ansible
Using Ansible
 
Про бэкапы (не энтерпрайз!)
Про бэкапы (не энтерпрайз!)Про бэкапы (не энтерпрайз!)
Про бэкапы (не энтерпрайз!)
 
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
 
Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)
 
Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.
 
Cobbler
CobblerCobbler
Cobbler
 
Крыша 2.0
Крыша 2.0Крыша 2.0
Крыша 2.0
 
Павел Пушкарев "Отказоустойчивость сервисов"
Павел Пушкарев "Отказоустойчивость сервисов"Павел Пушкарев "Отказоустойчивость сервисов"
Павел Пушкарев "Отказоустойчивость сервисов"
 

Similar to SECON'2014 - Александр Чистяков - Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible

13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...IT-Portfolio
 
HappyDev`12 - Александр Чистяков - Большой веб-проект: развитие, рост, пробле...
HappyDev`12 - Александр Чистяков - Большой веб-проект: развитие, рост, пробле...HappyDev`12 - Александр Чистяков - Большой веб-проект: развитие, рост, пробле...
HappyDev`12 - Александр Чистяков - Большой веб-проект: развитие, рост, пробле...etarasenko
 
Big web project @happydev Omsk
Big web project @happydev OmskBig web project @happydev Omsk
Big web project @happydev OmskAlex Chistyakov
 
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...HappyDev
 
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14Serguei Gitinsky
 
Jpoint 2017 - как это было (обзор конференции)
Jpoint 2017 - как это было (обзор конференции)Jpoint 2017 - как это было (обзор конференции)
Jpoint 2017 - как это было (обзор конференции)CleverDATA
 
терминология vol.2
терминология vol.2терминология vol.2
терминология vol.2SBTech
 
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON
 
История проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинИстория проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинOntico
 
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем SphinxCodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем SphinxCodeFest
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java DeveloperOlexandra Dmytrenko
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Fwdays
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyAlex Chistyakov
 
организация мероприятий без упячки. герасимович. Itotvet 19 20 октября
организация мероприятий без упячки. герасимович. Itotvet 19 20 октябряорганизация мероприятий без упячки. герасимович. Itotvet 19 20 октября
организация мероприятий без упячки. герасимович. Itotvet 19 20 октябряit-people
 
SECON'2016. Бартунов Олег, Карьера в Open Source
SECON'2016. Бартунов Олег, Карьера в Open SourceSECON'2016. Бартунов Олег, Карьера в Open Source
SECON'2016. Бартунов Олег, Карьера в Open SourceSECON
 
Практика организации ИТ-конфереций и других мероприятий для разработчиков
Практика организации ИТ-конфереций и других мероприятий для разработчиковПрактика организации ИТ-конфереций и других мероприятий для разработчиков
Практика организации ИТ-конфереций и других мероприятий для разработчиковSQALab
 
Cerebro general overiew rus
Cerebro general overiew rusCerebro general overiew rus
Cerebro general overiew rusCineSoft
 

Similar to SECON'2014 - Александр Чистяков - Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible (20)

13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
 
HappyDev`12 - Александр Чистяков - Большой веб-проект: развитие, рост, пробле...
HappyDev`12 - Александр Чистяков - Большой веб-проект: развитие, рост, пробле...HappyDev`12 - Александр Чистяков - Большой веб-проект: развитие, рост, пробле...
HappyDev`12 - Александр Чистяков - Большой веб-проект: развитие, рост, пробле...
 
Big web project @happydev Omsk
Big web project @happydev OmskBig web project @happydev Omsk
Big web project @happydev Omsk
 
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
Александр Чистяков - Большой веб-проект: развитие, рост, проблемы, решения с ...
 
Sivko
SivkoSivko
Sivko
 
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
 
Go и fuse
Go и fuseGo и fuse
Go и fuse
 
Jpoint 2017 - как это было (обзор конференции)
Jpoint 2017 - как это было (обзор конференции)Jpoint 2017 - как это было (обзор конференции)
Jpoint 2017 - как это было (обзор конференции)
 
терминология vol.2
терминология vol.2терминология vol.2
терминология vol.2
 
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
 
История проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинИстория проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей Шетухин
 
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем SphinxCodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java Developer
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
 
Опыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на RubyОпыт эксплуатации большого проекта на Ruby
Опыт эксплуатации большого проекта на Ruby
 
организация мероприятий без упячки. герасимович. Itotvet 19 20 октября
организация мероприятий без упячки. герасимович. Itotvet 19 20 октябряорганизация мероприятий без упячки. герасимович. Itotvet 19 20 октября
организация мероприятий без упячки. герасимович. Itotvet 19 20 октября
 
SECON'2016. Бартунов Олег, Карьера в Open Source
SECON'2016. Бартунов Олег, Карьера в Open SourceSECON'2016. Бартунов Олег, Карьера в Open Source
SECON'2016. Бартунов Олег, Карьера в Open Source
 
Практика организации ИТ-конфереций и других мероприятий для разработчиков
Практика организации ИТ-конфереций и других мероприятий для разработчиковПрактика организации ИТ-конфереций и других мероприятий для разработчиков
Практика организации ИТ-конфереций и других мероприятий для разработчиков
 
User Story Canvas
User Story CanvasUser Story Canvas
User Story Canvas
 
Cerebro general overiew rus
Cerebro general overiew rusCerebro general overiew rus
Cerebro general overiew rus
 

More from Конференция разработчиков программного обеспечения SECON'2014

More from Конференция разработчиков программного обеспечения SECON'2014 (16)

SECON'2014 - Сергеев Антон - Асинхронные задачи в iFunny
SECON'2014 - Сергеев Антон - Асинхронные задачи в iFunnySECON'2014 - Сергеев Антон - Асинхронные задачи в iFunny
SECON'2014 - Сергеев Антон - Асинхронные задачи в iFunny
 
SECON.Посиделки #16: Cassandra (презентация)
SECON.Посиделки #16: Cassandra (презентация) SECON.Посиделки #16: Cassandra (презентация)
SECON.Посиделки #16: Cassandra (презентация)
 
SECON'2014 - Тимур Салюков - История одного кейса Gorussia2014.ru. Как добить...
SECON'2014 - Тимур Салюков - История одного кейса Gorussia2014.ru. Как добить...SECON'2014 - Тимур Салюков - История одного кейса Gorussia2014.ru. Как добить...
SECON'2014 - Тимур Салюков - История одного кейса Gorussia2014.ru. Как добить...
 
SECON'2014 - Максим Цепков - DDD: от требований до кода
SECON'2014 - Максим Цепков - DDD: от требований до кодаSECON'2014 - Максим Цепков - DDD: от требований до кода
SECON'2014 - Максим Цепков - DDD: от требований до кода
 
SECON'2014 - Кирилл Мокевнин - Формирование инженерной культуры
SECON'2014 - Кирилл Мокевнин - Формирование инженерной культурыSECON'2014 - Кирилл Мокевнин - Формирование инженерной культуры
SECON'2014 - Кирилл Мокевнин - Формирование инженерной культуры
 
SECON'2014 - Юрий Бушмелев - Эволюция системного администратора
SECON'2014 - Юрий Бушмелев - Эволюция системного администратораSECON'2014 - Юрий Бушмелев - Эволюция системного администратора
SECON'2014 - Юрий Бушмелев - Эволюция системного администратора
 
SECON'2014 - Алексей Кошкидько - Межконтинентальный опыт внедрения Agile
SECON'2014 - Алексей Кошкидько - Межконтинентальный опыт внедрения AgileSECON'2014 - Алексей Кошкидько - Межконтинентальный опыт внедрения Agile
SECON'2014 - Алексей Кошкидько - Межконтинентальный опыт внедрения Agile
 
SECON'2014 - Филипп Торчинский - Трансформация баг-трекера под любой проект: ...
SECON'2014 - Филипп Торчинский - Трансформация баг-трекера под любой проект: ...SECON'2014 - Филипп Торчинский - Трансформация баг-трекера под любой проект: ...
SECON'2014 - Филипп Торчинский - Трансформация баг-трекера под любой проект: ...
 
SECON'2014 - Сергей Цивин - Производительность веб-приложений
SECON'2014 - Сергей Цивин - Производительность веб-приложенийSECON'2014 - Сергей Цивин - Производительность веб-приложений
SECON'2014 - Сергей Цивин - Производительность веб-приложений
 
SECON'2014 - Дмитрий Швеенков - Рассылка push-уведомлений для мобильных платформ
SECON'2014 - Дмитрий Швеенков - Рассылка push-уведомлений для мобильных платформSECON'2014 - Дмитрий Швеенков - Рассылка push-уведомлений для мобильных платформ
SECON'2014 - Дмитрий Швеенков - Рассылка push-уведомлений для мобильных платформ
 
SECON'2014 - Антон Веретенников, Илья Семаков - Переход от коллбеков к событиям
SECON'2014 - Антон Веретенников, Илья Семаков - Переход от коллбеков к событиямSECON'2014 - Антон Веретенников, Илья Семаков - Переход от коллбеков к событиям
SECON'2014 - Антон Веретенников, Илья Семаков - Переход от коллбеков к событиям
 
SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями...
SECON'2014 - Сергей Шпадырев -  Разработка 3D-игры на Flash: едем с костылями...SECON'2014 - Сергей Шпадырев -  Разработка 3D-игры на Flash: едем с костылями...
SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями...
 
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данныхSECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
 
SECON'2014 - Павел Щеваев - Метаданные и автогенерация кода
SECON'2014 - Павел Щеваев - Метаданные и автогенерация кодаSECON'2014 - Павел Щеваев - Метаданные и автогенерация кода
SECON'2014 - Павел Щеваев - Метаданные и автогенерация кода
 
SECON'2014 - Александр Бындю - Переход от монолитной архитектуры к распределе...
SECON'2014 - Александр Бындю - Переход от монолитной архитектуры к распределе...SECON'2014 - Александр Бындю - Переход от монолитной архитектуры к распределе...
SECON'2014 - Александр Бындю - Переход от монолитной архитектуры к распределе...
 
SECON'2014 - Команда CTRL-PNZ - Уязвимости для самых маленьких. Что это, как ...
SECON'2014 - Команда CTRL-PNZ - Уязвимости для самых маленьких. Что это, как ...SECON'2014 - Команда CTRL-PNZ - Уязвимости для самых маленьких. Что это, как ...
SECON'2014 - Команда CTRL-PNZ - Уязвимости для самых маленьких. Что это, как ...
 

SECON'2014 - Александр Чистяков - Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible

  • 1. Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible Александр Чистяков, главный инженер Git in Sky, 2014
  • 2. Давайте познакомимся, я: ✔ Занимаюсь поддержкой инфраструктуры разных проектов, больших и маленьких ✔ Живу на Северо-Западе ✔ Работаю главным инженером в компании Git in Sky ✔ Постоянно что-нибудь конфигурирую
  • 3. Давайте познакомимся, вы: ✔ Занимаетесь разработкой веб-проектов? ✔ Занимаетесь поддержкой веб-проектов? ✔ Не занимаетесь? А чем занимаетесь? ✔ Готов поспорить, вы немного конфигурируете? ✔ Если нет, кто-то делает это за вас
  • 4. How to configure like a pro! ✔ 70-е Сначала был UNIX shell (почему «был», он и сейчас есть) ✔ 90-е CFEngine 1, CFEngine 2 (ядро проекта - на языке C, кстати, кто- нибудь здесь разрабатывает на языке C?) ✔ 00-е Puppet (на Ruby), Bcfg2 (на Python) ✔ 10-е Chef (Ruby), Salt (Python), Ansible (Python), Juju (Go), Rundeck (Java), Babushka (Ruby), Marelle (Prolog) ✔ Как видите, выбор есть! (Наверняка, я перечислил не всё)
  • 5. Мужской справочник по CM системам ✔ Задача: выбрать систему управления конфигурацией ✔ План действий (два варианта):
  • 6. Меня зовут Саша, и у меня есть проблема ✔ Как решал эту задачу я: ✔ Начало 2011-го, Puppet и Chef уже есть, выбираю из них ✔ Не знаю ни Chef, ни Puppet, ни Ruby ✔ Но! Про Puppet есть книга! ✔ Книга — источник знаний? ✔ Книга — показатель «взрослости» проекта! ✔ http://goo.gl/MKe5Ni (опубликована Feb 4, 2008)
  • 7. Назад в будущее ✔ Как бы я решал эту задачу сейчас? ✔ 2014: Puppet, Chef, Salt, Ansible, Fabric, ... ✔ Про Chef есть книга...две книги...три книги ✔ Про Puppet есть три книги...или больше? ✔ (Packt Publishing — это круто!) ✔ O_O ✔ Нужно менять критерии отбора!
  • 8. Придумываем критерии ✔ Порог вхождения (низкий, высокий, средний) ✔ Сложность развертывания (низкая, высокая, средняя) ✔ Язык ядра проекта (Ruby, Python, C, Java, Prolog, ...) ✔ Язык описания конфигурации (custom DSL, YAML, XML, eDSL, Ruby) ✔ Парадигма описания конфигурации (императивная, декларативная) ✔ Сложность поддерживания сервиса (низкая, высокая, средняя) ✔ Ресурсоемкость (низкая, высокая, средняя) ✔ Дружелюбность и компетентность сообщества ✔ Классификация получилась очень субъективная и не очень стройная ✔ Но другой у меня для вас нет (может, есть у вас для меня?)
  • 9. Порог вхожения ✔ Сильно зависит от вашего пути: ✔ Я начинал с Puppet, и мне было сложно ✔ Через три года я вернулся - «так здесь же все понятно!» ✔ Я уже знал анатомию типичной CM системы ✔ Я знал, что именно мне необходимо (все CM системы похожи) ✔ Новая информация про Puppet в сети, новые книги, etc ✔ Тем не менее, у разных систем порог вхождения разный
  • 10. Порог вхожения ✔ Про CFEngine тоже есть книга ✔ Я пытался читать ее, уже имея опыт с Puppet и Chef ✔ Сначала я сломался прямо на оглавлении ✔ Потом я не смог найти, как в CFEngine устроена генерация конфигов при помощи шаблонов ✔ Так, до сих пор, и не знаю, возможно, никак не устроена ✔ Да, я не хочу читать никакие книги, я хочу описывать конфигурацию, где мой «Getting started»?
  • 11. «Getting started» ✔ Типичные действия: ✔ Развернуть и настроить сервер, пусть в минимальном варианте (если сервер вообще предусмотрен) ✔ Настроить агент на клиентских машинах, связать их с сервером ✔ Начать описывать конфигурацию ✔ Протестировать описание ✔ Применить описание ✔ Казалось бы, пять простых пунктов!
  • 12. Анатомия CM системы ✔ Сервер (если есть, обычно — есть) ✔ Агент на клиентских узлах (если есть, часто — есть) ✔ Описания конфигурации (хранятся на сервере, применяются на клиенте), состоят из: ✔ Описаний установленных пакетов ✔ Описаний разрешенных и запущенных сервисов ✔ Шаблонов конфигурационных файлов и правил генерации ✔ Описаний параметров сред (логических групп серверов)
  • 13. Все CM-системы похожи? ✔ С большого расстояния — да ✔ Если подойти поближе, то у них окажется разный цвет и разная форма ушей ✔ Кроме того, у каждой будет уникальный характер ✔ Поговорим об уникальных отличиях
  • 14. У каждой системы свой жаргон ✔ На мой взгляд это довольно глупая уникальность ✔ Но создателей CM систем тоже можно понять — они втайне хотят, чтобы остался только один игрок ✔ Раньше я приводил в докладах словарики этого жаргона но, говоря о четырех системах сразу, я не вижу смысла этого делать ✔ Теперь о действительно уникальном
  • 15. Chef: сделано рубистами для рубистов ✔ Chef-Librarian и Berkshelf — dependency managers (то же, что Bundler (Ruby), Composer (PHP), Bower (Node), etc) ✔ Chef появился как SaaS, и в этом качестве он лучше всех ✔ Шифрование sensitive данных — функция ядра системы (Для Puppet есть подпроект Hiera-Puppet и отдельный плагин hiera-gpg для шифрования) ✔ foodcritic — lint tool ✔ test-kitchen — integration testing tool ✔ ChefSpec, Cucumber-chef, rspec-chef — unit testing tools
  • 16. Puppet: сделано для RHEL ✔ В отличие от Chef, Puppet всегда таргетировался на RHEL-based системы и нормально на них работал ✔ Полная поддержка команд Augeas ✔ Augeas — это API и tool для управления конфигурационными файлами ✔ Сhef с Augeas не работает вообще, Salt поддерживает только команду «set», для Ansible есть сторонний модуль
  • 17. Выводы ✔ Знать одну CM систему лучше, чем ни одной ✔ Знать несколько CM систем лучше, чем одну ✔ План не изменился ✔ Но теперь у вас есть схема магазина (я надеюсь) ✔ Кстати, моя торговая точка здесь: http://gitinsky.com ✔ Заходите!
  • 18. Спасибо за внимание! ✔ Пожалуйста, ваши вопросы! ✔ ... ✔ ... ✔ С вами был: ✔ Александр Чистяков, главный инженер, Git in Sky ✔ alex@gitinsky.com, http://gitinsky.com ✔ http://meetup.com/DevOps-40