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
Диванный иммутабельный девопс
Search
Sergey Ukustov
June 04, 2015
Programming
81
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Диванный иммутабельный девопс
Sergey Ukustov
June 04, 2015
More Decks by Sergey Ukustov
See All by Sergey Ukustov
Несоциалочка на Рельсах
ukstv
0
43
Other Decks in Programming
See All in Programming
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
APNsからLive Activityを開始する話
yumnumm
0
170
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
180
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
32k
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
450
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
160
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
410
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
220
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.6k
Featured
See All Featured
Become a Pro
speakerdeck
PRO
31
6.3k
Bash Introduction
62gerente
615
220k
Mind Mapping
helmedeiros
1
400
Claude Code のすすめ
schroneko
67
230k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
730
sira's awesome portfolio website redesign presentation
elsirapls
0
450
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Transcript
Consul,(Docker,(Packer(и( другие(модные(слова Диванный(девопс
Mesos,(Kubernetes,(Omega • Для(stateless*(и(сильно(распределённыхсервисов • Динамическое(распределение(сервисов(по(машинам • Внешнее(персистентное(хранилище(или(аналог(HDFS • Service(Discovery,(проксирование,(...(есть(всё. Но:
• Большой(и(толстый • Нужен,(когда(серверов(много • Вероятность,(что(какойRнибудь(из(них(в(данный(момент(упадёт(существенно( больше(нуля • Зоопарк:(MesosRDNS,(Marathon,(Aurora,(Chronos... *(Есть(способы(обойти
Мелочь(тоже(хочет • Service(Discovery • High(Availability • Без(портов(и(ip адресов(в(конфигах • Возможности(работать(без(доступа(к(кластеру
• Забыть(об(inventory Потому,(что(мелочь: • Статическое(распределение(сервисов(по(машинам
0:(Исходный(код • Вход • Исходники(в(системе(контроля(версий • Git • Выход •
Собранные(бинарные(артефакты(в(хранилище • Bintray • Gemfury • Или(исходники • Документация(по(необходимым(для(работы(переменным(окружения
1:(Приложение • Вход • Документация(по(необходимым(для(работы(переменным(окружения • Бинарные(артефакты • Или(исходный(код •
Выход • Контейнер • Docker(Hub • Документация(по(необходимым(параметрам(для(запуска(контейнера
2:(Машина • Вход • Приложения • Документация(по(необходимым(параметрам(для(запуска(контейнеров • Выход •
Образ(ВМ • Документация(по(необходимым(параметрам(для(запуска(машины
3:(Инфраструктура • Вход • Машины • Документация(по(необходимым(параметрам(для(запуска(машины • Зависимости(по(DNS,(EBS,... •
Выход • Развернутая(инфраструктура
Легко(накосячить • Service(Discovery • Прибить(порты(гвоздями • High(Availability • Прибить(ip гвоздями
• Без(портов(и(ip адресов(в(конфигах • ... • Возможности(работать(без(доступа(к(кластеру • Отдельный(сценарий(для(Vagrant • Забыть(об(inventory
Consul • Service(Discovery • HTTP • DNS • KV •
Проверки
0:(Исходный(код • Конфигурация(через(переменные(окружения • DATABASE_ADDRES=«postgres.consul.services» • Умение(читать(SRVRзаписи(в(DNS • postgres.consul.services ==(192.168.0.1:49035
• Dockerfile внутри(репозитория
1:(Приложение • ENTRYPOINT для(адекватного(останова(приложения • SIGTERM!
2:(Машина • Consul на(машине • А(не(в(контейнере • Рандомный маппинг портов
• Авторегистрация контейнера(в(Consul • Dcreg • consulRregistrator(только(–net=host умеет(! • Reuse(upstart(и(проверки(у(Consul • Consul template там,(где(нет(нормального(приложения • Статическое(распределение(сервисов
3:(Инфраструктура • Terraform • Ansible – это(такой(шелл • Consul(KV •
Сервисы • Счётчик(сервисов • Сохраненное(состояние!!