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
Building Continuous Delivery - DevOps Way
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Andrey Rebrov
October 12, 2013
Programming
400
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Building Continuous Delivery - DevOps Way
Andrey Rebrov
October 12, 2013
More Decks by Andrey Rebrov
See All by Andrey Rebrov
Роадмап в тысячу ли начинается с первого брифа
andrebrov
1
79
Agile в распределенной команде - история it-стартапа продающего духи онлайн
andrebrov
1
240
Тестирование в Agile для больших команд: путь трансформации
andrebrov
1
230
DevOps от и до - что, зачем и как
andrebrov
0
170
Тестирование в Agile: Q&A
andrebrov
0
790
Карго-культ инструментов в DevOps
andrebrov
0
390
Грабли автоматизации тестирования мобильного веба с помощью Selenium 2
andrebrov
0
170
Как инженерные практики помогают экономить бизнесу
andrebrov
2
240
Не превращайте ваши логи в клинопись
andrebrov
1
260
Other Decks in Programming
See All in Programming
メールのエイリアス機能を履き違えない
isshinfunada
0
230
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
490
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
590
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
240
React本体のコードリーディング
high_g_engineer
1
140
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
140
5分で問診!Composer セキュリティ健康診断
codmoninc
0
900
the container ship “Apple Silicon”@WWDC26 Recap -Japan-\(region).swift
shingangan
0
110
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.7k
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
300
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.9k
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.4k
Featured
See All Featured
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
380
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
160
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.2k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
200
How STYLIGHT went responsive
nonsquared
100
6.2k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
480
Site-Speed That Sticks
csswizardry
13
1.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
310
Fireside Chat
paigeccino
42
4k
Skip the Path - Find Your Career Trail
mkilby
1
180
Transcript
Building deployment pipeline: DevOps way Андрей Ребров Инженерный тренер ScrumTrek
None
Continuous Deployment - Ожидание
Continuous Deployment - Реальность
Инструменты разработки != инструменты админов
Недоверие Ops к Dev
«Прохладные истории» сломанных стендов
Решение • Обеспечить прозрачность процесса • Обеспечить качество поставок •
Свести dev и ops в одном месте
Delivery Pipeline – наш выбор
Это тоже delivery pipeline
None
Culture Automation Measurement Sharing
Culture
Automation • CI Server • Code Analysis • Auto Tests
• Configuration Management
CI Server • Рассмотрим на примере Jenkins
Что нужно 1. Ставим pipeline plugin 2. Делаем dependency между
задачами 3. Создаем новый pipeline view 4. …. 5. Profit!
Альтернативы
Configuration Management • VM control • OS control • Installation
control • …
Как неправильно
Например
Vagrant Vagrant::Config.run do |config| config.vm.box = "precise32" config.vm.box_url = http://files.vagrantup.com/precise32.box
config.vm.network :hostonly, "192.168.33.10” config.vm.share_folder("v-web", "/vagrant/www", "./www", :nfs => true) config.vm.share_folder("v-db", "/vagrant/db", "./db", :nfs => true) config.vm.forward_port 80, 8080 config.vm.provision :shell, :inline => "apt-get update --fix- missing” end
Docker from ubuntu:12.10 run apt-get update run DEBIAN_FRONTEND=noninteractive apt-get install
-q -y python run DEBIAN_FRONTEND=noninteractive apt-get install -q -y python-pip run pip install django run DEBIAN_FRONTEND=noninteractive apt-get install -q -y curl run curl -L https://github.com/shykes/helloflask/archive/ master.tar.gz | tar -xzv run cd helloflask-master && pip install -r requirements.txt
Нужно больше инструментов!
Еще больше!
None
Что важно • Useful reports • Useful logging • Vizualisation
– Dashboards – Graphs – …
Работаем с логами
Node Node Logstash Elas.cSearch Kibana
Как можно все это собрать
Запуск Lumberjack /opt/lumberjack/bin/lumberjack -- host your.logstash.host -- port port-for- these-logs
--ssl-ca-path /etc/ssl/ logstash.pub Для генерации ключей на logstash сервере: openssl req -x509 -newkey rsa:2048 -keyout /etc/ ssl/ logstash.key -out /etc/ssl/logstash.pub - nodes -days 365
Конфигурируем Logstash #1 input { lumberjack { type => "apache-access"
port => 3338 ssl_certificate => "/etc/ssl/logstash.pub" ssl_key => "/etc/ssl/logstash.key" } }
Конфигурируем Logstash #2 filter { date { type => "apache-access"
timestamp => "dd/MMM/yyyy:HH:mm:ss Z" } }
Конфигурируем Logstash #3 output { elasticsearch { embedded => false
cluster => logs host => "172.28.2.2" index => "apache-%{+YYYY.MM}" type => "apache-access" } }
Запуск Logstash /usr/bin/java -jar /opt/logstash/logstash.jar agent -f <path-to- your.conf> -l
<path-to-where-you-want-the.log>
Конфигурируем Elasticsearch cluster.name: logs index.number_of_replicas: 0 path.data: /elasticsearch/data path.work: /elasticsearch/work
path.logs: /elasticsearch/logs bootstrap.mlockall: true discovery.zen.ping.multicast.enabled: false
Запускаем Elasticsearch ./bin/elasticsearch –f или в фоне ./bin/elasticsearch
Запускаем Kibana ruby kibana.rb
Визуализация
Что есть на рынке
Graphite output { graphite { host => "10.10.10.10" port =>
2003 type => "system-netstats" metrics => [ hosts.%{@source_host}.netstats.interfaces.%{iface}.rxpck_s, "%{rxpck_s}”] } }
Что на выходе
Twitter @andrebrov E-mail
[email protected]
Skype rebrov.andrey Вопросы?