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
How To Make Our Staging Deployment 3x Faster
Search
KMKLabs
February 17, 2016
Technology
0
2k
How To Make Our Staging Deployment 3x Faster
Bagaimana proses improvement di KMK, bagaimana tim devops meng-improve proses deployment ke staging
KMKLabs
February 17, 2016
Tweet
Share
More Decks by KMKLabs
See All by KMKLabs
Understanding (a bit of) G1 GC
kmklabs
0
130
WebSocket Authentication on VIDIO.COM
kmklabs
0
1.4k
AudioVisual Assets in Vidio App
kmklabs
0
1.5k
Daily in the life of a TE in Vidio
kmklabs
0
680
Test Engineering - Life of a TE in BBM
kmklabs
0
110
BBM Wallet
kmklabs
0
530
Analytics
kmklabs
0
650
BBM Call Out 101
kmklabs
0
710
Introduction to GRPC
kmklabs
1
680
Other Decks in Technology
See All in Technology
IaaS/SaaS管理における SREの実践 - SRE Kaigi 2026
bbqallstars
3
1.2k
AWS Devops Agent ~ 自動調査とSlack統合をやってみた! ~
kubomasataka
3
300
システムのアラート調査をサポートするAI Agentの紹介/Introduction to an AI Agent for System Alert Investigation
taddy_919
2
1.3k
3分でわかる!新機能 AWS Transform custom
sato4mi
1
290
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
41k
AI時代、1年目エンジニアの悩み
jin4
1
140
みんなだいすきALB、NLBの 仕組みから最新機能まで総おさらい / Mastering ALB & NLB: Internal Mechanics and Latest Innovations
kaminashi
0
180
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
0
470
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
320
What happened to RubyGems and what can we learn?
mikemcquaid
0
180
レガシー共有バッチ基盤への挑戦 - SREドリブンなリアーキテクチャリングの取り組み
tatsukoni
0
150
20260129_CB_Kansai
takuyay0ne
1
250
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
430
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
720
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
230
Statistics for Hackers
jakevdp
799
230k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
420
Exploring anti-patterns in Rails
aemeredith
2
240
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Building the Perfect Custom Keyboard
takai
2
680
Marketing to machines
jonoalderson
1
4.6k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
110
Transcript
HOWTO MAKE OUR STAGING DEPLOYMENT 3x FASTER KMKLABS TechTalk
STAGING DEPLOYMENTS
STAGING DEPLOYMENTS Vidio-child-SCM-Poll VIDIO-TEST-PARENT Vidio Vidio-child-Tag-Rev staging_deploy_vidio
None
Hydra • 68% Ansible • Python Script, Bash Script, Doc,
Config
./hydra/canary/canary.py ENVIRONMENT
update_bastion list_migration_updates provision webserver deploy webserver update webserver canary_test tunnel_canary
elb disable_worker_cron_jobs autoscaling deploy workerserver update workerserver start_worker_cron_jobs canary_terminate
update_bastion git pull, peru sync list_migration_updates list all db migration
provision webserver deploy webserver update webserver canary_test tunnel_canary elb disable_worker_cron_jobs autoscaling deploy workerserver update workerserver start_worker_cron_jobs canary_terminate
update_bastion git pull, peru sync list_migration_updates list all db migration
provision webserver launch ec2 instance deploy webserver install services & dependencies update webserver update code, compile assets canary_test check port 80 ready or not tunnel_canary elb disable_worker_cron_jobs autoscaling deploy workerserver update workerserver start_worker_cron_jobs canary_terminate
update_bastion git pull, peru sync list_migration_updates list all db migration
provision webserver launch ec2 instance deploy webserver install services & dependencies update webserver update code, compile assets canary_test check port 80 ready or not tunnel_canary test by QA elb test using real traffic/users disable_worker_cron_jobs autoscaling deploy workerserver update workerserver start_worker_cron_jobs canary_terminate
update_bastion git pull, peru sync list_migration_updates list all db migration
provision webserver launch ec2 instance deploy webserver install services & dependencies update webserver update code, compile assets canary_test check port 80 ready or not tunnel_canary test by QA elb test using real traffic/users disable_worker_cron_jobs temporary remove cron jobs autoscaling create autoscaling group deploy workerserver install services & dependencies update workerserver update code start_worker_cron_jobs re-activate cron jobs canary_terminate terminate canary instance
update_bastion git pull, peru sync list_migration_updates list all db migration
provision webserver launch ec2 instance deploy webserver install services & dependencies update webserver update code, compile assets canary_test check port 80 ready or not tunnel_canary test by QA elb test using real traffic/users disable_worker_cron_jobs temporary remove cron jobs autoscaling create autoscaling group deploy workerserver install services & dependencies update workerserver update code start_worker_cron_jobs re-activate cron jobs canary_terminate terminate canary instance
staging deployment automated using jenkins
update_bastion git pull, peru sync list_migration_updates list all db migration
provision webserver launch ec2 instance deploy webserver install services & dependencies update webserver update code, compile assets canary_test check port 80 ready or not tunnel_canary test by QA elb test using real traffic/users disable_worker_cron_jobs temporary remove cron jobs autoscaling create autoscaling group deploy workerserver install services & dependencies update workerserver update code start_worker_cron_jobs re-activate cron jobs canary_terminate terminate canary instance Deployment using Canary script
update_bastion git pull, peru sync list_migration_updates list all db migration
provision webserver launch ec2 instance deploy webserver install services & dependencies update webserver update code, compile assets canary_test check port 80 ready or not tunnel_canary test by QA elb test using real traffic/users disable_worker_cron_jobs temporary remove cron jobs autoscaling create autoscaling group deploy workerserver install services & dependencies update workerserver update code start_worker_cron_jobs re-activate cron jobs canary_terminate terminate canary instance Staging Deployment using Jenkins
seconds minutes update_bastion 32.56 0.54 provision webserver 65.55 1.09 provision
workerserver 3.19 0.05 deploy webserver 370.92 6.18 deploy workerserver 167.82 2.80 update webserver 1045.03 17.42 update workerserver 70.99 1.18 autoscaling 163.62 2.73 sleep 600.00 10.00 canary_terminate 11.87 0.20 others 168.45 2.81 TOTAL 2700.00 45.00 Staging Deployment using Jenkins
#1 Provision using daily base image (5 Jan 2016)
seconds minutes second s minutes update_bastion 32.56 0.54 31.82 0.53
provision webserver 65.55 1.09 78.39 1.31 provision workerserver 3.19 0.05 2.80 0.05 deploy webserver 370.92 6.18 244.69 4.08 deploy workerserver 167.82 2.80 160.84 2.68 update webserver 1045.03 17.42 407.35 6.79 update workerserver 70.99 1.18 65.41 1.09 autoscaling 163.62 2.73 78.68 1.31 sleep 600.00 10.00 600.00 10.00 canary_terminate 11.87 0.20 11.91 0.20 others 168.45 2.81 178.11 2.97 TOTAL 2700.00 45.00 1860.00 31.00 Staging Deployment using Jenkins #1
#2 Remove “sleep” before canary_terminate (6 Jan 2016)
seconds minutes seconds minutes update_bastion 32.56 0.54 31.43 0.52 provision
webserver 65.55 1.09 82.70 1.38 provision workerserver 3.19 0.05 3.26 0.05 deploy webserver 370.92 6.18 243.48 4.06 deploy workerserver 167.82 2.80 180.27 3.00 update webserver 1045.03 17.42 392.55 6.54 update workerserver 70.99 1.18 70.87 1.18 autoscaling 163.62 2.73 142.41 2.37 sleep 600.00 10.00 0.00 0.00 canary_terminate 11.87 0.20 11.83 0.20 others 168.45 2.81 221.00 3.68 TOTAL 2700.00 45.00 1380.00 23.00 Staging Deployment using Jenkins #2
#3 Skip deploy webserver, deploy workerserver, if there
is no change in Hydra (11 Jan 2016)
seconds minutes seconds minutes update_bastion 32.56 0.54 31.08 0.52 provision
webserver 65.55 1.09 85.52 1.43 provision workerserver 3.19 0.05 2.95 0.05 deploy webserver 370.92 6.18 0.00 0.00 deploy workerserver 167.82 2.80 0.00 0.00 update webserver 1045.03 17.42 448.88 7.48 update workerserver 70.99 1.18 72.30 1.21 autoscaling 163.62 2.73 72.37 1.21 sleep 600.00 10.00 0.00 0.00 canary_terminate 11.87 0.20 11.81 0.20 others 168.45 2.81 235.09 3.92 TOTAL 2700.00 45.00 960.00 16.00 Staging Deployment using Jenkins #3
• Staging deployment vidio, before speedup process: 40 min ~
50 min • After speedup process: 12 min ~ 18 min • That’s 3x faster!
Ansible / Jenkins Code Demo
Any Question?
None