1. M I C R O S E R V I C E S
D E C O U P L I N G A P I S T H R O U G H
2. M I C R O S E R V I C E S
D E C O U P L I N G A P I S T H R O U G H
3. W H O A M I ?
• David Simons
(@SwamWithTurtles)
• Technical Lead for
Softwire
• Hacker specialising in
Node and Java
4. M Y E X P E R I E N C E
W I T H A P I S
• Focused on web
development
• Utilise data from our own,
or third party APIs to affect
rendered data
5. W H AT I WA N T T O
TA L K A B O U T…
• What problems do
microservices solve?
• What is a microservice?
• How can I start
implementing
microservices?
6. W H AT P R O B L E M S D O
M I C R O S E R V I C E S S O LV E ?
Q U E S T I O N 1 :
7. W H AT D O W E
A S P I R E F O R I N
A G O O D A P I ?
8. W H AT M A K E S A G O O D A P I ?
HATEOS-y
Sensibly named
Ignorant of Consumers
Well Maintained
Tested
Appropriate
Extensible
Hard to Misuse
Secure Useful
High Quality Data
RESTful
Easy to Adopt
Resilient
Performant
Versioned
Declarative
Flexible output formats
Stable
Well Documented
12. A M I C R O S E R V I C E
A R C H I T E C T U R E M A K E S
Y O U R A P I S M O R E :
D E C O U P L E D , R E U S A B L E
A N D S C A L A B L E
M Y C L A I M …
13. W H AT I S A
M I C R O S E R V I C E ?
Q U E S T I O N 2 :
15. F O C U S E D
A R O U N D
B U S I N E S S
C O N C E R N S
M I C R O S E R V I C E S A R E …
16. M I C R O S E R V I C E S
A R E N O T L AY E R E D
A R C H I T E C T U R E S
B AT C H D ATA P R O C E S S
D ATA A C C E S S L AY E R
P R E S E N TAT I O N T I E R
M E S S A G E Q U E U E
17. B U S I N E S S
C O N C E R N S
B AT C H D ATA P R O C E S S
D ATA A C C E S S L AY E R
P R E S E N TAT I O N T I E R
TaxPricing
18. I N D E P E N D E N T LY
D E P L O YA B L E
M I C R O S E R V I C E S A R E …
19. B U S I N E S S
C O N C E R N S
B AT C H D ATA P R O C E S S
D ATA A C C E S S L AY E R
P R E S E N TAT I O N T I E R
TaxPricing
20. B U S I N E S S
C O N C E R N S
B AT C H D ATA P R O C E S S
D ATA A C C E S S L AY E R
P R E S E N TAT I O N T I E R
Tax v2Pricing
21. T H E
F R A C T U R E D
M O N O L I T H
B E WA R E …
22. C O N TA I N I N G
A L L Y O U R
L O G I C
A M I C R O S E R V I C E H A S …
23. - M A R T I N F O W L E R
“Smart Endpoints, Dumb Pipes”
25. H O W D O E S T H I S M AT C H
O U R “ I D E A L A P I ” ?
26. D E C O U P L E D
• Implementation can’t be
leaked due to separate
deployments
• All the intelligence is in the
system
27. R E U S A B L E
• Services contain “just
enough” information to be
useful in multiple places
• No danger of long strands
of dependencies
28. S C A L A B L E
• Separate systems can each
be deployed
independently of the other
• Smaller systems have less
requirements in terms of
hardware
29. M I C R O S E R V I C E S A R E N O T
R I G H T F O R E V E RY O N E
WA R N I N G
30. T H E B A D
B I T S …
• Increased latency through
message passing
• Added work and
complexity
• Issues are less
discoverable
• Increased licensing costs
on some stacks
31. T H E B A D
B I T S …
• Similar issues exist with
any “encapsulation”
methodology:
• OOP
• Web Components
32. H O W C A N I S TA R T T O
I M P L E M E N T T H E M ?
Q U E S T I O N 3 :
33. T H E R E ’ S T O O M U C H T O
TA L K A B O U T I N O N E TA L K .
WA R N I N G
35. C R E AT I O N
• Do it yourself!
• Lightweight languages
such as NodeJS make
API creation easy
• App creation
frameworks like Spring
Boot (Java) and
Yeomen (JS)
42. D E P L O Y M E N T
• Five years ago:
• Work hard
43. D E P L O Y M E N T
• Automate it as much as
possible
• Old favourites: Continuous
Integration/Source Control
• Puppet/Chef for config
management
• Docker can automate
microservice containers
45. T O
C O N C L U D E …
• APIs work best when they
allow separate parts of
your system to behave
independently
• Using microservices can
enforce this pattern
• The Ecosystem is big - and
growing!
46. T H A N K S
@swamwithturtles
swamwithturtles.com