Jon is co-founder & CTO of Pitchero heading up the technology team, but currently working across the whole business to make sure they have appropriate processes in place as they grow. Jon will explain how Pitchero have used DevOps practices over the last few years to improve both technical and business agility, covering both the people challenges as well as engineering detail.
http://www.leedsdevops.org.uk/post/152568213470/meetup-tuesday-15th-november-2016-at-the-odi
https://twitter.com/jonmilsom
https://twitter.com/PitcheroTech
https://twitter.com/leedsDevops/status/798608855781490688
https://twitter.com/techdiction/status/798607947680993280
5. “agility”
“ability of a system to rapidly respond to change by adapting
its initial stable configuration”
Wikipedia - Business agility
https://en.wikipedia.org/wiki/Business_agility
6. Examples
Things you can do if you have good agility
● Release software frequently and with confidence
● Develop new features without being bogged down by technical debt
● Onboard team members and bring them up to speed quickly
● Move systems between data centres / clouds
9. Configuration management
Before Time After Time
Get a new server
into prod
Runbook hours Ansible minutes
Setup local dev
environment
- days Vagrant & Ansible minutes
Create test server
for new software
version
Runbook
Individual log files
hours Ansible
Aggregated logging
minutes
15. Communication
“Business”
I need it yesterday, for free
What are you working on?
We can’t do our job unless you deliver
this
“Technology”
Not possible
Last weeks last emergency project
:(
16. Jared Dunn, Silicon Valley
http://www.theyoungfolks.com/wp-content/uploads/2014/05/episode-05-05-1024.jpg
19. Communication
Summary:
● Be transparent - increase visibility with other departments
● Communicate openly - good or bad
● Trust - remove unnecessary bottlenecks (self service where possible)
20. Communication
Summary:
● Be transparent - increase visibility with other departments
● Communicate openly - good or bad
● Trust - remove unnecessary bottlenecks (self service where possible)
“growing up”
30. The Database - why is this hard?
● Live transactional data
○ Always changing (writes), must be atomic & consistent i.e. NOT immutable!
● Size of data set
○ Hard (slow) to move around
● Changes to schema / indexes performed manually etc
○ Seen as high risk, hard to maintain across environments
31. The Database - problems we had/have
● Made changes in production, not replicated to other environments
○ Application now out of sync with database schema or indexes
● Accidently deleted data from production which was required for tests
○ Now tests fail & difficult to re-assemble required state of dataset
● Deployed schema changes with application changes & could not revert
○ Data set polluted based on application code, hard to reverse engineer
38. The Database - so far
1. Codified and version controlled changes to schema / indexes
2. Decouple tests from database contents (work in progress)
3. Deploy (backwards compatible) schema changes before code
45. Blue Sheep
1. “Responsive” feature toggle
Release the code without changing the UX
Users saw minimal change - we reduced risk
46. Blue Sheep
2. Re-built template by template
Continually delivered small chunks of work each sprint
Caught regressions & errors quickly
47. Blue Sheep - Tech results
● Refactored majority of public facing pages to use Laravel
● Implemented platform wide translations engine
● Converted frontend to be responsive
● Refactored CSS to use ITCSS / BEM principals
48. Blue Sheep - Business results
● Pages per session up 51%
● Session duration up 97%
● Bounce rate down 37%
● Marketing team now able to send out location specific campaigns
59. Personal examples
Me Team
Aim to work with (or hire) people
who are better than you / have
other skills
No longer “the best” Skillset increased & augmented
Everyone learns
Had a pull request rejected Feel like a n00b! Standards have increased
Trust people to make big
decisions
Scary to delegate Shared domain knowledge
Trusted & empowered
60.
61. “Leave your ego at the door”
#egoless technology teams
https://www.allaboutjazz.com/an-evening-with-a-legend-quincy-jones-quincy-jones-by-solomon-leflore.php
62. The Future
Codify entire infrastructure (currently just individual servers)
Continue to invest in reduction of tech debt
Remove noise from error logs
Consolidate monitoring & analytics
Increase quality and quantity of automated testing
Parallelise CI