Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Соль как средство от боли: SaltStack и его отли...
Search
HappyDev'13
December 07, 2013
Programming
370
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Соль как средство от боли: SaltStack и его отличия от Chef
Александр Чистяков
HappyDev'13
December 07, 2013
More Decks by HappyDev'13
See All by HappyDev'13
Вводный доклад о процессах и ролях, требованиях и визуализации
happydev
0
220
Особенности разработки финансовых проектов
happydev
0
190
Domain Driven Design. Модель вместо требований
happydev
0
450
К черту менеджерские карго культы! Дайте нормальное ТЗ
happydev
0
230
Эволюция больших проектов. Опыт API Яндекс.Карт
happydev
1
460
Мастер класс «Управленческие поединки»
happydev
0
220
Лучшая client-side архитектура
happydev
1
290
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
happydev
0
590
Вводный доклад про SQL, NoSQL и других
happydev
0
300
Other Decks in Programming
See All in Programming
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
170
Next.js: The final boss of Web Performance
guaca
0
280
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
Railsバージョンを4倍にした話
optim
0
450
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
golang-bob.pdf
iwatsukayura
0
130
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
3
430
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
790
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
780
How to build a perfect <img>
jonoalderson
1
6.1k
Ruling the World: When Life Gets Gamed
codingconduct
0
400
My Coaching Mixtape
mlcsv
0
360
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
600
Balancing Empowerment & Direction
lara
6
1.3k
Google's AI Overviews - The New Search
badams
0
1.6k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
600
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Done Done
chrislema
187
17k
Rails Girls Zürich Keynote
gr2m
96
14k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.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