SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Сравнение современных
средств управления
конфигурацией:
Chef, Puppet, SaltStack, Ansible
Александр Чистяков,
главный инженер Git in Sky,
2014
Давайте познакомимся, я:
§ Живу на Северо-Западе
§ Работаю главным инженером в компании Git in Sky
§ Занимаюсь поддержкой инфраструктуры разных проектов,
больших и маленьких
§ Постоянно что-нибудь конфигурирую
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Давайте познакомимся, Вы:
§ Занимаетесь разработкой веб-проектов?
§ Занимаетесь поддержкой веб-проектов?
§ Не занимаетесь? А чем занимаетесь?
§ Готов поспорить, вы немного конфигурируете?
§ Если нет, кто-то делает это за вас.
§ (Надеюсь, вы знаете, кто именно, и доверяете ему)
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Зачем нужны CM системы?
§ Системы управления конфигурацией позволяют:
§ Управлять конфигурацией (сюрприз!)
§ Добиваться повторимости
§ Рассматривать конфигурацию как код
§ За что мы любим библиотеки?
§ Переиспользовать код, в том числе, и чужой
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
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)
Как видите, выбор есть! (Наверняка, я перечислил не всё)
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Мужской справочник по СМ системам:
§ Задача: выбрать систему
управления конфигурацией
§ План действий (два варианта):
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Меня зовут Саша, и у меня есть проблема:
Как решал эту задачу я:
§ Начало 2011-го, Puppet и Chef уже есть, выбираю из них
§ Не знаю ни Chef, ни Puppet, ни Ruby
§ Но! Про Puppet есть книга!
§ Книга — источник знаний?
§ Книга — показатель «взрослости» проекта!
§ http://goo.gl/MKe5Ni (опубликована Feb 4, 2008)
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Назад в будущее:
Я из 2011-го и эта же задача сейчас:
§ 2014: Puppet, Chef, Salt, Ansible, Fabric, ...
§ Про Chef есть книга...две книги...три книги
§ Про Puppet есть три книги...или больше?
§ (Packt Publishing — это круто!)
§ O_O
Нужно менять критерии отбора!
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Придумываем критерии:
§ Порог вхождения (низкий, высокий, средний)
§ Сложность развертывания (низкая, высокая, средняя)
§ Язык ядра проекта (Ruby, Python, C, Java, Prolog, ...)
§ Язык описания конфигурации (custom DSL, YAML, XML, eDSL, Ruby)
§ Парадигма описания конфигурации (императивная, декларативная)
§ Сложность поддерживания сервиса (низкая, высокая, средняя)
§ Ресурсоемкость (низкая, высокая, средняя)
§ Дружелюбность и компетентность сообщества
§ Классификация получилась очень субъективная и не очень стройная
§ Но другой у меня для вас нет (может, есть у вас для меня?)
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Порог вхождения:
Сильно зависит от вашего пути:
§ Я начинал с Puppet, и мне было сложно
§ Через три года мы вернулись - «так здесь же все понятно!»
§ Мы уже знали анатомию типичной CM системы
§ Мы знали, что именно нам необходимо (все CM системы похожи)
§ Новая информация про Puppet в сети, новые книги, etc
Тем не менее, у разных систем порог вхождения разный
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Порог вхождения:
§ Про CFEngine тоже есть книга
§ Я пытался читать ее, уже имея опыт с Puppet и Chef
§ Сначала я сломался прямо на оглавлении
§ Потом я не смог найти, как в CFEngine устроена генерация конфигов
при помощи шаблонов
§ Так, до сих пор, и не знаю, возможно, никак не устроена
§ Да, я не хочу читать никакие книги, я хочу описывать конфигурацию,
где мой «Getting started»?
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
«Getting started»
Типичные действия:
§ Развернуть и настроить сервер, пусть в минимальном варианте (если сервер
вообще предусмотрен)
§ Настроить агент на клиентских машинах, связать их с сервером
§ Начать описывать конфигурацию
§ Протестировать описание
§ Применить описание
Казалось бы, пять простых пунктов!
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Анатомия СМ-системы:
§ Сервер (если есть, обычно — есть)
§ Агент на клиентских узлах (если есть, часто — есть)
§ Описания конфигурации (хранятся на сервере, применяются
на клиенте), состоят из:
§
Описаний установленных пакетов
§
Описаний разрешенных и запущенных сервисов
§
Шаблонов конфигурационных файлов и правил генерации
§
Описаний параметров сред (логических групп серверов)
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Шаг 1: развернуть сервер
Сервер нормального человека: Сервер курильщика (Chef):
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Шаг 1: развернуть сервер
§ В настоящее время (после выхода Chef 11) любой CM сервер
разворачивается через один-два однострочника
§ При этом количество компонентов Chef-сервера не уменьшилось — их
там по-прежнему хватает на целую диаграмму
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Шаг 2: настроить агент на клиентах
§ Плюс-минус однострочник для всех систем
§ Надо только решить, как будет работать агент: как постоянно
загруженный сервис, либо через cron
§ В случае, если агент написан на Ruby, крайне рекомендую
использовать cron
§ Кстати, в книге про Puppet так и написано: “используйте лучше cron”
§ Потому что Ruby-машина так устроена, что если что-то взяла, то
обратно уже не отдаст
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Шаг 3: описываем конфигурацию
§ Лучшее описание — декларативное
§ Сам процесс применения описания императивен из-за тяжелого
наследия UNIX shell и других технологий 70-х
§ Выберите тот DSL, который вам будет понятнее (DSL курильщика тоже
есть)
§ Привыкните к мысли, что никакого DSL не хватит и придется либо
писать свои модули, либо исполнять ad hoc скрипты
§ По возможности, делайте их идемпотентными
§ Берите систему с тем языком ядра, который знаете — вам с ним еще
интегрироваться, а, возможно, и патчи на ядро выпускать
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
DSL курильщика
§ В докладе Стаса Богатырева «Chef-сервер не нужен» есть отличный
слайд, отображающий 15 разных мест в описании конфигурации,
где могут быть объявлены атрибуты ноды (управляемой машины)
§ Описание конфигураций для Salt с применением Python, а не YAML —
чистая магия, хотел с гордостью показать вам, как я это умею, но
потом мне стало стыдно
§ Вообще, чем больше и сложнее описываемая конфигурация, тем
больше метрика WTF/LOC при изучении ее описания
§ По субъективным ощущениям для описаний под Chef эта метрика
будет, при прочих равных, наименьшей
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Дружелюбность и компетентность сообщества
§ В трекере Chef до сих пор висят незакрытые проблемы от 2012-го года
§ Я попытался отправить патч в один из Chef cookbook'ов — через
полгода (!) меня попросили подписать отказ от прав
§ Один человек в мейл-листе Salt жаловался, что его прогнали из
сообщества Ansible
§ В связи со всем этим:
§ Сообщество — это вы сами
§ Вам придется владеть кодом (скорее всего, всем)
§ Дружелюбность и компетентность оцените в зеркале
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Все СМ-системы системы похожи?
§ С большого расстояния — да
§ Если подойти поближе, то у них окажется
разный цвет и разная форма ушей
§ Кроме того, у каждой будет уникальный характер
Поговорим об уникальных отличиях
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
У каждой системы свой жаргон
На мой взгляд, это довольно глупая уникальность.
Но создателей CM-систем тоже можно понять –
они втайне хотят, чтобы остался только один игрок.
Раньше я приводил в докладах словарики этого жаргона.
Но, говоря о четырех системах сразу, я не вижу
смысла этого делать.
Теперь о действительно уникальном.
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
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
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Puppet: сделано для RHEL
§ В отличие от Chef, Puppet всегда таргетировался на RHEL-based
системы и нормально на них работал
§ Полная поддержка команд Augeas:
§
Augeas — это API и tool для управления конфигурационными файлами
§
Сhef с Augeas не работает вообще, Salt поддерживает только команду
«set», для Ansible есть сторонний модуль.
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Salt: сделано для быстрых и грязных
§ Клиенты держат постоянное соединение
с сервером
§ Очень удобно выполнять ad hoc команды
§ Исходно Salt — parallel execution tool
§ Сравните с тем, как параллельное исполнение
сделано, например, в Chef! (если вкратце,
оно там сделано очень плохо)
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Ansible: сделано для нас
§ Сервер — это не всегда сервер
§ Меньше забот о безопасности
§ Агента на управляемых хостах нет вообще!
§ Ничего не надо устанавливать, кроме
Python, все по SSH
§ OpenBSD? Да, конечно!
§ DragonflyBSD? Да, конечно!
§ SmartOS? Да, конечно!
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Ansible: момент истины
§ Честно говоря, до сегодняшней ночи я вообще не знал, что это такое
§ Но я знал, что такое SmartOS:
§ Потомок OpenSolaris
§ Запускается с флешки — часть каталогов read-only, конфигурация
восстанавливается хитрыми shell scripts, которые у всех свои и не работают
§ Используется у нас в инфраструктуре в качестве гипервизора и очень нам
нравится
§ Через сорок минут после прочтения Getting Started я мог управлять SmartOS при
помощи Ansible (и был очень, очень удивлен и рад этому)
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Всё вместе и я
§ Мой личный опыт использования:
§ Chef — 2 года
§ Puppet — 3 месяца
§ Salt — 9 месяцев
§ Ansible — менее суток
§ Можно ли мне верить?
§ Верить можно только исходным кодам приложения
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
Выводы:
§ Знать одну CM систему лучше, чем ни одной!
§ Знать несколько CM систем лучше, чем одну!
§ План не изменился
§ Но теперь у вас есть
схема магазина (я надеюсь)
§ Кстати, наша торговая точка
здесь http://gitinsky.com
Заходите!
Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
С вами был Александр Чистяков,
главный инженер Git in Sky
alex@gitinsky.com
http://gitinsky.com
http://meetup.com/DevOps-40
Пожалуйста, ваши вопросы.
Спасибо за внимание!

Contenu connexe

Tendances

Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаendeveit
 
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
 
Kolosov drupalconf2011 2_kolosov
Kolosov drupalconf2011 2_kolosovKolosov drupalconf2011 2_kolosov
Kolosov drupalconf2011 2_kolosovdrupalconf
 
Инструментарий начинающего разработчика Drupal.
Инструментарий начинающего разработчика Drupal.Инструментарий начинающего разработчика Drupal.
Инструментарий начинающего разработчика Drupal.PVasili
 
Chef Server не нужен? для DevOps-40
Chef Server не нужен? для DevOps-40Chef Server не нужен? для DevOps-40
Chef Server не нужен? для DevOps-40Stanislav Bogatyrev
 
My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25Alex Chistyakov
 
My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015Alex Chistyakov
 
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)Ontico
 
My talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConMy talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConAlex Chistyakov
 
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид ШирмановКомпонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид ШирмановMoscowJS
 
Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Ontico
 
Про бэкапы (не энтерпрайз!)
Про бэкапы (не энтерпрайз!)Про бэкапы (не энтерпрайз!)
Про бэкапы (не энтерпрайз!)Alex Chistyakov
 
Вредные советы для разработчиков
Вредные советы для разработчиковВредные советы для разработчиков
Вредные советы для разработчиковITCrowd Almaty
 
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько разRootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько разTimur Batyrshin
 
Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.Vladimir Malyk
 
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...Ontico
 

Tendances (20)

Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервиса
 
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
 
Kolosov drupalconf2011 2_kolosov
Kolosov drupalconf2011 2_kolosovKolosov drupalconf2011 2_kolosov
Kolosov drupalconf2011 2_kolosov
 
Drupal conf2011 2_kolosov
Drupal conf2011 2_kolosovDrupal conf2011 2_kolosov
Drupal conf2011 2_kolosov
 
Инструментарий начинающего разработчика Drupal.
Инструментарий начинающего разработчика Drupal.Инструментарий начинающего разработчика Drupal.
Инструментарий начинающего разработчика Drupal.
 
Chef Server не нужен? для DevOps-40
Chef Server не нужен? для DevOps-40Chef Server не нужен? для DevOps-40
Chef Server не нужен? для DevOps-40
 
My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25
 
My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015
 
Using Ansible
Using AnsibleUsing Ansible
Using Ansible
 
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
 
My talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConMy talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPCon
 
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид ШирмановКомпонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
 
Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)
 
Про бэкапы (не энтерпрайз!)
Про бэкапы (не энтерпрайз!)Про бэкапы (не энтерпрайз!)
Про бэкапы (не энтерпрайз!)
 
Chef @DevWeb
Chef @DevWebChef @DevWeb
Chef @DevWeb
 
Вредные советы для разработчиков
Вредные советы для разработчиковВредные советы для разработчиков
Вредные советы для разработчиков
 
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько разRootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
 
Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.
 
Крыша 2.0
Крыша 2.0Крыша 2.0
Крыша 2.0
 
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
 

En vedette

Vagrant и chef. от dev до deploy
Vagrant и chef. от dev до deployVagrant и chef. от dev до deploy
Vagrant и chef. от dev до deployzykin-ilya
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...IT-Portfolio
 
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...Alex Chistyakov
 
Мой modern Perl (весенняя встреча Piter United)
Мой modern Perl (весенняя встреча Piter United)Мой modern Perl (весенняя встреча Piter United)
Мой modern Perl (весенняя встреча Piter United)Alex Chistyakov
 
Выступление в DataArt на тему "Кто такие DevOps?"
Выступление в DataArt на тему "Кто такие DevOps?"Выступление в DataArt на тему "Кто такие DevOps?"
Выступление в DataArt на тему "Кто такие DevOps?"Alex Chistyakov
 
Презентация про DTrace на ADDconf в Минске
Презентация про DTrace на ADDconf в МинскеПрезентация про DTrace на ADDconf в Минске
Презентация про DTrace на ADDconf в МинскеAlex Chistyakov
 
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2rit2011
 
My talk on LeoFS, HappyDev 2014
My talk on LeoFS, HappyDev 2014My talk on LeoFS, HappyDev 2014
My talk on LeoFS, HappyDev 2014Alex Chistyakov
 
DevOps-40 meetup #7, Project FiFo
DevOps-40 meetup #7, Project FiFoDevOps-40 meetup #7, Project FiFo
DevOps-40 meetup #7, Project FiFoAlex Chistyakov
 
My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017Alex Chistyakov
 
My talk at CEE-SECR 2016
My talk at CEE-SECR 2016My talk at CEE-SECR 2016
My talk at CEE-SECR 2016Alex Chistyakov
 
Harry Potter and the Daemons of Berkeley
Harry Potter and the Daemons of BerkeleyHarry Potter and the Daemons of Berkeley
Harry Potter and the Daemons of BerkeleyAlex Chistyakov
 
My talk at YouCon Saratov 2016
My talk at YouCon Saratov 2016My talk at YouCon Saratov 2016
My talk at YouCon Saratov 2016Alex Chistyakov
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016Alex Chistyakov
 
My talk at Highload++ 2015
My talk at Highload++ 2015My talk at Highload++ 2015
My talk at Highload++ 2015Alex Chistyakov
 
My talk on Piter Py 2016
My talk on Piter Py 2016My talk on Piter Py 2016
My talk on Piter Py 2016Alex Chistyakov
 

En vedette (20)

Vagrant и chef. от dev до deploy
Vagrant и chef. от dev до deployVagrant и chef. от dev до deploy
Vagrant и chef. от dev до deploy
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Управление ок...
 
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...
 
Мой modern Perl (весенняя встреча Piter United)
Мой modern Perl (весенняя встреча Piter United)Мой modern Perl (весенняя встреча Piter United)
Мой modern Perl (весенняя встреча Piter United)
 
Выступление в DataArt на тему "Кто такие DevOps?"
Выступление в DataArt на тему "Кто такие DevOps?"Выступление в DataArt на тему "Кто такие DevOps?"
Выступление в DataArt на тему "Кто такие DevOps?"
 
Презентация про DTrace на ADDconf в Минске
Презентация про DTrace на ADDconf в МинскеПрезентация про DTrace на ADDconf в Минске
Презентация про DTrace на ADDconf в Минске
 
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2
Chef. кто на кухне хозяин. концепция devops. а,титов. зал 2
 
My talk on LeoFS, HappyDev 2014
My talk on LeoFS, HappyDev 2014My talk on LeoFS, HappyDev 2014
My talk on LeoFS, HappyDev 2014
 
DevOps-40 meetup #7, Project FiFo
DevOps-40 meetup #7, Project FiFoDevOps-40 meetup #7, Project FiFo
DevOps-40 meetup #7, Project FiFo
 
My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017
 
HBase on HappyDev 2013
HBase on HappyDev 2013HBase on HappyDev 2013
HBase on HappyDev 2013
 
My talk at CEE-SECR 2016
My talk at CEE-SECR 2016My talk at CEE-SECR 2016
My talk at CEE-SECR 2016
 
My talk at LVEE 2016
My talk at LVEE 2016My talk at LVEE 2016
My talk at LVEE 2016
 
Harry Potter and the Daemons of Berkeley
Harry Potter and the Daemons of BerkeleyHarry Potter and the Daemons of Berkeley
Harry Potter and the Daemons of Berkeley
 
My talk at YouCon Saratov 2016
My talk at YouCon Saratov 2016My talk at YouCon Saratov 2016
My talk at YouCon Saratov 2016
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016
 
My talk at Highload++ 2015
My talk at Highload++ 2015My talk at Highload++ 2015
My talk at Highload++ 2015
 
HBase on Dev{Highload}
HBase on Dev{Highload}HBase on Dev{Highload}
HBase on Dev{Highload}
 
On Docker
On DockerOn Docker
On Docker
 
My talk on Piter Py 2016
My talk on Piter Py 2016My talk on Piter Py 2016
My talk on Piter Py 2016
 

Similaire à Chef, Puppet, Salt, Ansible on SECON 2014

Ansible on a great Moscow DevOps CM battle
Ansible on a great Moscow DevOps CM battleAnsible on a great Moscow DevOps CM battle
Ansible on a great Moscow DevOps CM battleAlex Chistyakov
 
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
 
«​Масштабируемый DevOps​» Александр Колесень
«​Масштабируемый DevOps​» Александр Колесень«​Масштабируемый DevOps​» Александр Колесень
«​Масштабируемый DevOps​» Александр КолесеньIT Share
 
Application deployment & configuration management
Application deployment & configuration managementApplication deployment & configuration management
Application deployment & configuration managementAlexander Kirillov
 
Database automated deployment and versioning ...for smart people
Database automated deployment and versioning ...for smart peopleDatabase automated deployment and versioning ...for smart people
Database automated deployment and versioning ...for smart peopleAlexey Diyan
 
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...Serguei Gitinsky
 
Система управления конфигурациями Ansible
Система управления конфигурациями AnsibleСистема управления конфигурациями Ansible
Система управления конфигурациями AnsibleITCrowd Almaty
 
HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...Alexey Zinoviev
 
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...HappyDev
 
Frontendlab: Cравнить Несравнимое - Юлия Пучнина
Frontendlab: Cравнить Несравнимое  - Юлия ПучнинаFrontendlab: Cравнить Несравнимое  - Юлия Пучнина
Frontendlab: Cравнить Несравнимое - Юлия ПучнинаGeeksLab Odessa
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java DeveloperOlexandra Dmytrenko
 
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)Ontico
 
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...pgdayrussia
 
My talk on PgDay Russia 2014
My talk on PgDay Russia 2014My talk on PgDay Russia 2014
My talk on PgDay Russia 2014Alex Chistyakov
 
Визуализация покрытия автоматизированными UI тестами
Визуализация покрытия автоматизированными UI тестамиВизуализация покрытия автоматизированными UI тестами
Визуализация покрытия автоматизированными UI тестамиSQALab
 
SPA инструменты
SPA инструментыSPA инструменты
SPA инструментыRoman Dvornov
 
Cerebro general overiew rus
Cerebro general overiew rusCerebro general overiew rus
Cerebro general overiew rusCineSoft
 
Couchbase, что за зверь и на что способен.
Couchbase, что за зверь и на что способен.Couchbase, что за зверь и на что способен.
Couchbase, что за зверь и на что способен.Alexey Rusnak
 

Similaire à Chef, Puppet, Salt, Ansible on SECON 2014 (20)

Ansible on a great Moscow DevOps CM battle
Ansible on a great Moscow DevOps CM battleAnsible on a great Moscow DevOps CM battle
Ansible on a great Moscow DevOps CM battle
 
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
 
«​Масштабируемый DevOps​» Александр Колесень
«​Масштабируемый DevOps​» Александр Колесень«​Масштабируемый DevOps​» Александр Колесень
«​Масштабируемый DevOps​» Александр Колесень
 
Масштабируемый DevOps
Масштабируемый DevOpsМасштабируемый DevOps
Масштабируемый DevOps
 
Application deployment & configuration management
Application deployment & configuration managementApplication deployment & configuration management
Application deployment & configuration management
 
Применяем Ansible
Применяем AnsibleПрименяем Ansible
Применяем Ansible
 
Database automated deployment and versioning ...for smart people
Database automated deployment and versioning ...for smart peopleDatabase automated deployment and versioning ...for smart people
Database automated deployment and versioning ...for smart people
 
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
Perl, и с чем его едят. Доклад нашего Главного Инженера (ГИ) Александра Чистя...
 
Система управления конфигурациями Ansible
Система управления конфигурациями AnsibleСистема управления конфигурациями Ansible
Система управления конфигурациями Ansible
 
HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...
 
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
 
Frontendlab: Cравнить Несравнимое - Юлия Пучнина
Frontendlab: Cравнить Несравнимое  - Юлия ПучнинаFrontendlab: Cравнить Несравнимое  - Юлия Пучнина
Frontendlab: Cравнить Несравнимое - Юлия Пучнина
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java Developer
 
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
 
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...
PG Day'14 Russia, Нетрадиционный PostgreSQL: хранение бинарных данных в БД, А...
 
My talk on PgDay Russia 2014
My talk on PgDay Russia 2014My talk on PgDay Russia 2014
My talk on PgDay Russia 2014
 
Визуализация покрытия автоматизированными UI тестами
Визуализация покрытия автоматизированными UI тестамиВизуализация покрытия автоматизированными UI тестами
Визуализация покрытия автоматизированными UI тестами
 
SPA инструменты
SPA инструментыSPA инструменты
SPA инструменты
 
Cerebro general overiew rus
Cerebro general overiew rusCerebro general overiew rus
Cerebro general overiew rus
 
Couchbase, что за зверь и на что способен.
Couchbase, что за зверь и на что способен.Couchbase, что за зверь и на что способен.
Couchbase, что за зверь и на что способен.
 

Plus de Alex Chistyakov

My slides from DevOpsDays 2019
My slides from DevOpsDays 2019My slides from DevOpsDays 2019
My slides from DevOpsDays 2019Alex Chistyakov
 
My slides from BMM №3 May 2019
My slides from BMM №3 May 2019My slides from BMM №3 May 2019
My slides from BMM №3 May 2019Alex Chistyakov
 
My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019 My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019 Alex Chistyakov
 
My slides from SECR'2018
My slides from SECR'2018My slides from SECR'2018
My slides from SECR'2018Alex Chistyakov
 
My slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArtMy slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArtAlex Chistyakov
 
My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019Alex Chistyakov
 
My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019Alex Chistyakov
 
My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019Alex Chistyakov
 
Configuration management and Kubernetes
Configuration management and KubernetesConfiguration management and Kubernetes
Configuration management and KubernetesAlex Chistyakov
 
Python performance engineering in 2017
Python performance engineering in 2017Python performance engineering in 2017
Python performance engineering in 2017Alex Chistyakov
 
My talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGMMy talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGMAlex Chistyakov
 
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017Alex Chistyakov
 
My talk on GitHub open data at ITGM #10
 My talk on GitHub open data at ITGM #10 My talk on GitHub open data at ITGM #10
My talk on GitHub open data at ITGM #10Alex Chistyakov
 
My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017Alex Chistyakov
 

Plus de Alex Chistyakov (20)

My slides from DevOpsDays 2019
My slides from DevOpsDays 2019My slides from DevOpsDays 2019
My slides from DevOpsDays 2019
 
My slides from BMM №3 May 2019
My slides from BMM №3 May 2019My slides from BMM №3 May 2019
My slides from BMM №3 May 2019
 
My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019 My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019
 
My slides from SECR'2018
My slides from SECR'2018My slides from SECR'2018
My slides from SECR'2018
 
My slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArtMy slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArt
 
My slides from CC'2019
My slides from CC'2019My slides from CC'2019
My slides from CC'2019
 
My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019
 
My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019
 
My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019
 
Configuration management and Kubernetes
Configuration management and KubernetesConfiguration management and Kubernetes
Configuration management and Kubernetes
 
Ansible and other stuff
Ansible and other stuffAnsible and other stuff
Ansible and other stuff
 
Python performance engineering in 2017
Python performance engineering in 2017Python performance engineering in 2017
Python performance engineering in 2017
 
My talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGMMy talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGM
 
My talk at SECR 2017
My talk at SECR 2017My talk at SECR 2017
My talk at SECR 2017
 
On scaling teams
On scaling teamsOn scaling teams
On scaling teams
 
MariaDB workshop
MariaDB workshopMariaDB workshop
MariaDB workshop
 
Docker for JS people
Docker for JS peopleDocker for JS people
Docker for JS people
 
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
 
My talk on GitHub open data at ITGM #10
 My talk on GitHub open data at ITGM #10 My talk on GitHub open data at ITGM #10
My talk on GitHub open data at ITGM #10
 
My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017
 

Chef, Puppet, Salt, Ansible on SECON 2014

  • 1. Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible Александр Чистяков, главный инженер Git in Sky, 2014
  • 2. Давайте познакомимся, я: § Живу на Северо-Западе § Работаю главным инженером в компании Git in Sky § Занимаюсь поддержкой инфраструктуры разных проектов, больших и маленьких § Постоянно что-нибудь конфигурирую Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 3. Давайте познакомимся, Вы: § Занимаетесь разработкой веб-проектов? § Занимаетесь поддержкой веб-проектов? § Не занимаетесь? А чем занимаетесь? § Готов поспорить, вы немного конфигурируете? § Если нет, кто-то делает это за вас. § (Надеюсь, вы знаете, кто именно, и доверяете ему) Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 4. Зачем нужны CM системы? § Системы управления конфигурацией позволяют: § Управлять конфигурацией (сюрприз!) § Добиваться повторимости § Рассматривать конфигурацию как код § За что мы любим библиотеки? § Переиспользовать код, в том числе, и чужой Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 5. 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) Как видите, выбор есть! (Наверняка, я перечислил не всё) Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 6. Мужской справочник по СМ системам: § Задача: выбрать систему управления конфигурацией § План действий (два варианта): Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 7. Меня зовут Саша, и у меня есть проблема: Как решал эту задачу я: § Начало 2011-го, Puppet и Chef уже есть, выбираю из них § Не знаю ни Chef, ни Puppet, ни Ruby § Но! Про Puppet есть книга! § Книга — источник знаний? § Книга — показатель «взрослости» проекта! § http://goo.gl/MKe5Ni (опубликована Feb 4, 2008) Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 8. Назад в будущее: Я из 2011-го и эта же задача сейчас: § 2014: Puppet, Chef, Salt, Ansible, Fabric, ... § Про Chef есть книга...две книги...три книги § Про Puppet есть три книги...или больше? § (Packt Publishing — это круто!) § O_O Нужно менять критерии отбора! Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 9. Придумываем критерии: § Порог вхождения (низкий, высокий, средний) § Сложность развертывания (низкая, высокая, средняя) § Язык ядра проекта (Ruby, Python, C, Java, Prolog, ...) § Язык описания конфигурации (custom DSL, YAML, XML, eDSL, Ruby) § Парадигма описания конфигурации (императивная, декларативная) § Сложность поддерживания сервиса (низкая, высокая, средняя) § Ресурсоемкость (низкая, высокая, средняя) § Дружелюбность и компетентность сообщества § Классификация получилась очень субъективная и не очень стройная § Но другой у меня для вас нет (может, есть у вас для меня?) Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 10. Порог вхождения: Сильно зависит от вашего пути: § Я начинал с Puppet, и мне было сложно § Через три года мы вернулись - «так здесь же все понятно!» § Мы уже знали анатомию типичной CM системы § Мы знали, что именно нам необходимо (все CM системы похожи) § Новая информация про Puppet в сети, новые книги, etc Тем не менее, у разных систем порог вхождения разный Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 11. Порог вхождения: § Про CFEngine тоже есть книга § Я пытался читать ее, уже имея опыт с Puppet и Chef § Сначала я сломался прямо на оглавлении § Потом я не смог найти, как в CFEngine устроена генерация конфигов при помощи шаблонов § Так, до сих пор, и не знаю, возможно, никак не устроена § Да, я не хочу читать никакие книги, я хочу описывать конфигурацию, где мой «Getting started»? Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 12. «Getting started» Типичные действия: § Развернуть и настроить сервер, пусть в минимальном варианте (если сервер вообще предусмотрен) § Настроить агент на клиентских машинах, связать их с сервером § Начать описывать конфигурацию § Протестировать описание § Применить описание Казалось бы, пять простых пунктов! Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 13. Анатомия СМ-системы: § Сервер (если есть, обычно — есть) § Агент на клиентских узлах (если есть, часто — есть) § Описания конфигурации (хранятся на сервере, применяются на клиенте), состоят из: § Описаний установленных пакетов § Описаний разрешенных и запущенных сервисов § Шаблонов конфигурационных файлов и правил генерации § Описаний параметров сред (логических групп серверов) Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 14. Шаг 1: развернуть сервер Сервер нормального человека: Сервер курильщика (Chef): Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 15. Шаг 1: развернуть сервер § В настоящее время (после выхода Chef 11) любой CM сервер разворачивается через один-два однострочника § При этом количество компонентов Chef-сервера не уменьшилось — их там по-прежнему хватает на целую диаграмму Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 16. Шаг 2: настроить агент на клиентах § Плюс-минус однострочник для всех систем § Надо только решить, как будет работать агент: как постоянно загруженный сервис, либо через cron § В случае, если агент написан на Ruby, крайне рекомендую использовать cron § Кстати, в книге про Puppet так и написано: “используйте лучше cron” § Потому что Ruby-машина так устроена, что если что-то взяла, то обратно уже не отдаст Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 17. Шаг 3: описываем конфигурацию § Лучшее описание — декларативное § Сам процесс применения описания императивен из-за тяжелого наследия UNIX shell и других технологий 70-х § Выберите тот DSL, который вам будет понятнее (DSL курильщика тоже есть) § Привыкните к мысли, что никакого DSL не хватит и придется либо писать свои модули, либо исполнять ad hoc скрипты § По возможности, делайте их идемпотентными § Берите систему с тем языком ядра, который знаете — вам с ним еще интегрироваться, а, возможно, и патчи на ядро выпускать Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 18. DSL курильщика § В докладе Стаса Богатырева «Chef-сервер не нужен» есть отличный слайд, отображающий 15 разных мест в описании конфигурации, где могут быть объявлены атрибуты ноды (управляемой машины) § Описание конфигураций для Salt с применением Python, а не YAML — чистая магия, хотел с гордостью показать вам, как я это умею, но потом мне стало стыдно § Вообще, чем больше и сложнее описываемая конфигурация, тем больше метрика WTF/LOC при изучении ее описания § По субъективным ощущениям для описаний под Chef эта метрика будет, при прочих равных, наименьшей Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 19. Дружелюбность и компетентность сообщества § В трекере Chef до сих пор висят незакрытые проблемы от 2012-го года § Я попытался отправить патч в один из Chef cookbook'ов — через полгода (!) меня попросили подписать отказ от прав § Один человек в мейл-листе Salt жаловался, что его прогнали из сообщества Ansible § В связи со всем этим: § Сообщество — это вы сами § Вам придется владеть кодом (скорее всего, всем) § Дружелюбность и компетентность оцените в зеркале Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 20. Все СМ-системы системы похожи? § С большого расстояния — да § Если подойти поближе, то у них окажется разный цвет и разная форма ушей § Кроме того, у каждой будет уникальный характер Поговорим об уникальных отличиях Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 21. У каждой системы свой жаргон На мой взгляд, это довольно глупая уникальность. Но создателей CM-систем тоже можно понять – они втайне хотят, чтобы остался только один игрок. Раньше я приводил в докладах словарики этого жаргона. Но, говоря о четырех системах сразу, я не вижу смысла этого делать. Теперь о действительно уникальном. Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 22. 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 Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 23. Puppet: сделано для RHEL § В отличие от Chef, Puppet всегда таргетировался на RHEL-based системы и нормально на них работал § Полная поддержка команд Augeas: § Augeas — это API и tool для управления конфигурационными файлами § Сhef с Augeas не работает вообще, Salt поддерживает только команду «set», для Ansible есть сторонний модуль. Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 24. Salt: сделано для быстрых и грязных § Клиенты держат постоянное соединение с сервером § Очень удобно выполнять ad hoc команды § Исходно Salt — parallel execution tool § Сравните с тем, как параллельное исполнение сделано, например, в Chef! (если вкратце, оно там сделано очень плохо) Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 25. Ansible: сделано для нас § Сервер — это не всегда сервер § Меньше забот о безопасности § Агента на управляемых хостах нет вообще! § Ничего не надо устанавливать, кроме Python, все по SSH § OpenBSD? Да, конечно! § DragonflyBSD? Да, конечно! § SmartOS? Да, конечно! Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 26. Ansible: момент истины § Честно говоря, до сегодняшней ночи я вообще не знал, что это такое § Но я знал, что такое SmartOS: § Потомок OpenSolaris § Запускается с флешки — часть каталогов read-only, конфигурация восстанавливается хитрыми shell scripts, которые у всех свои и не работают § Используется у нас в инфраструктуре в качестве гипервизора и очень нам нравится § Через сорок минут после прочтения Getting Started я мог управлять SmartOS при помощи Ansible (и был очень, очень удивлен и рад этому) Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 27. Всё вместе и я § Мой личный опыт использования: § Chef — 2 года § Puppet — 3 месяца § Salt — 9 месяцев § Ansible — менее суток § Можно ли мне верить? § Верить можно только исходным кодам приложения Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 28. Выводы: § Знать одну CM систему лучше, чем ни одной! § Знать несколько CM систем лучше, чем одну! § План не изменился § Но теперь у вас есть схема магазина (я надеюсь) § Кстати, наша торговая точка здесь http://gitinsky.com Заходите! Сравнение современных средств управления конфигурацией: Chef, Puppet, SaltStack, Ansible. 2014
  • 29. С вами был Александр Чистяков, главный инженер Git in Sky alex@gitinsky.com http://gitinsky.com http://meetup.com/DevOps-40 Пожалуйста, ваши вопросы. Спасибо за внимание!