Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Соль как средство от боли: SaltStack и его отли...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
HappyDev'13
December 07, 2013
Programming
0
350
Соль как средство от боли: SaltStack и его отличия от Chef
Александр Чистяков
HappyDev'13
December 07, 2013
Tweet
Share
More Decks by HappyDev'13
See All by HappyDev'13
Вводный доклад о процессах и ролях, требованиях и визуализации
happydev
0
210
Особенности разработки финансовых проектов
happydev
0
180
Domain Driven Design. Модель вместо требований
happydev
0
430
К черту менеджерские карго культы! Дайте нормальное ТЗ
happydev
0
220
Эволюция больших проектов. Опыт API Яндекс.Карт
happydev
1
450
Мастер класс «Управленческие поединки»
happydev
0
210
Лучшая client-side архитектура
happydev
1
290
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
happydev
0
580
Вводный доклад про SQL, NoSQL и других
happydev
0
290
Other Decks in Programming
See All in Programming
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
150
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
230
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
470
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
620
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
180
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
今から始めるClaude Code超入門
448jp
8
9.1k
高速開発のためのコード整理術
sutetotanuki
1
410
CSC307 Lecture 02
javiergs
PRO
1
780
Oxlint JS plugins
kazupon
1
1k
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.8k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
130
Scaling GitHub
holman
464
140k
How to Talk to Developers About Accessibility
jct
2
140
Building a Scalable Design System with Sketch
lauravandoore
463
34k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
180
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
77
Site-Speed That Sticks
csswizardry
13
1.1k
Prompt Engineering for Job Search
mfonobong
0
160
Evolving SEO for Evolving Search Engines
ryanjones
0
130
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
160
Speed Design
sergeychernyshev
33
1.5k
Transcript
Соль как средство от боли: 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