1. TODAY BETTER THAN
YESTERDAY
A personal journey to implement Continuous Integration / Continuous Delivery at
autoTRADER.ca
DevOps MeetupVancouver
http://www.meetup.com/DevOps-Vancouver-BC-Canada/events/230821476/
2. DEVOPS AND ME
Development Manager for SHOES.COM
Was autoTRADER.ca Development Manager for 3 years
Read Phoenix Project book in 2012
Left autoTRADER.ca in November 2015
3. A PERSONAL STORY
Not smooth, many bumps along the way
Numerous setbacks
Not a blueprint of near ideal / perfect state
Weeks where I wonder if it was all worth it
4.
5.
6. CONTEXT - SPRING 2012
Read Phoenix Project – recommended by my boss
Manual deploy - one contractor knows
Difficult employee transferred to my department
Union environment
9pm production deploys, many go past midnight
Why did site crash? Oops, forgot X,Y, Z
Timespan between deploys wildly inconsistent
7. BEGINWITHTHE END IN MIND
What does management care about that continuous integration
/ continuous delivery provide?
1 deploy every 3-6 weeks …
Vs 1 deploy every 2 weeks
Vs 8 deploys a day
8. DEVOPS MUST BE INTHE BLOOD
A mindset, not a set of tools
Personnel changes
Process changes
9. BUMPS ALONGTHEWAY
Lead dev quit with prejudice
Resisting change
Demanding that change done in big bang fashion
Perfect surgery techniques used – patient dead
Doing this while also attempting to adopt full agile
My own shortcomings as manager
10. TOOLS AND PRACTICES
Git
Git-flow(ish)
Teamcity 8 as continuous integration tool
Octopus 1 as continuous delivery tool
Config management
11. RESULT
Consistent deploys every 2 weeks
Deploys start at 3pm, everyone leaves almost always before
6pm
Rollback process much easier
Much quicker in finding out whether it’s a code change or db
change that ‘broke the system’
CI / CD in place
12. IF I COULD DO IT OVER AGAIN
More emphasis on culture, personnel
Decoupling deployments from releases
Feature toggle
Dark launches
More emphasis on automated testing, dedicated CI
environment
Know when to push, when to take a breather (do no worse)
13. @SHOES.COM
Decoupling deployments from releases
Octopus 3 significant improve over Octopus 1
Full git-flow branching implementation
Git-flow is not end state, only intermediary
Semantic versioning
In progress
deploy multiple components of a system in 1 click
14.
15. Q & A
Reach me
http://ericlau.net
SHOES.COM recruitment
https://www.youtube.com/watch?v=UJjm0-2GqOU