SlideShare a Scribd company logo
1 of 39
Download to read offline
From Vagrant to production
Mark Eijsermans
HootSuite - Software Engineer
@markeijsermans
http://code.hootsuite.com
HootSuite
• 
• 
• 
• 
• 
• 
• 

Social media dashboard
8M users
40 people committing code
4 ops
AWS (2/3) & private cloud (1/3)
100M requests/day (hootsuite.com)
70M requests/day (ow.ly)
•  Monolithic web app (PHP)
•  Transitioning towards service oriented
architecture (Scala)
In the beginning

dev server
(LAMP)

smb

dev 1

svn

smb

dev 2

production
(LAMP)
In the beginning
Release anytime
•  Small team
•  Is intimately aware of prod
•  Low overhead to release

DevOps?
..a while later
web

web

web

web

web

web

web

web

svn

dev server

web

web

web

web

gearman
smb

gearman

0mq worker

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

cron

dev

dev

cron

dev

dev

cron

0mq worker

ops

ops

cron
..a while later

1 release / 2-4 weeks
• 
• 
• 
• 
• 

Medium sized team
Branching, pre-release code freezes
Only some devs knowledgeable of prod
Ops mostly handles deploy
Complicated process

Devs vs. Ops?
…and a few years more (now)
Vagrant
dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

dev

monolithic 
web app

dev

dev

dev

dev

dev

dev

dev

dev

ops

ops

ops





automate
build
test
QA

Service A

Service B

Service C

Service D
…and a few years more (now)
6 - 10 release / day
• 
• 
• 
• 
• 
• 

Larger team
No branching
Anyone deploys
Automated process
Commit to production in 15min
Much higher % of devs understand prod
Perfection is the enemy of good
•  You’re never going to get a perfect system
•  How far along are we?
•  How many things are actually:
•  Automated
•  Reproducible
•  In a state we want them to be

•  When can we start feeling good about it?
The move to artifacts
•  svn
•  svn mirror
•  PHP
•  phar
•  tar + zsync

•  Scala
•  debian packages
Dev

Build

Deploy

Jenkins
project code

unit test

create
artifact

Artifact Repo
build #124
build #123

smoke test

staging

dash4deploy

production

production
service A/B/C
Broke the build?

“I’m on it”
Vagrant
•  Working on a shared web server over
samba was simply painful
•  extremely volatile environment

•  Vagrant simply kicks ass
•  Dev / prod parity
•  Encourages experimentation
•  go ahead and try out that new X
Dev

Build

Deploy

Jenkins
project code
(vagrant)

unit test

create
artifact

Artifact Repo
build #124
build #123

smoke test

staging

dash4deploy

production

production
service A/B/C
Dev

Build

Deploy

Jenkins
project code
(vagrant)

Ansible

unit test

create
artifact

smoke test

build vagrant
box

Artifact Repo
vagrant.box
build #124
build #123

dash4deploy

production

production
service A/B/C

staging
Ansible (and why we love it)
…yes, use any CM, but why we chose Ansible:
•  New team members up to speed in a few days:
•  Gentle learning curve – YAML
•  Push over ssh - easy to understand

•  The more declarative it is, the more it documents
•  It's all about disseminating information

•  Agentless model suits immutable ephemeral instances
Digital archeology
Auditing our infrastructure
There are gems in that dirt
•  logs
•  you mean logs aren’t saved to /dev/null ?
•  app was rotating logs, vs. using logrotate

•  memcached, mongodb servers not all the same version

•  what the hell is server X for ???
Cache for gold
•  With configuration management gold images
become a caching layer to the build process
•  Private cloud - idle instances are cheap
•  AMI - need auto spinning to save $$$ & time
Simplify for sanity
•  200+ server types is hard to manage
•  Amortize the stack
•  Custom bespoke vs. generic appliances
Devs on call
•  Learning happens in production
•  Production is still running at 3am
“People who are really
serious about software should
make their own hardware”
Alan Kay
Devs on call
•  Is your monitoring and tooling truly effective?
•  Make sure they can ssh into the damn box! (if they

have to)
•  Throwing some poor dev onto a broken system
they know nothing about doesn't work
•  Choose your own adventure cookbooks
•  Create registry of specialists
Is this working?
Working out loud
•  Yammer (& HipChat for on call)
•  Tried IRC, was too silo’ed

•  5 whys post mortems
•  Accountability
•  Build fails - “I'm on it”
Learning happens in production
Thank you!
@markeijsermans
http://code.hootsuite.com

More Related Content

What's hot

DevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesAndreas Katzig
 
Delivering big content at NBC News with RavenDB
Delivering big content at NBC News with RavenDBDelivering big content at NBC News with RavenDB
Delivering big content at NBC News with RavenDBJohn Bennett
 
How DreamHost builds a Public Cloud with OpenStack
How DreamHost builds a Public Cloud with OpenStackHow DreamHost builds a Public Cloud with OpenStack
How DreamHost builds a Public Cloud with OpenStackCarl Perry
 
Devoxx PL 2018 - Microservices in action at the Dutch National Police
Devoxx PL 2018 - Microservices in action at the Dutch National PoliceDevoxx PL 2018 - Microservices in action at the Dutch National Police
Devoxx PL 2018 - Microservices in action at the Dutch National PoliceBert Jan Schrijver
 
Networking in the cloud: An SDN primer
Networking in the cloud: An SDN primerNetworking in the cloud: An SDN primer
Networking in the cloud: An SDN primerMidokura
 
London Hashicorp Meetup #22 - Congruent infrastructure @zopa by Ben Coughlan
London Hashicorp Meetup #22 - Congruent infrastructure @zopa by Ben CoughlanLondon Hashicorp Meetup #22 - Congruent infrastructure @zopa by Ben Coughlan
London Hashicorp Meetup #22 - Congruent infrastructure @zopa by Ben CoughlanBen Coughlan
 
A brief intro to nodejs
A brief intro to nodejsA brief intro to nodejs
A brief intro to nodejsJay Liu
 
Opinionated containers and the future of game servers by Brendan Fosberry
Opinionated containers and the future of game servers by Brendan FosberryOpinionated containers and the future of game servers by Brendan Fosberry
Opinionated containers and the future of game servers by Brendan FosberryDocker, Inc.
 
re:Cap RVA - A Recap of AWS re:Invent 2019
re:Cap RVA - A Recap of AWS re:Invent 2019re:Cap RVA - A Recap of AWS re:Invent 2019
re:Cap RVA - A Recap of AWS re:Invent 2019Ford Prior
 
Innovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXCInnovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXCkscaldef
 
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOpsSaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOpsSaltStack
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOpsRicard Clau
 
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...VMware Tanzu
 
Dublin JUG February 2018 - Microservices in action at the Dutch National Police
Dublin JUG February 2018 - Microservices in action at the Dutch National PoliceDublin JUG February 2018 - Microservices in action at the Dutch National Police
Dublin JUG February 2018 - Microservices in action at the Dutch National PoliceBert Jan Schrijver
 
Get There meetup March 2018 - Microservices in action at the Dutch National P...
Get There meetup March 2018 - Microservices in action at the Dutch National P...Get There meetup March 2018 - Microservices in action at the Dutch National P...
Get There meetup March 2018 - Microservices in action at the Dutch National P...Bert Jan Schrijver
 
Deploying microservices on AWS
Deploying microservices on AWSDeploying microservices on AWS
Deploying microservices on AWSMichael Haberman
 
Hashicorp at holaluz
Hashicorp at holaluzHashicorp at holaluz
Hashicorp at holaluzRicard Clau
 
Network Infrastructure as Code with Chef and Cisco
Network Infrastructure as Code with Chef and CiscoNetwork Infrastructure as Code with Chef and Cisco
Network Infrastructure as Code with Chef and CiscoMatt Ray
 
Scalable and reliable kubernetes on aws
Scalable and reliable kubernetes on awsScalable and reliable kubernetes on aws
Scalable and reliable kubernetes on awsApplatix
 
RavenDB embedded at massive scales
RavenDB embedded at massive scalesRavenDB embedded at massive scales
RavenDB embedded at massive scalesOren Eini
 

What's hot (20)

DevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile Games
 
Delivering big content at NBC News with RavenDB
Delivering big content at NBC News with RavenDBDelivering big content at NBC News with RavenDB
Delivering big content at NBC News with RavenDB
 
How DreamHost builds a Public Cloud with OpenStack
How DreamHost builds a Public Cloud with OpenStackHow DreamHost builds a Public Cloud with OpenStack
How DreamHost builds a Public Cloud with OpenStack
 
Devoxx PL 2018 - Microservices in action at the Dutch National Police
Devoxx PL 2018 - Microservices in action at the Dutch National PoliceDevoxx PL 2018 - Microservices in action at the Dutch National Police
Devoxx PL 2018 - Microservices in action at the Dutch National Police
 
Networking in the cloud: An SDN primer
Networking in the cloud: An SDN primerNetworking in the cloud: An SDN primer
Networking in the cloud: An SDN primer
 
London Hashicorp Meetup #22 - Congruent infrastructure @zopa by Ben Coughlan
London Hashicorp Meetup #22 - Congruent infrastructure @zopa by Ben CoughlanLondon Hashicorp Meetup #22 - Congruent infrastructure @zopa by Ben Coughlan
London Hashicorp Meetup #22 - Congruent infrastructure @zopa by Ben Coughlan
 
A brief intro to nodejs
A brief intro to nodejsA brief intro to nodejs
A brief intro to nodejs
 
Opinionated containers and the future of game servers by Brendan Fosberry
Opinionated containers and the future of game servers by Brendan FosberryOpinionated containers and the future of game servers by Brendan Fosberry
Opinionated containers and the future of game servers by Brendan Fosberry
 
re:Cap RVA - A Recap of AWS re:Invent 2019
re:Cap RVA - A Recap of AWS re:Invent 2019re:Cap RVA - A Recap of AWS re:Invent 2019
re:Cap RVA - A Recap of AWS re:Invent 2019
 
Innovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXCInnovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXC
 
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOpsSaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOps
 
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...
 
Dublin JUG February 2018 - Microservices in action at the Dutch National Police
Dublin JUG February 2018 - Microservices in action at the Dutch National PoliceDublin JUG February 2018 - Microservices in action at the Dutch National Police
Dublin JUG February 2018 - Microservices in action at the Dutch National Police
 
Get There meetup March 2018 - Microservices in action at the Dutch National P...
Get There meetup March 2018 - Microservices in action at the Dutch National P...Get There meetup March 2018 - Microservices in action at the Dutch National P...
Get There meetup March 2018 - Microservices in action at the Dutch National P...
 
Deploying microservices on AWS
Deploying microservices on AWSDeploying microservices on AWS
Deploying microservices on AWS
 
Hashicorp at holaluz
Hashicorp at holaluzHashicorp at holaluz
Hashicorp at holaluz
 
Network Infrastructure as Code with Chef and Cisco
Network Infrastructure as Code with Chef and CiscoNetwork Infrastructure as Code with Chef and Cisco
Network Infrastructure as Code with Chef and Cisco
 
Scalable and reliable kubernetes on aws
Scalable and reliable kubernetes on awsScalable and reliable kubernetes on aws
Scalable and reliable kubernetes on aws
 
RavenDB embedded at massive scales
RavenDB embedded at massive scalesRavenDB embedded at massive scales
RavenDB embedded at massive scales
 

Similar to From vagrant to production - Mark Eijsermans

John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudyJohn Adams
 
Chirp 2010: Scaling Twitter
Chirp 2010: Scaling TwitterChirp 2010: Scaling Twitter
Chirp 2010: Scaling TwitterJohn Adams
 
Security research over Windows #defcon china
Security research over Windows #defcon chinaSecurity research over Windows #defcon china
Security research over Windows #defcon chinaPeter Hlavaty
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UKRicard Clau
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talksRuslan Meshenberg
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitterRoger Xia
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...smallerror
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...xlight
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGroup
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAppDynamics
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Controlindiver
 
Scaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHPScaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHP120bi
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsAchievers Tech
 
OSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy HawkinsOSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy HawkinsNETWAYS
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel RidingChristian Posta
 
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20....Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...Javier García Magna
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemYi-Ting Cheng
 

Similar to From vagrant to production - Mark Eijsermans (20)

John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudy
 
Chirp 2010: Scaling Twitter
Chirp 2010: Scaling TwitterChirp 2010: Scaling Twitter
Chirp 2010: Scaling Twitter
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
 
Security research over Windows #defcon china
Security research over Windows #defcon chinaSecurity research over Windows #defcon china
Security research over Windows #defcon china
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UK
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talks
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitter
 
Fixing_Twitter
Fixing_TwitterFixing_Twitter
Fixing_Twitter
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
Dev Ops without the Ops
Dev Ops without the OpsDev Ops without the Ops
Dev Ops without the Ops
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Control
 
Scaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHPScaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHP
 
Scaling High Traffic Web Applications
Scaling High Traffic Web ApplicationsScaling High Traffic Web Applications
Scaling High Traffic Web Applications
 
OSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy HawkinsOSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy Hawkins
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel Riding
 
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20....Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails Ecosystem
 

More from Devopsdays

Dev opsdays scriptcode
Dev opsdays scriptcodeDev opsdays scriptcode
Dev opsdays scriptcodeDevopsdays
 
Zero to hero - Geoff Webb
Zero to hero - Geoff WebbZero to hero - Geoff Webb
Zero to hero - Geoff WebbDevopsdays
 
Letting go gavin - Mc Donald
Letting go gavin - Mc DonaldLetting go gavin - Mc Donald
Letting go gavin - Mc DonaldDevopsdays
 
Dw tpain - Gordon Klok
Dw tpain - Gordon KlokDw tpain - Gordon Klok
Dw tpain - Gordon KlokDevopsdays
 
Dev ops finishes what agile started - Manfred Moser
Dev ops finishes what agile started - Manfred MoserDev ops finishes what agile started - Manfred Moser
Dev ops finishes what agile started - Manfred MoserDevopsdays
 
Game of thrones - Jonathan Thorpe
Game of thrones - Jonathan ThorpeGame of thrones - Jonathan Thorpe
Game of thrones - Jonathan ThorpeDevopsdays
 
Heka - Rob Miller
Heka - Rob MillerHeka - Rob Miller
Heka - Rob MillerDevopsdays
 
Gaming dev ops - Eduardo Saito
Gaming dev ops - Eduardo SaitoGaming dev ops - Eduardo Saito
Gaming dev ops - Eduardo SaitoDevopsdays
 
From the classroom to the cloud a journey with node.js - Christopher Hogue
From the classroom to the cloud   a journey with node.js - Christopher HogueFrom the classroom to the cloud   a journey with node.js - Christopher Hogue
From the classroom to the cloud a journey with node.js - Christopher HogueDevopsdays
 
Dev ops at mobify - Kyle Young
Dev ops at mobify - Kyle YoungDev ops at mobify - Kyle Young
Dev ops at mobify - Kyle YoungDevopsdays
 
Your business needs devops, so don’t follow - Brian johnson
Your business needs devops, so don’t follow - Brian johnson Your business needs devops, so don’t follow - Brian johnson
Your business needs devops, so don’t follow - Brian johnson Devopsdays
 
Test kitchen 1.0 - Fletcher Nichol
Test kitchen 1.0 - Fletcher NicholTest kitchen 1.0 - Fletcher Nichol
Test kitchen 1.0 - Fletcher NicholDevopsdays
 
Living system or build factory - Chris Maxwell
Living system or build factory  - Chris MaxwellLiving system or build factory  - Chris Maxwell
Living system or build factory - Chris MaxwellDevopsdays
 
Dev ops lessons learned - Michael Collins
Dev ops lessons learned  - Michael CollinsDev ops lessons learned  - Michael Collins
Dev ops lessons learned - Michael CollinsDevopsdays
 
Building for operations - Reinhardt Quelle
Building for operations - Reinhardt QuelleBuilding for operations - Reinhardt Quelle
Building for operations - Reinhardt QuelleDevopsdays
 
Taking devops to the Next Level - Max Martin
Taking devops to the Next Level - Max MartinTaking devops to the Next Level - Max Martin
Taking devops to the Next Level - Max MartinDevopsdays
 
Sensu intro - Sean Porter
Sensu intro - Sean PorterSensu intro - Sean Porter
Sensu intro - Sean PorterDevopsdays
 
Ops for everyone - John Britton
Ops for everyone - John BrittonOps for everyone - John Britton
Ops for everyone - John BrittonDevopsdays
 
Effective monitoring with statsd - Alexis lê-quôc
Effective monitoring with statsd - Alexis lê-quôcEffective monitoring with statsd - Alexis lê-quôc
Effective monitoring with statsd - Alexis lê-quôcDevopsdays
 
Being healthy dev and ops in cookpad - Issei Naruta
Being healthy dev and ops in cookpad - Issei NarutaBeing healthy dev and ops in cookpad - Issei Naruta
Being healthy dev and ops in cookpad - Issei NarutaDevopsdays
 

More from Devopsdays (20)

Dev opsdays scriptcode
Dev opsdays scriptcodeDev opsdays scriptcode
Dev opsdays scriptcode
 
Zero to hero - Geoff Webb
Zero to hero - Geoff WebbZero to hero - Geoff Webb
Zero to hero - Geoff Webb
 
Letting go gavin - Mc Donald
Letting go gavin - Mc DonaldLetting go gavin - Mc Donald
Letting go gavin - Mc Donald
 
Dw tpain - Gordon Klok
Dw tpain - Gordon KlokDw tpain - Gordon Klok
Dw tpain - Gordon Klok
 
Dev ops finishes what agile started - Manfred Moser
Dev ops finishes what agile started - Manfred MoserDev ops finishes what agile started - Manfred Moser
Dev ops finishes what agile started - Manfred Moser
 
Game of thrones - Jonathan Thorpe
Game of thrones - Jonathan ThorpeGame of thrones - Jonathan Thorpe
Game of thrones - Jonathan Thorpe
 
Heka - Rob Miller
Heka - Rob MillerHeka - Rob Miller
Heka - Rob Miller
 
Gaming dev ops - Eduardo Saito
Gaming dev ops - Eduardo SaitoGaming dev ops - Eduardo Saito
Gaming dev ops - Eduardo Saito
 
From the classroom to the cloud a journey with node.js - Christopher Hogue
From the classroom to the cloud   a journey with node.js - Christopher HogueFrom the classroom to the cloud   a journey with node.js - Christopher Hogue
From the classroom to the cloud a journey with node.js - Christopher Hogue
 
Dev ops at mobify - Kyle Young
Dev ops at mobify - Kyle YoungDev ops at mobify - Kyle Young
Dev ops at mobify - Kyle Young
 
Your business needs devops, so don’t follow - Brian johnson
Your business needs devops, so don’t follow - Brian johnson Your business needs devops, so don’t follow - Brian johnson
Your business needs devops, so don’t follow - Brian johnson
 
Test kitchen 1.0 - Fletcher Nichol
Test kitchen 1.0 - Fletcher NicholTest kitchen 1.0 - Fletcher Nichol
Test kitchen 1.0 - Fletcher Nichol
 
Living system or build factory - Chris Maxwell
Living system or build factory  - Chris MaxwellLiving system or build factory  - Chris Maxwell
Living system or build factory - Chris Maxwell
 
Dev ops lessons learned - Michael Collins
Dev ops lessons learned  - Michael CollinsDev ops lessons learned  - Michael Collins
Dev ops lessons learned - Michael Collins
 
Building for operations - Reinhardt Quelle
Building for operations - Reinhardt QuelleBuilding for operations - Reinhardt Quelle
Building for operations - Reinhardt Quelle
 
Taking devops to the Next Level - Max Martin
Taking devops to the Next Level - Max MartinTaking devops to the Next Level - Max Martin
Taking devops to the Next Level - Max Martin
 
Sensu intro - Sean Porter
Sensu intro - Sean PorterSensu intro - Sean Porter
Sensu intro - Sean Porter
 
Ops for everyone - John Britton
Ops for everyone - John BrittonOps for everyone - John Britton
Ops for everyone - John Britton
 
Effective monitoring with statsd - Alexis lê-quôc
Effective monitoring with statsd - Alexis lê-quôcEffective monitoring with statsd - Alexis lê-quôc
Effective monitoring with statsd - Alexis lê-quôc
 
Being healthy dev and ops in cookpad - Issei Naruta
Being healthy dev and ops in cookpad - Issei NarutaBeing healthy dev and ops in cookpad - Issei Naruta
Being healthy dev and ops in cookpad - Issei Naruta
 

Recently uploaded

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

From vagrant to production - Mark Eijsermans

  • 1. From Vagrant to production Mark Eijsermans HootSuite - Software Engineer @markeijsermans http://code.hootsuite.com
  • 2. HootSuite •  •  •  •  •  •  •  Social media dashboard 8M users 40 people committing code 4 ops AWS (2/3) & private cloud (1/3) 100M requests/day (hootsuite.com) 70M requests/day (ow.ly)
  • 3. •  Monolithic web app (PHP) •  Transitioning towards service oriented architecture (Scala)
  • 4. In the beginning dev server (LAMP) smb dev 1 svn smb dev 2 production (LAMP)
  • 5. In the beginning Release anytime •  Small team •  Is intimately aware of prod •  Low overhead to release DevOps?
  • 6. ..a while later web web web web web web web web svn dev server web web web web gearman smb gearman 0mq worker dev dev dev dev dev dev dev dev dev dev dev dev dev dev dev dev dev dev dev dev dev cron dev dev cron dev dev cron 0mq worker ops ops cron
  • 7. ..a while later 1 release / 2-4 weeks •  •  •  •  •  Medium sized team Branching, pre-release code freezes Only some devs knowledgeable of prod Ops mostly handles deploy Complicated process Devs vs. Ops?
  • 8. …and a few years more (now) Vagrant dev dev dev dev dev dev dev dev dev dev dev dev dev dev dev dev dev dev dev monolithic web app dev dev dev dev dev dev dev dev ops ops ops automate build test QA Service A Service B Service C Service D
  • 9. …and a few years more (now) 6 - 10 release / day •  •  •  •  •  •  Larger team No branching Anyone deploys Automated process Commit to production in 15min Much higher % of devs understand prod
  • 10.
  • 11. Perfection is the enemy of good •  You’re never going to get a perfect system •  How far along are we? •  How many things are actually: •  Automated •  Reproducible •  In a state we want them to be •  When can we start feeling good about it?
  • 12. The move to artifacts •  svn •  svn mirror •  PHP •  phar •  tar + zsync •  Scala •  debian packages
  • 13. Dev Build Deploy Jenkins project code unit test create artifact Artifact Repo build #124 build #123 smoke test staging dash4deploy production production service A/B/C
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 22.
  • 23. Vagrant •  Working on a shared web server over samba was simply painful •  extremely volatile environment •  Vagrant simply kicks ass •  Dev / prod parity •  Encourages experimentation •  go ahead and try out that new X
  • 24. Dev Build Deploy Jenkins project code (vagrant) unit test create artifact Artifact Repo build #124 build #123 smoke test staging dash4deploy production production service A/B/C
  • 25. Dev Build Deploy Jenkins project code (vagrant) Ansible unit test create artifact smoke test build vagrant box Artifact Repo vagrant.box build #124 build #123 dash4deploy production production service A/B/C staging
  • 26.
  • 27.
  • 28. Ansible (and why we love it) …yes, use any CM, but why we chose Ansible: •  New team members up to speed in a few days: •  Gentle learning curve – YAML •  Push over ssh - easy to understand •  The more declarative it is, the more it documents •  It's all about disseminating information •  Agentless model suits immutable ephemeral instances
  • 30. Auditing our infrastructure There are gems in that dirt •  logs •  you mean logs aren’t saved to /dev/null ? •  app was rotating logs, vs. using logrotate •  memcached, mongodb servers not all the same version •  what the hell is server X for ???
  • 31. Cache for gold •  With configuration management gold images become a caching layer to the build process •  Private cloud - idle instances are cheap •  AMI - need auto spinning to save $$$ & time
  • 32. Simplify for sanity •  200+ server types is hard to manage •  Amortize the stack •  Custom bespoke vs. generic appliances
  • 33. Devs on call •  Learning happens in production •  Production is still running at 3am
  • 34. “People who are really serious about software should make their own hardware” Alan Kay
  • 35. Devs on call •  Is your monitoring and tooling truly effective? •  Make sure they can ssh into the damn box! (if they have to) •  Throwing some poor dev onto a broken system they know nothing about doesn't work •  Choose your own adventure cookbooks •  Create registry of specialists
  • 37. Working out loud •  Yammer (& HipChat for on call) •  Tried IRC, was too silo’ed •  5 whys post mortems •  Accountability •  Build fails - “I'm on it”
  • 38. Learning happens in production