mittens> .join
pushbot> You’re up: mittens
sasha> .join with mittens
pushbot> You’re up: mittens, sasha
sasha> .good
mittens> .good
pushbot> mittens, sasha: Everyone is ready
nassim> .join
pushbot> You’re now on staging
sasha> .good
mittens> .good
pushbot> You’re now on prod
sasha> .good
mittens> .good
mittens> .done
sasha> Thanks for driving, mittens!
pushbot> You’re up, nassim
Web Deploys
Are pretty fast (~20 min)
Happen many times a day (up to 50)
Frequent, small changes
Everyone responsible for monitoring
Driver responsible for pushing buttons and
herding
Easy to revert and back out
Deploy Culture
Transparent
Engineer-driven
Encourages collaboration
Reduces single points of failure
App Deploys
Are pretty slow (~6 hours)
Happen once every two weeks
Periodic, medium-large changes
Everyone responsible for monitoring?
Release manager responsible for pushing buttons and
herding
Hard to revert and back out
Web Deploys
App Deploys
App Deploy Tasks & Responsibilities
mittens + sasha | nassim
release managers
Release Managers, Sasha & Jen
Release Managers, Sasha & Jen
More release managers?
no
Better app deploy process?
yes!
bit.ly/how-etsy-ships-apps
Hi, my name is Sasha And I used to be an engineer at Etsy This is an adaptation of a blogpost I wrote three years ago Focuses on a transformation of app releases But before we continue, understand how Etsy ships web And when I talk about shipping web I’m really focusing on the social
engineering aspects I’m not going to talk about how Etsy takes new code
and deploys it to servers There’s a bunch of great blog posts by my
colleagues explaining that process I can point you to later Right, so
how does Etsy ship web?