Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Соль как средство от боли: SaltStack и его отли...
Search
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
170
Domain Driven Design. Модель вместо требований
happydev
0
430
К черту менеджерские карго культы! Дайте нормальное ТЗ
happydev
0
210
Эволюция больших проектов. Опыт API Яндекс.Карт
happydev
1
450
Мастер класс «Управленческие поединки»
happydev
0
210
Лучшая client-side архитектура
happydev
1
280
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
happydev
0
570
Вводный доклад про SQL, NoSQL и других
happydev
0
280
Other Decks in Programming
See All in Programming
【Streamlit x Snowflake】データ基盤からアプリ開発・AI活用まで、すべてをSnowflake内で実現
ayumu_yamaguchi
1
120
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
510
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
390
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
300
俺流レスポンシブコーディング 2025
tak_dcxi
14
8.9k
認証・認可の基本を学ぼう前編
kouyuume
0
250
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
120
TestingOsaka6_Ozono
o3
0
170
AIコーディングエージェント(NotebookLM)
kondai24
0
200
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
430
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
2
220
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
130
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
A designer walks into a library…
pauljervisheath
210
24k
Building Adaptive Systems
keathley
44
2.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.7k
Designing for humans not robots
tammielis
254
26k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Building Applications with DynamoDB
mza
96
6.8k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
980
Side Projects
sachag
455
43k
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