building systems that are never done - goto...
TRANSCRIPT
![Page 2: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/2.jpg)
2
never done
![Page 3: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/3.jpg)
3
never done
Incomplete
adjective not having all the necessary or appropriate parts
![Page 4: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/4.jpg)
3
never done
Incomplete
adjective not having all the necessary or appropriate parts
![Page 5: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/5.jpg)
4
never done
![Page 6: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/6.jpg)
4
“This, milord, is my family's axe. We have owned it for almost nine hundred years, see. Of course, sometimes it needed a new blade. And sometimes it has required a new handle, new designs on the metalwork, a little refreshing of the ornamentation . . . but is this not the nine hundred-year-old axe of my family? And because it has changed gently over time, it is still a pretty good axe, y'know. Pretty good.”
never done
![Page 7: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/7.jpg)
5
microservices should be:
cheap to replace
and should allow us to go as “fast as possible”?
quick to scale
able to withstand failure
![Page 8: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/8.jpg)
6
“the first post-devops architectural style”Neal Ford
![Page 9: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/9.jpg)
7
replaceable component architecturesDan North
![Page 10: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/10.jpg)
8
the future is scary
![Page 11: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/11.jpg)
9
"ever accelerating progress of technology and changes in the mode of human life, which gives the appearance of approaching some essential singularity in the history of the race beyond which human affairs, as we know them, could not continue”
John von Neumann, as recorded by Ulam, 1958
![Page 12: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/12.jpg)
10
![Page 13: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/13.jpg)
11
Singularity
![Page 14: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/14.jpg)
11
SingularityJavaScript
![Page 15: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/15.jpg)
11
SingularityJavaScript
Container
![Page 16: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/16.jpg)
11
SingularityJavaScriptLog aggregation
Container
![Page 17: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/17.jpg)
12
even closer to home
![Page 18: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/18.jpg)
HOW WE DESIGN SOFTWARE IS CHANGING
13
![Page 19: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/19.jpg)
14
![Page 20: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/20.jpg)
15
Hardest things to do:
![Page 21: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/21.jpg)
15
Hardest things to do: End-to-end testing
![Page 22: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/22.jpg)
15
Hardest things to do: End-to-end testing
Independent deployment
![Page 23: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/23.jpg)
15
Hardest things to do: End-to-end testing
Independent deployment
Service versioning / evolution
![Page 24: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/24.jpg)
TESTING MICROSERVICES IS HARD
16
Service A
Service
Large
Medium
Small
![Page 25: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/25.jpg)
TESTING MICROSERVICES IS HARD
16
Service A
Service
Large
Medium
Small
![Page 26: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/26.jpg)
Service Stub
TESTING MICROSERVICES IS HARD
16
Service A
Large
Medium
Small
![Page 27: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/27.jpg)
INTEGRATING MICROSERVICES IS HARD
17
![Page 28: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/28.jpg)
INTEGRATING MICROSERVICES IS HARD
17
Integration Test
![Page 29: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/29.jpg)
INTEGRATING MICROSERVICES IS HARD
17
Integration Test Prod…
![Page 30: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/30.jpg)
INTEGRATING MICROSERVICES IS HARD
17
Integration Test Prod…
![Page 31: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/31.jpg)
INTEGRATING MICROSERVICES IS HARD
17
Integration Test Prod…
![Page 32: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/32.jpg)
INTEGRATING MICROSERVICES IS HARD
17
Integration Test Prod…
![Page 33: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/33.jpg)
18
<thinks>
![Page 34: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/34.jpg)
19
agile
XPTDD
BDD
YAGNI
DRY
SOLID
Continuous Delivery
Refactoring
GoF
GRASP
emergent design
World of Warcraft
KISS
![Page 35: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/35.jpg)
20
![Page 36: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/36.jpg)
20
Gemini Project, Rogallo wing
Source: wikipedia.org
![Page 37: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/37.jpg)
21
<thinks>
![Page 38: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/38.jpg)
22
Gemini Project, Rogallo wing
Source: wikipedia.org
it’s turtles all the way down
![Page 39: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/39.jpg)
23
agile
XPTDD
BDD
YAGNI
DRY
SOLID
Continuous Delivery
Refactoring
GoF
GRASP
emergent design
World of Warcraft
KISS
![Page 40: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/40.jpg)
24
agile
XPTDD
BDDYAGNIDRY
SOLID
Continuous Delivery
Refactoring
GoF
GRASP
emergent design
World of Warcraft
KISS
![Page 42: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/42.jpg)
2626
![Page 43: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/43.jpg)
2727
![Page 44: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/44.jpg)
2828
![Page 45: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/45.jpg)
2929
Build out services as you need
them
![Page 46: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/46.jpg)
30
agile
XPTDD
BDD
YAGNI
DRY
SOLID
Continuous Delivery
Refactoring
GoFGRASPemergent design
World of Warcraft
KISS
![Page 47: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/47.jpg)
31
![Page 48: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/48.jpg)
32
Fulfilment
Retail
![Page 49: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/49.jpg)
33
Fulfilment Retail
![Page 50: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/50.jpg)
34
Fulfilment Retail
![Page 51: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/51.jpg)
35
Fulfilment Retail
![Page 52: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/52.jpg)
36
Fulfilment Retail
High cohesion
Low coupling
![Page 53: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/53.jpg)
37
(incidentally, if you were playing the Conway’s law lottery, that’s
when you number came up)
![Page 54: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/54.jpg)
38
agile
XPTDD
BDD
YAGNI
DRYSOLID
Continuous Delivery
Refactoring
GoF
GRASP
emergent design
World of Warcraft
KISS
![Page 55: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/55.jpg)
39
“Every piece of knowledge must have a single, unambiguous, authoritative
representation within a system”
Dave Thomas, interviewed by Bill Venners (2003-10-10). "Orthogonality and the DRY Principle". Retrieved 2006-12-01.
![Page 56: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/56.jpg)
4040
shared binary dependencies
∆ dep ⇒ ∆S1 + ∆S2 + … + ∆Sn
![Page 57: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/57.jpg)
41
git clone https://github.com/boicy/service-template
(note this doesn’t exist)
![Page 58: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/58.jpg)
42
![Page 59: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/59.jpg)
43
DRY within services
duplication between services
![Page 60: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/60.jpg)
44
agile
XP
TDDBDD
YAGNI
DRY
SOLID
Continuous Delivery
Refactoring
GoF
GRASP
emergent design
World of Warcraft
KISS
![Page 61: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/61.jpg)
45
![Page 62: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/62.jpg)
45
Small
Medium
Large
![Page 63: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/63.jpg)
46
“The London school of Test Driven Development”
Mike Feathers
![Page 64: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/64.jpg)
47
should we write unit tests?
![Page 65: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/65.jpg)
48
should bother with test driving our code if we are going to throw it away?
![Page 66: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/66.jpg)
49
Nat Pryce Steve Freeman Dan North Sydney ‘Hoppalong’ Redelinghuys Jim Webber Ian Robinson Ivan Moore Liz Keogh Simon Stewart Jez Humble Dave Farley Jay Fields Dan Worthington-Bodart Joe Walnes
![Page 67: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/67.jpg)
50
http://moleseyhill.com/blog/2009/08/27/dreyfus-model/
![Page 68: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/68.jpg)
should we write unit tests?
51
personally I think it’s more important than *ever*
![Page 69: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/69.jpg)
52
agile
XPTDD
BDD
YAGNI
DRY
Continuous Delivery
Refactoring
GoF
GRASP
emergent design
World of Warcraft
KISS
SRP
![Page 70: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/70.jpg)
53
a class should be no bigger than my head
![Page 71: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/71.jpg)
5454
a:Class
![Page 72: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/72.jpg)
5555
a:Class
a:Class
a:Class
a:Class
![Page 73: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/73.jpg)
5656
![Page 74: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/74.jpg)
5757
![Page 75: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/75.jpg)
58
SRP
a service should be no bigger than
my head
![Page 76: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/76.jpg)
59
agile
XPTDD
BDD
YAGNI
DRY
SOLID
Continuous Delivery
Refactoring
GoF
GRASP
emergent design
World of Warcraft
KISS
![Page 77: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/77.jpg)
60
![Page 78: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/78.jpg)
61
WWJD?
![Page 79: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/79.jpg)
61
WWJD?(what would Joe do?)
![Page 80: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/80.jpg)
62
![Page 81: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/81.jpg)
63
cron, python, boto, pydot, graphviz
![Page 82: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/82.jpg)
63
cron, python, boto, pydot, graphviz
![Page 83: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/83.jpg)
64
cron, python, boto, pydot, graphviz
Do the simplest thing possible
![Page 84: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/84.jpg)
65
integration and deployment
![Page 85: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/85.jpg)
66
![Page 86: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/86.jpg)
66
![Page 87: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/87.jpg)
66
SEMANTIC MONITORING
![Page 88: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/88.jpg)
67
service bservice a
![Page 89: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/89.jpg)
67
service bservice a
Small
Medium
Large
![Page 90: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/90.jpg)
67
service bservice a
Small
Medium
Large
![Page 91: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/91.jpg)
67
service bservice a
Small
Medium
LargeConsumer Driven Contracts
![Page 92: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/92.jpg)
68
Customer ServiceWeb Shop
![Page 93: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/93.jpg)
68
Customer ServiceWeb Shop
Expectations
![Page 94: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/94.jpg)
68
Customer ServiceWeb Shop
Expectations
![Page 95: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/95.jpg)
68
Customer ServiceWeb Shop
Expectations
Prod
![Page 96: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/96.jpg)
68
Customer ServiceWeb Shop
Expectations
Prod
![Page 97: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/97.jpg)
69
![Page 99: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/99.jpg)
70
Prod
Prod
Prod
Prod
QA
Good Monitoring
Fast Remediation
TESTING IN PRODUCTION
![Page 100: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/100.jpg)
71
integration environment
the death of the
![Page 101: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/101.jpg)
72
production != live
![Page 102: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/102.jpg)
73
CHANGING SERVICES INDEPENDENTLY
![Page 103: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/103.jpg)
74
CHANGING SERVICES INDEPENDENTLY
What is the blast radius of the change?
![Page 104: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/104.jpg)
74
CHANGING SERVICES INDEPENDENTLY
What is the blast radius of the change?
Limited to your team?
![Page 105: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/105.jpg)
74
CHANGING SERVICES INDEPENDENTLY
What is the blast radius of the change?
business capability?Limited to your team?
![Page 106: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/106.jpg)
74
CHANGING SERVICES INDEPENDENTLY
What is the blast radius of the change?
business capability?organisation?
Limited to your team?
![Page 107: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/107.jpg)
75Thomas J. Allen, 1977
![Page 108: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/108.jpg)
76
0 10 20 30 40 50 60 70 80 90 1000
0.05
0.10
0.15
0.20
0.25
0.30
m
Probability of weekly interaction
x
x x
x xxxxxxxxx
x
x xx
x xx x
The effect of distance on communication
![Page 109: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/109.jpg)
77
Low change rate
inter-company integration
High stability
Semantic Versioning
Contract Testing
Tolerant Reader
“Conversational change”
![Page 110: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/110.jpg)
78
higher change rate
inter-team integration
lower stability
Semantic Versioning
Contract Testing
Tolerant Reader
“Conversational change”
![Page 111: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/111.jpg)
79
highest change rate
intra-team
lowest stability
Semantic Versioning
Contract Testing
Tolerant Reader
“Conversational change”
![Page 112: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/112.jpg)
80
the future is scary
![Page 113: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/113.jpg)
we are learning how to:
Craft my families axe
Deploy small services independently
Test microservices in isolation Test microservices in production
![Page 114: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/114.jpg)
82
the future is bright
![Page 115: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/115.jpg)
83
we have old techniques that apply:
SRP GRASP YAGNI KISS TDD DRY
![Page 116: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/116.jpg)
and new techniques to apply:
Consumer Driven Contracts Semantic Monitoring Semantic Versioning Testing in Production Failure Isolation
![Page 117: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/117.jpg)
85
![Page 118: building systems that are never done - GOTO Conferencegotocon.com/dl/goto-amsterdam-2015/slides/JamesLewis_BuildingS… · Test microservices in isolation Test microservices in production](https://reader034.vdocument.in/reader034/viewer/2022050404/5f81860e65fb612db12c8ac8/html5/thumbnails/118.jpg)
85
do the simplest thing possible