Deploys per day
0
12.5
25
37.5
50
2013 2014 2015 2016 2017
Slide 6
Slide 6 text
Deploys per day
0
17.5
35
52.5
70
2012 2013 2014 2015 2016 2017
Intercom Embercom
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
In the beginning
• Intercom originally deployed to Heroku
• Built Muster in 2012
• Based on experience with similar tools at
previous companies
@eugeneius
Slide 9
Slide 9 text
Getting up to speed
• I joined Intercom in 2013, with no
experience in continuous deployment
• Came from a smaller company that
deployed code manually
• How hard could it be?
@eugeneius
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
Every change is automatically
deployed to production
@eugeneius
Slide 12
Slide 12 text
The latest change is automatically
deployed to production
@eugeneius
Slide 13
Slide 13 text
The latest change that passed CI is
automatically deployed to production
@eugeneius
Slide 14
Slide 14 text
The latest change that passed CI is
automatically deployed to production
unless the pipeline is locked or rolled back
@eugeneius
Slide 15
Slide 15 text
No content
Slide 16
Slide 16 text
(we haven’t implemented any of this)
@eugeneius
Slide 17
Slide 17 text
Build Deploy
@eugeneius
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
In the beginning
• Check out the code
• Run:
– bundle install
– rake assets:precompile
•
@eugeneius
Slide 20
Slide 20 text
Additional languages
• New Java service needed to be deployed
• Taught Muster about different project
types, configuration files…
• Added complexity, but unblocked the team
@eugeneius
Slide 21
Slide 21 text
Ruby upgrade problem
• Upgrade different apps at different times
• Use different version from Muster itself
• Containers… Heroku?
@eugeneius
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
No content
Slide 24
Slide 24 text
Deploying frontend apps
• Muster assumed the release would be
deployed and run on EC2 instances
• Doesn’t fit with frontend apps (Ember.js)
• Implemented an S3 deployment target
• Muster is now more complex (again!)
@eugeneius
Slide 25
Slide 25 text
Muster used to deploy itself
• Seemed awesome - dogfooding!
• It was (sometimes) not awesome
• Weird failure modes
@eugeneius
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
Why not buy it?
• Started in 2012, not many options
• Broad responsibilities: build, deployment,
infrastructure management…
• Have tried to replace individual
components, with mixed results
@eugeneius