SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
Continuous deployment has proven to be a successful and even addicting part of Etsy's engineering culture. See where it's applicable, some of the tools that make it easy, and the kind of architectural change that it makes possible.
Continuous deployment has proven to be a successful and even addicting part of Etsy's engineering culture. See where it's applicable, some of the tools that make it easy, and the kind of architectural change that it makes possible.
11.
MTTR vs MTTF
● Cheaper for ● Cheaper for
electrons protons & neutrons
12.
MTTR vs MTTF
● Cheaper for ● Cheaper for
electrons protons & neutrons
● Cost prohibitive
for humans
13.
MTTR vs MTTF
● Cheaper for ● Cheaper for
electrons protons & neutrons
● Cost prohibitive
for humans
● Necessitates low
MTTD
14.
The Case of Electrons
● Consider a project that has 6 bugs
● continuous deployment testing misses 4
& deploys fixes in 4 hours
● monthly release testing misses only 2
& deploys fixes in 24 hours
● 16 hours of broken < 48 hours of broken
59.
Passing Time => Change
● Scale
● Product
● Technology
● Engineering Team
60.
Passing Time => Change
● Scale
● Product
● Technology
● Engineering Team
● The Correct Architecture Changes
61.
Examples
● Images From Twisted to PHP
● From PostgreSQL to MySQL Shards
62.
From Twisted to PHP
● Run Apache/PHP on a new port
63.
From Twisted to PHP
● Run Apache/PHP on a new port
● Implement one service in PHP
64.
From Twisted to PHP
● Run Apache/PHP on a new port
● Implement one service in PHP
● Ramp up users on new service
65.
From Twisted to PHP
● Run Apache/PHP on a new port
● Implement one service in PHP
● Ramp up users on new service
● Repeat for remaining services
66.
From Twisted to PHP
● Run Apache/PHP on a new port
● Implement one service in PHP
● Ramp up users on new service
● Repeat for remaining services
● Shut down Twisted version
67.
PostgreSQL to MySQL Shards
● Migrate table by table
68.
PostgreSQL to MySQL Shards
● Migrate table by table
● Teed writes to MySQL
69.
PostgreSQL to MySQL Shards
● Migrate table by table
● Teed writes to MySQL
● Backfill old data from PostgreSQL
70.
PostgreSQL to MySQL Shards
● Migrate table by table
● Teed writes to MySQL
● Backfill old data from PostgreSQL
● Verify data matches in both DBs
71.
PostgreSQL to MySQL Shards
● Migrate table by table
● Teed writes to MySQL
● Backfill old data from PostgreSQL
● Verify data matches in both DBs
● Ramp up users reading from MySQL
72.
PostgreSQL to MySQL Shards
● Migrate table by table
● Teed writes to MySQL
● Backfill old data from PostgreSQL
● Verify data matches in both DBs
● Ramp up users reading from MySQL
● Stop Postgres writes & drop tables
73.
Continuous Deploy Pattern
● Change in small steps
74.
Continuous Deploy Pattern
● Change in small steps
● Dark launch placeholder via config
75.
Continuous Deploy Pattern
● Change in small steps
● Dark launch placeholder via config
● Deploy to production while dark
76.
Continuous Deploy Pattern
● Change in small steps
● Dark launch placeholder via config
● Deploy to production while dark
● Maintain old & new in parallel
77.
Continuous Deploy Pattern
● Change in small steps
● Dark launch placeholder via config
● Deploy to production while dark
● Maintain old & new in parallel
● Ramp up to new architecture
78.
Continuous Deploy Pattern
● Change in small steps
● Dark launch placeholder via config
● Deploy to production while dark
● Maintain old & new in parallel
● Ramp up to new architecture
● Remove old architecture