Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
120
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
100
BBM Wallet
kmklabs
0
530
Analytics
kmklabs
0
650
BBM Call Out 101
kmklabs
0
700
Introduction to GRPC
kmklabs
1
670
Other Decks in Technology
See All in Technology
RAG/Agent開発のアップデートまとめ
taka0709
0
180
AIプラットフォームにおけるMLflowの利用について
lycorptech_jp
PRO
1
170
AWS Security Agentの紹介/introducing-aws-security-agent
tomoki10
0
300
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
180
SREには開発組織全体で向き合う
koh_naga
0
360
IAMユーザーゼロの運用は果たして可能なのか
yama3133
1
460
re:Invent2025 コンテナ系アップデート振り返り(+CloudWatchログのアップデート紹介)
masukawa
0
390
初めてのDatabricks AI/BI Genie
taka_aki
0
200
re:Invent 2025 ふりかえり 生成AI版
takaakikakei
1
210
MLflowで始めるプロンプト管理、評価、最適化
databricksjapan
1
250
評価駆動開発で不確実性を制御する - MLflow 3が支えるエージェント開発
databricksjapan
1
210
Jakarta Agentic AI Specification - Status and Future
reza_rahman
0
110
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Into the Great Unknown - MozCon
thekraken
40
2.2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
730
Facilitating Awesome Meetings
lara
57
6.7k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
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