Соль как средство от боли:
SaltStack и его отличия от Chef
(c) Alexander Chistyakov,
Senior Cloud Engineer, Git in Sky
Докладчик
DevOps, что бы это ни значило
●
Ко-фаундер митапа DevOps-40
●
^ шутят ли в Сибири шутки про
смузи и коворкинг?
●
Ведущий (куда?) инженер
компании Git in Sky
●
Слушатели
Разрабатываете под веб?
●
Пишете код?
●
Придумываете архитектуру?
●
Тащите в проект MongoDB?
●
Эксплуатируете веб-проект?
●
Проклинаете MongoDB?
●
Кто же такие DevOps'ы?
Сильные и смелые люди
●
Которые борятся с хаосом
каждый день
●
Как бороться с хаосом?
Выкиньте MongoDB
●
Автоматизируйте!
●
Развертывание окружений
●
Генерацию конфигов
●
Запуск сервисов
●
Мониторинг
●
Как автоматизировать?
Есть специальные средства:
●
CFEngine
●
Puppet
●
Chef
●
SaltStack (http://saltstack.org)
●
Ansible
●
...
●
Ущипните меня, я сплю!
Никто не привез доклад про
Chef? Как такое возможно!
●
Chef – это такой “старший брат”,
на которого я буду постоянно
оглядываться
●
^ 1.5 с лишним года...
●
Как это работает?
Любая* система управления
конфигурацией выглядит как:
●
Сервер – хранилище шаблонов
и правил генерации
●
Клиент – активный агент,
применяющий правила
●
*не любая (chef-solo, etc)
●
Словарик
Chef
SaltStack
●
“cookbook” – “state”
●
“server”
– “master”
●
“node”
– “minion”
●
“recipe”
– “module”
●
knife
– salt
●
знание
– сила!
●
Как развернуть сервер?
●
●

SaltStack:
wget -O - http://bootstrap.saltstack.org | sudo sh -s -- -M

Chef 0.10.x:
●
Лучше не знать
●
Chef 0.11.x:
●
Скачать .deb-пакет
●
Поставить, вызвать скрипт
●
Как выглядит сервер?
●

SaltStack:

●

/usr/bin/python /usr/bin/salt-master (RES 26m*7 процессов)

Chef:
●
RabbitMQ, Solr, сервис на
Erlang, сервис на Ruby,
PostgreSQL
●
710m в общей сложности
●
Как установить клиент?
“Однострочники” и там, и там
●
Регистрация на сервере
●
В SaltStack:
●
salt-key -L – список ключей
●
salt-key -A – подтверждение
●
В Chef не сложнее
●
Как выглядит клиент?
●

В Chef (это какой-то баг):

●

В SaltStack:
один процесс, ~30m RES
●
Клиент Chef лучше не
запускать как сервис
●
Общение сервера и клиента
Chef:
●
REST API на сервере
●
Клиенты ходят по HTTP,
инициируют коммуникацию
сами
●
Salt – все иначе
●
Клиент и сервер в Salt
Salt начинался как parallel
execution tool
●
Клиент всегда соединен с
сервером через 0MQ
●
Коммуникацию всегда
инициирует сервер
●
Parallel execution
В Chef тоже возможно сделать
●
Но очень, очень неприятно
●
Через SSH – клиенты должны
быть доступны
●
Символические имена - DNS
●
Через рубишный SSH
●
^ А он очень плох
●
Как описать конфигурацию
В Chef – свой DSL поверх
обычного Ruby
●
Исполнить Chef-рецепты без
Ruby на клиенте нельзя!
●
В Chef сто разных способов
связать ноду с конфигом
●
^ Роль, рецепт, атрибуты
●
Как описать конфигурацию
В SaltStack – DSL поверх YAML
●
На практике без вставок на
Python не обойтись
●
Как управлять конфигурацией
В Chef – команда knife со
специальной ноды (в любом
месте)
●
В Salt – управление только с
сервера командой salt:
●
salt '*' state.highstate
●
Как выглядит конфигурация
В Salt:
●
/srv/salt/pillar – данные
●
/srv/salt/states – стейты
●
Данные – это тоже YAML,
который описывает
(внезапно) данные
●
Как выглядят стейты
●

states/top.sls:

base:
'*':
- ntp
'group1-*':
- apt
- platform
'group2-*':
- apt.dev
- platform
- mysql
- mongo

<- к чему применять
<- что применять
Как выглядят стейты
●

states/ntp/init.sls:

ntp:
<- имя реализации стейта
pkg:
<- имя стейта
- installed <- функция стейта
service:
- running
- enable: True
- require:
- pkg: ntp <- атрибут функции стейта
SaltStack лучше Chef?
Пока что я почти все время
хвалил SaltStack и ругал Chef
●
Но я не назвал доклад “Salt как
средство от Chef”
●
Если Salt во всем лучше, то
почему он не вытеснит
Chef?
●
Светлая сторона Chef
Кукбуки есть для решения
любой задачи
●
Внедрений гораздо больше
●
Процесс управления кукбуками
построен гораздо лучше
●
Есть юнит-тестирование
●
Управление кукбуками в Chef
Центральный репозиторий
●
knife cookbook site download
●
Другие репы – librarian-chef
●
^ Рубисты – это такой bundler
●
Ничего этого в Salt нет!
●
Кроме центральной репы
●
Темная сторона Salt
Проект очень молодой, в
документации есть не все
●
^ Глава про юнит-тестирование
состоит только из заголовка
●
Есть дружелюбный форум
●
С большим трафиком
●
Серебряной пули нет!
Chef – большие проекты,
выделенная роль “инженера по
кукбукам”, юнит-тестирование
кукбуков
●
Salt – небольшие проекты,
скорость, простота, ad-hoc
выполнение
●
Выводы
Рассмотрите возможность
использования SaltStack
●
Особенно, если раньше не
использовали ничего
●
^ тем более рассмотрите
●
Спасибо за внимание!
Вопросы?
●
С вами был:
●
Александр Чистяков,
инженер, Git in Sky,
координатор, DevOps-40
●

More Related Content

PDF
Chef, Puppet, Salt, Ansible on SECON 2014
PDF
SECON'2014 - Александр Чистяков - Сравнение современных средств управления ко...
PDF
Salt and Ansible - Python-based CM systems
PDF
Ansible on a great Moscow DevOps CM battle
PDF
Repeatability on DevOps-40 meetup Apr 2014
PDF
Optimization of a big PostgreSQL database
PDF
Performance engineering stories from #fdminicon Saransk
PDF
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Chef, Puppet, Salt, Ansible on SECON 2014
SECON'2014 - Александр Чистяков - Сравнение современных средств управления ко...
Salt and Ansible - Python-based CM systems
Ansible on a great Moscow DevOps CM battle
Repeatability on DevOps-40 meetup Apr 2014
Optimization of a big PostgreSQL database
Performance engineering stories from #fdminicon Saransk
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта

What's hot (20)

PDF
Ansible in the enterprise
PDF
Разработка API для большого, нагруженного сервиса
ODP
Chef Server не нужен? для DevOps-40
PPT
Kolosov drupalconf2011 2_kolosov
PPT
Drupal conf2011 2_kolosov
PPT
Инструментарий начинающего разработчика Drupal.
PDF
My talk on Salt and Ansible from DevConf 2014
PDF
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
PDF
Конструктор / Денис Паясь (Яндекс)
PPTX
Вредные советы для разработчиков
PDF
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
PDF
Современный фронтенд за 30 минут.
PDF
My talk on Hadoop stack operations engineering at OSPCon
PDF
Бэкенд, фронтенд — всё смешалось (nodkz)
PDF
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PDF
Про бэкапы (не энтерпрайз!)
ODP
My talk on Docker, Youcon 2015
PPTX
Chef @DevWeb
PDF
TК°Conf. Организация разработки Frontend. Виталий Слободин.
Ansible in the enterprise
Разработка API для большого, нагруженного сервиса
Chef Server не нужен? для DevOps-40
Kolosov drupalconf2011 2_kolosov
Drupal conf2011 2_kolosov
Инструментарий начинающего разработчика Drupal.
My talk on Salt and Ansible from DevConf 2014
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Конструктор / Денис Паясь (Яндекс)
Вредные советы для разработчиков
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Современный фронтенд за 30 минут.
My talk on Hadoop stack operations engineering at OSPCon
Бэкенд, фронтенд — всё смешалось (nodkz)
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
Про бэкапы (не энтерпрайз!)
My talk on Docker, Youcon 2015
Chef @DevWeb
TК°Conf. Организация разработки Frontend. Виталий Слободин.
Ad

Similar to SaltStack vs Chef, HappyDev 2013 (20)

PDF
Moscow DevOps meetup 18.05.13
PPTX
Готовим с шефом - используем Chef фреймворк для настройки виртуальных сред д...
PDF
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
PDF
Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...
KEY
Chef коротко об инфраструктуре
PDF
Истинный DevOps. Секрет 42.
PDF
Vagrant и chef. от dev до deploy
PPTX
PDF
PDF
Devconf-2015 Тестируем инфраструктуру как код
PDF
Тестируем инфраструктуру как код
PPTX
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
PDF
Презентация доклада Лавриненко
PDF
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
PDF
Михаил Юматов: SaltStack
PDF
Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...
PDF
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
PPTX
Готовим тестируемую инфраструктуру с Chef
PDF
Симаков Алексей - Системы управления кластерами
Moscow DevOps meetup 18.05.13
Готовим с шефом - используем Chef фреймворк для настройки виртуальных сред д...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными си...
Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...
Chef коротко об инфраструктуре
Истинный DevOps. Секрет 42.
Vagrant и chef. от dev до deploy
Devconf-2015 Тестируем инфраструктуру как код
Тестируем инфраструктуру как код
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Презентация доклада Лавриненко
CFEngine, Puppet, Chef, SAltStack and Ansible Failover'14
Михаил Юматов: SaltStack
Большая книга рецептов или часто задаваемые вопросы по управлению сложными пр...
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
Готовим тестируемую инфраструктуру с Chef
Симаков Алексей - Системы управления кластерами
Ad

More from Alex Chistyakov (20)

PDF
My slides from DevOpsDays 2019
PDF
My slides from BMM №3 May 2019
PDF
My slides from DevOps-40 meetup Jun 2019
PDF
My slides from SECR'2018
PDF
My slides from the first SPb SRE community meetup at DataArt
PDF
My slides from CC'2019
PDF
My slides from BMM №4 Nov 2019
PDF
My slides from DevOps-40 meetup Oct 2019
PDF
My slides from DevOps-40 meetup Dec 2019
PDF
Configuration management and Kubernetes
PDF
Ansible and other stuff
PDF
Python performance engineering in 2017
PDF
My talk at SPb SQA sub-meetup of ITGM
PDF
My talk at SECR 2017
PDF
On scaling teams
PDF
MariaDB workshop
PDF
Docker for JS people
PDF
My talk on GitHub open data at ITGM #10
PDF
My talk on DevOps :) at Stachka 2017
PDF
My talk on programming languages at SPbLUG Mar 2017
My slides from DevOpsDays 2019
My slides from BMM №3 May 2019
My slides from DevOps-40 meetup Jun 2019
My slides from SECR'2018
My slides from the first SPb SRE community meetup at DataArt
My slides from CC'2019
My slides from BMM №4 Nov 2019
My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Dec 2019
Configuration management and Kubernetes
Ansible and other stuff
Python performance engineering in 2017
My talk at SPb SQA sub-meetup of ITGM
My talk at SECR 2017
On scaling teams
MariaDB workshop
Docker for JS people
My talk on GitHub open data at ITGM #10
My talk on DevOps :) at Stachka 2017
My talk on programming languages at SPbLUG Mar 2017

SaltStack vs Chef, HappyDev 2013

  • 1. Соль как средство от боли: SaltStack и его отличия от Chef (c) Alexander Chistyakov, Senior Cloud Engineer, Git in Sky
  • 2. Докладчик DevOps, что бы это ни значило ● Ко-фаундер митапа DevOps-40 ● ^ шутят ли в Сибири шутки про смузи и коворкинг? ● Ведущий (куда?) инженер компании Git in Sky ●
  • 3. Слушатели Разрабатываете под веб? ● Пишете код? ● Придумываете архитектуру? ● Тащите в проект MongoDB? ● Эксплуатируете веб-проект? ● Проклинаете MongoDB? ●
  • 4. Кто же такие DevOps'ы? Сильные и смелые люди ● Которые борятся с хаосом каждый день ●
  • 5. Как бороться с хаосом? Выкиньте MongoDB ● Автоматизируйте! ● Развертывание окружений ● Генерацию конфигов ● Запуск сервисов ● Мониторинг ●
  • 6. Как автоматизировать? Есть специальные средства: ● CFEngine ● Puppet ● Chef ● SaltStack (http://saltstack.org) ● Ansible ● ... ●
  • 7. Ущипните меня, я сплю! Никто не привез доклад про Chef? Как такое возможно! ● Chef – это такой “старший брат”, на которого я буду постоянно оглядываться ● ^ 1.5 с лишним года... ●
  • 8. Как это работает? Любая* система управления конфигурацией выглядит как: ● Сервер – хранилище шаблонов и правил генерации ● Клиент – активный агент, применяющий правила ● *не любая (chef-solo, etc) ●
  • 9. Словарик Chef SaltStack ● “cookbook” – “state” ● “server” – “master” ● “node” – “minion” ● “recipe” – “module” ● knife – salt ● знание – сила! ●
  • 10. Как развернуть сервер? ● ● SaltStack: wget -O - http://bootstrap.saltstack.org | sudo sh -s -- -M Chef 0.10.x: ● Лучше не знать ● Chef 0.11.x: ● Скачать .deb-пакет ● Поставить, вызвать скрипт ●
  • 11. Как выглядит сервер? ● SaltStack: ● /usr/bin/python /usr/bin/salt-master (RES 26m*7 процессов) Chef: ● RabbitMQ, Solr, сервис на Erlang, сервис на Ruby, PostgreSQL ● 710m в общей сложности ●
  • 12. Как установить клиент? “Однострочники” и там, и там ● Регистрация на сервере ● В SaltStack: ● salt-key -L – список ключей ● salt-key -A – подтверждение ● В Chef не сложнее ●
  • 13. Как выглядит клиент? ● В Chef (это какой-то баг): ● В SaltStack: один процесс, ~30m RES ● Клиент Chef лучше не запускать как сервис ●
  • 14. Общение сервера и клиента Chef: ● REST API на сервере ● Клиенты ходят по HTTP, инициируют коммуникацию сами ● Salt – все иначе ●
  • 15. Клиент и сервер в Salt Salt начинался как parallel execution tool ● Клиент всегда соединен с сервером через 0MQ ● Коммуникацию всегда инициирует сервер ●
  • 16. Parallel execution В Chef тоже возможно сделать ● Но очень, очень неприятно ● Через SSH – клиенты должны быть доступны ● Символические имена - DNS ● Через рубишный SSH ● ^ А он очень плох ●
  • 17. Как описать конфигурацию В Chef – свой DSL поверх обычного Ruby ● Исполнить Chef-рецепты без Ruby на клиенте нельзя! ● В Chef сто разных способов связать ноду с конфигом ● ^ Роль, рецепт, атрибуты ●
  • 18. Как описать конфигурацию В SaltStack – DSL поверх YAML ● На практике без вставок на Python не обойтись ●
  • 19. Как управлять конфигурацией В Chef – команда knife со специальной ноды (в любом месте) ● В Salt – управление только с сервера командой salt: ● salt '*' state.highstate ●
  • 20. Как выглядит конфигурация В Salt: ● /srv/salt/pillar – данные ● /srv/salt/states – стейты ● Данные – это тоже YAML, который описывает (внезапно) данные ●
  • 21. Как выглядят стейты ● states/top.sls: base: '*': - ntp 'group1-*': - apt - platform 'group2-*': - apt.dev - platform - mysql - mongo <- к чему применять <- что применять
  • 22. Как выглядят стейты ● states/ntp/init.sls: ntp: <- имя реализации стейта pkg: <- имя стейта - installed <- функция стейта service: - running - enable: True - require: - pkg: ntp <- атрибут функции стейта
  • 23. SaltStack лучше Chef? Пока что я почти все время хвалил SaltStack и ругал Chef ● Но я не назвал доклад “Salt как средство от Chef” ● Если Salt во всем лучше, то почему он не вытеснит Chef? ●
  • 24. Светлая сторона Chef Кукбуки есть для решения любой задачи ● Внедрений гораздо больше ● Процесс управления кукбуками построен гораздо лучше ● Есть юнит-тестирование ●
  • 25. Управление кукбуками в Chef Центральный репозиторий ● knife cookbook site download ● Другие репы – librarian-chef ● ^ Рубисты – это такой bundler ● Ничего этого в Salt нет! ● Кроме центральной репы ●
  • 26. Темная сторона Salt Проект очень молодой, в документации есть не все ● ^ Глава про юнит-тестирование состоит только из заголовка ● Есть дружелюбный форум ● С большим трафиком ●
  • 27. Серебряной пули нет! Chef – большие проекты, выделенная роль “инженера по кукбукам”, юнит-тестирование кукбуков ● Salt – небольшие проекты, скорость, простота, ad-hoc выполнение ●
  • 28. Выводы Рассмотрите возможность использования SaltStack ● Особенно, если раньше не использовали ничего ● ^ тем более рассмотрите ●
  • 29. Спасибо за внимание! Вопросы? ● С вами был: ● Александр Чистяков, инженер, Git in Sky, координатор, DevOps-40 ●