This talk introduces microservices as a tool in an API developer's arsenal. We'll introduce what they are, see how and why they could fit into a modern application (and when they may not), and tools that will make dealing with a microservices architecture easier than ever before.
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
David Simons
@SwamWithTurtles
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
David Simons
@SwamWithTurtles
3. W H O A M I ?
• David Simons
(@SwamWithTurtles)
• Freelance Tech Lead/
Consultant
• 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?
• An example!
• When are microservices
wrong?
• 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
• Corollary:
Microservice
architectures can be
polyglot
• 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
31. • Youth-targeted BBC news
site
• Targeting a range of
devices
• Needing to deal with a
large amount of traffic and
spikes
32. S 3
N E W S B E AT ‘ M I C R O S E R V I C E ’
A R C H I T E C T U R E
B B C
C O N T E N T
S E R V I C E S
F R O N T- E N D
F E T C H &
D I S P L AY
L B
SQS
R E N D E R E R S
43. 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)
49. S O W H E R E D O
W E F O C U S ?
• Security
• Greater documentation
• Integration testing
50. A L S O T E A M
C H A N G E
• “organizations which
design systems ... are
constrained to produce
designs which are copies
of the communication
structures of these
organizations"
• - Conway’s Law
54. D E P L O Y M E N T
• Five years ago:
• Work hard
55. 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
57. 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!
58. T H A N K S
@swamwithturtles
swamwithturtles.com