×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Michael Brunton-Spall Technical Architect Government Digital Service @bruntonspall
Slide 2
Slide 2 text
I'm a civil servant GDS Michael Brunton-Spall
Slide 3
Slide 3 text
GDS Michael Brunton-Spall
Slide 4
Slide 4 text
This isn’t the crown’s opinion on micro-services GDS Michael Brunton-Spall
Slide 5
Slide 5 text
Because everyone has an opinion GDS Michael Brunton-Spall
Slide 6
Slide 6 text
What am I not going to cover? GDS Michael Brunton-Spall
Slide 7
Slide 7 text
What are micro-services GDS Michael Brunton-Spall
Slide 8
Slide 8 text
How to develop them GDS Michael Brunton-Spall
Slide 9
Slide 9 text
Micro-service patterns GDS Michael Brunton-Spall
Slide 10
Slide 10 text
So what are micro-services? GDS Michael Brunton-Spall
Slide 11
Slide 11 text
Vertically aligned stacks that communicate via simple and standard interfaces GDS Michael Brunton-Spall
Slide 12
Slide 12 text
Ownership of data GDS Michael Brunton-Spall
Slide 13
Slide 13 text
Team ownership of code GDS Michael Brunton-Spall
Slide 14
Slide 14 text
Team ownership of code and runtime GDS Michael Brunton-Spall
Slide 15
Slide 15 text
Small is beautiful GDS Michael Brunton-Spall
Slide 16
Slide 16 text
Why are we all raving about them? GDS Michael Brunton-Spall
Slide 17
Slide 17 text
Because small owned systems can be updated more easily and frequently GDS Michael Brunton-Spall
Slide 18
Slide 18 text
Because teams can move fast and break stuff GDS Michael Brunton-Spall
Slide 19
Slide 19 text
Because teams can own the whole stack GDS Michael Brunton-Spall
Slide 20
Slide 20 text
So why do infrastructure teams hate them? GDS Michael Brunton-Spall
Slide 21
Slide 21 text
Because small owned systems can be updated more easily and frequently GDS Michael Brunton-Spall
Slide 22
Slide 22 text
Because teams can move fast and break stuff GDS Michael Brunton-Spall
Slide 23
Slide 23 text
Because teams can own the whole stack GDS Michael Brunton-Spall
Slide 24
Slide 24 text
“Microservices represent a new organisational model as much as a new architectural model” @JeffSussna GDS Michael Brunton-Spall
Slide 25
Slide 25 text
You (Engineering and Operations) exist purely for the benefit of the business GDS Michael Brunton-Spall
Slide 26
Slide 26 text
Micro-services can help you have a radical focus on delivering business value GDS Michael Brunton-Spall
Slide 27
Slide 27 text
The role of engineering and operations is changing GDS Michael Brunton-Spall
Slide 28
Slide 28 text
Operations is the constraint GDS Michael Brunton-Spall
Slide 29
Slide 29 text
Operations is perceived as the constraint GDS Michael Brunton-Spall
Slide 30
Slide 30 text
Micro-services in the small GDS Michael Brunton-Spall
Slide 31
Slide 31 text
How can we get started? GDS Michael Brunton-Spall
Slide 32
Slide 32 text
Start small GDS Michael Brunton-Spall
Slide 33
Slide 33 text
Automate infrastructure or containers GDS Michael Brunton-Spall
Slide 34
Slide 34 text
Base Image GDS Michael Brunton-Spall
Slide 35
Slide 35 text
Base Image = Ubuntu LTS GDS Michael Brunton-Spall
Slide 36
Slide 36 text
Base Image + Cloud Init GDS Michael Brunton-Spall
Slide 37
Slide 37 text
Cloud Init = "apt-get update; apt-get install xxx" GDS Michael Brunton-Spall
Slide 38
Slide 38 text
Base Image + Cloud Init + Deployed Application GDS Michael Brunton-Spall
Slide 39
Slide 39 text
Deployed Application = "wget URL_TO_JAR; java - jar application.jar" GDS Michael Brunton-Spall
Slide 40
Slide 40 text
Time to new server = 1-2 minutes GDS Michael Brunton-Spall
Slide 41
Slide 41 text
Why is this useful? GDS Michael Brunton-Spall
Slide 42
Slide 42 text
Developer stupidity should have a business impact GDS Michael Brunton-Spall
Slide 43
Slide 43 text
Monitoring tools that are easy to hook into GDS Michael Brunton-Spall
Slide 44
Slide 44 text
Developers can create a new metric and graph it GDS Michael Brunton-Spall
Slide 45
Slide 45 text
GDS Michael Brunton-Spall
Slide 46
Slide 46 text
"If it moves, graph it. If it doesn't move, graph it anyway just in case it does” @lozzd GDS Michael Brunton-Spall
Slide 47
Slide 47 text
Automate log aggregation GDS Michael Brunton-Spall
Slide 48
Slide 48 text
ElasticSearch, LogStash, Kibana GDS Michael Brunton-Spall
Slide 49
Slide 49 text
GDS Michael Brunton-Spall
Slide 50
Slide 50 text
Cloud-friendly databases GDS Michael Brunton-Spall
Slide 51
Slide 51 text
Automate deployments GDS Michael Brunton-Spall
Slide 52
Slide 52 text
GDS Michael Brunton-Spall
Slide 53
Slide 53 text
GDS Michael Brunton-Spall
Slide 54
Slide 54 text
GDS Michael Brunton-Spall
Slide 55
Slide 55 text
Hand the keys for deployment to developers GDS Michael Brunton-Spall
Slide 56
Slide 56 text
Keep logs of deploys GDS Michael Brunton-Spall
Slide 57
Slide 57 text
GDS Michael Brunton-Spall
Slide 58
Slide 58 text
(Graph them even!) GDS Michael Brunton-Spall
Slide 59
Slide 59 text
GDS Michael Brunton-Spall
Slide 60
Slide 60 text
Alerting GDS Michael Brunton-Spall
Slide 61
Slide 61 text
(Sensu Screenshot) GDS Michael Brunton-Spall
Slide 62
Slide 62 text
Give developers pagers too GDS Michael Brunton-Spall
Slide 63
Slide 63 text
Developers should be exposed to the pain they cause GDS Michael Brunton-Spall
Slide 64
Slide 64 text
Developers having root on their service? GDS Michael Brunton-Spall
Slide 65
Slide 65 text
"You break it, you fix it" GDS Michael Brunton-Spall
Slide 66
Slide 66 text
"You break it and cost £X million, you take the blame" GDS Michael Brunton-Spall
Slide 67
Slide 67 text
Automate Infrastructure Monitoring tools Log aggregation Databases Automated deployments Alerting GDS Michael Brunton-Spall
Slide 68
Slide 68 text
These are all solved problems GDS Michael Brunton-Spall
Slide 69
Slide 69 text
You are not *that* special GDS Michael Brunton-Spall
Slide 70
Slide 70 text
Most of what you do is wrapping libraries and other peoples code GDS Michael Brunton-Spall
Slide 71
Slide 71 text
Pareto principle GDS Michael Brunton-Spall
Slide 72
Slide 72 text
You now have a single, well supported micro service GDS Michael Brunton-Spall
Slide 73
Slide 73 text
Microservices in the large GDS Michael Brunton-Spall
Slide 74
Slide 74 text
Microservices are going to fail in more spectacular ways than equivalent monoliths GDS Michael Brunton-Spall
Slide 75
Slide 75 text
Simple GDS Michael Brunton-Spall
Slide 76
Slide 76 text
Simple Complicated GDS Michael Brunton-Spall
Slide 77
Slide 77 text
Simple Complicated Complex GDS Michael Brunton-Spall
Slide 78
Slide 78 text
Diagnosis tools GDS Michael Brunton-Spall
Slide 79
Slide 79 text
Someone will have to do diagnosis across all the services GDS Michael Brunton-Spall
Slide 80
Slide 80 text
How are services monitored? GDS Michael Brunton-Spall
Slide 81
Slide 81 text
Shallow Check - Is my service working GDS Michael Brunton-Spall
Slide 82
Slide 82 text
Deep check - Are my dependencies working? GDS Michael Brunton-Spall
Slide 83
Slide 83 text
Average response time isn't enough GDS Michael Brunton-Spall
Slide 84
Slide 84 text
90%, 95%, 99% as well GDS Michael Brunton-Spall
Slide 85
Slide 85 text
Distributed systems need to embrace failure GDS Michael Brunton-Spall
Slide 86
Slide 86 text
Partitions are network breaks and latency spikes GDS Michael Brunton-Spall
Slide 87
Slide 87 text
Timeouts are tricky, use with care GDS Michael Brunton-Spall
Slide 88
Slide 88 text
Standardise admin interfaces GDS Michael Brunton-Spall
Slide 89
Slide 89 text
Alerting tools GDS Michael Brunton-Spall
Slide 90
Slide 90 text
If citizens can’t submit a claim at 1am because the mainframe is down, who’s problem is that? GDS Michael Brunton-Spall
Slide 91
Slide 91 text
You still need 1st line support and triage GDS Michael Brunton-Spall
Slide 92
Slide 92 text
What about when the developers get bored? (They do that!) GDS Michael Brunton-Spall
Slide 93
Slide 93 text
Maturity model for support? GDS Michael Brunton-Spall
Slide 94
Slide 94 text
System must have < N faults in M weeks and complete run book to be handed off GDS Michael Brunton-Spall
Slide 95
Slide 95 text
Systems that have more than N faults in M weeks get handed back GDS Michael Brunton-Spall
Slide 96
Slide 96 text
Who pays for this support? GDS Michael Brunton-Spall
Slide 97
Slide 97 text
Operations teams should act like consultants GDS Michael Brunton-Spall
Slide 98
Slide 98 text
"You want an elastic search cluster, sure we'll help you …” GDS Michael Brunton-Spall
Slide 99
Slide 99 text
"... if we can document and automate it (+20% effort)" GDS Michael Brunton-Spall
Slide 100
Slide 100 text
Pioneers pay the cost GDS Michael Brunton-Spall
Slide 101
Slide 101 text
Settlers pave the roads behind GDS Michael Brunton-Spall
Slide 102
Slide 102 text
Everyone else follows GDS Michael Brunton-Spall
Slide 103
Slide 103 text
Don't forget to keep the lights on at the monolith GDS Michael Brunton-Spall
Slide 104
Slide 104 text
Michael Brunton-Spall Technical Architect Government Digital Service @bruntonspall