Life Embetterment with Hundreds of Deployments a Week Friday, October 11, 13
May 12, 2015
Life Embetterment with Hundreds of Deployments
a Week
Friday, October 11, 13
Life Embetterment with Hundreds of Deployments
a Week Day
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Fall 2012
7 Developers
1 DevOps
150 M page views / month
Friday, October 11, 13
Using GitHub
Friday, October 11, 13
Abusing GitHub
Friday, October 11, 13
Friday, October 11, 13
Tests!
Friday, October 11, 13
Test coverage ~30%
Friday, October 11, 13
Friday, October 11, 13
Tests run 8-12 min
Friday, October 11, 13
Friday, October 11, 13
Deploying untested code
Friday, October 11, 13
Friday, October 11, 13
No concurrent deployments
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
One Friday night...
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Slow feedback
Fragile releases
Cumbersome process
Friday, October 11, 13
Slow feedback
Fragile releases
Cumbersome process
Friday, October 11, 13
statsd / graphite
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Slow feedback
Fragile releases
Cumbersome process
Friday, October 11, 13
Strange coincidence...
Friday, October 11, 13
When shipping new code
Friday, October 11, 13
When shipping new codeWhen shipping new code, always add tests
Friday, October 11, 13
When modifying old code
Friday, October 11, 13
When modifying old codeWhen modifying old code, always add tests
Friday, October 11, 13
Always add tests
Friday, October 11, 13
Eliminate random failures
Friday, October 11, 13
Pull Requests
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Release more often
Friday, October 11, 13
TextText
Git diff between currently deployed code and what will be deployed:
https://github.com/vinted/core/compare/d841b93...1167740
Friday, October 11, 13
TextText
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Slow feedback
Fragile releases
Cumbersome process
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Prepare release: 2 min 43 sec
Install gems: 42 sec
Stop jobs: 58 sec
Migrate database: 15 sec
Sync translations: 3 min 20 sec
Start jobs: 23 sec
Restart app: 24 min 12 sec
Total: 32 min 33 sec
Friday, October 11, 13
Friday, October 11, 13
Build on steroids
Friday, October 11, 13
Split builds
Friday, October 11, 13
Parallel tests
Friday, October 11, 13
Build on fast hardware
Friday, October 11, 13
Friday, October 11, 13
Build on fast hardware
Friday, October 11, 13
GC tuning
Ruby 2
Friday, October 11, 13
Use better tools
Friday, October 11, 13
Thin -> Unicorn
10x faster deploys
Friday, October 11, 13
Online database migrations
Friday, October 11, 13
Friday, October 11, 13
Put your build server to work
Friday, October 11, 13
Prepare everything upfront
Friday, October 11, 13
Deploy with Jenkins
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Auto deploy
Friday, October 11, 13
Instant feedback
Reliable releases
Automatic process
Friday, October 11, 13
Fall 2013
12 Developers
2 DevOps
500 M page views / month
Friday, October 11, 13
[13:09:08] Vinc:
Inbox is not under HTTPS!
[13:25:38] Vinc:
Yes, I see HTTPS, Thanks!
Friday, October 11, 13
Friday, October 11, 13
Friday, October 11, 13
Mindaugas Mozūrasgithub.com/mmozuras@mmozuras
Tomas Varaneckasgithub.com/spajus@spajus
Friday, October 11, 13
We’re hiring!
Friday, October 11, 13
Thank You!
Friday, October 11, 13