SlideShare ist ein Scribd-Unternehmen logo
1 von 58
Downloaden Sie, um offline zu lesen
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
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
W H O A M I ?
• David Simons
(@SwamWithTurtles)
• Freelance Tech Lead/
Consultant
• Hacker specialising in
Node and Java
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
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?
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 :
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 ?
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
D E C O U P L E D
A G O O D A P I I S …
R E U S A B L E
A G O O D A P I I S …
S C A L A B L E
A G O O D A P I I S …
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 …
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 :
Independently deployable services
focused around business concerns,
which contain all your logic.
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 …
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
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
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 …
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
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
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 …
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 …
- M A R T I N F O W L E R
“Smart Endpoints, Dumb Pipes”
S M A R T P I P E S
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 ” ?
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
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
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
A N E X A M P L E !
• Youth-targeted BBC news
site
• Targeting a range of
devices
• Needing to deal with a
large amount of traffic and
spikes
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
• Robust
• Encapsulated and
Decoupled
• Extensible
W H AT ’ S T H E
D O W N S I D E ?
Q U E S T I O N 3 :
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
M O R E
R E Q U E S T S
• Increased latency
• Less suitable for mobile
platforms
M O R E
C O M P L E X
• Upfront costs in terms of
set-up and maintenance
• Architecture can be more
complex
• Issues are less
discoverable
C O S T
• Added complexity
• Repeated licensing costs
for non-open source
platforms
B U T…
• Similar issues exist with
any “encapsulation”
methodology:
• OOP
• Web Components
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 4 :
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
C R E AT I O N
S T E P # 1 :
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)
C R E AT I O N
• DropWizard
C R E AT I O N
• Automated API
Generation
• e.g. Swagger,
Strongloop
P O P U L AT I O N
S T E P # 2 :
J U S T C O D E I T !
P O P U L A T I O N
T H I N G S C A N
B E H A R D E R
B U T…
S O W H E R E D O
W E F O C U S ?
• Security
• Greater documentation
• Integration testing
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
M E S S A G E
PA S S I N G
S T E P # 3 :
M E S S A G E
PA S S I N G
• “Smart Endpoints, Dumb
Pipes” - Martin Fowler
• All the standard ways of
consuming APIs - e.g.
HTTP, Message Queues
D E P L O Y M E N T
S T E P # 4 :
D E P L O Y M E N T
• Five years ago:
• Work hard
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
T O C O N C L U D E
S O …
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!
T H A N K S
@swamwithturtles
swamwithturtles.com

Weitere ähnliche Inhalte

Was ist angesagt?

Gain Maximum Visibility into Your Applications
Gain Maximum Visibility into Your Applications Gain Maximum Visibility into Your Applications
Gain Maximum Visibility into Your Applications Amazon Web Services
 
100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018Codemotion
 
SharePoint Saturday Redmond - Building solutions with the future in mind
SharePoint Saturday Redmond - Building solutions with the future in mindSharePoint Saturday Redmond - Building solutions with the future in mind
SharePoint Saturday Redmond - Building solutions with the future in mindChris Johnson
 
100% de visibilidade nas suas aplicações - DEM03 - Sao Paulo Summit
100% de visibilidade nas suas aplicações -  DEM03 - Sao Paulo Summit100% de visibilidade nas suas aplicações -  DEM03 - Sao Paulo Summit
100% de visibilidade nas suas aplicações - DEM03 - Sao Paulo SummitAmazon Web Services
 
Transforming developer from Commodity to Premium - A tale of micorservices
Transforming developer from Commodity to Premium - A tale of micorservicesTransforming developer from Commodity to Premium - A tale of micorservices
Transforming developer from Commodity to Premium - A tale of micorservicesKishore Yekkanti
 
Wrangle Your Defense Using Offensive Tactics BSides CT 2019
Wrangle Your Defense Using Offensive Tactics BSides CT 2019Wrangle Your Defense Using Offensive Tactics BSides CT 2019
Wrangle Your Defense Using Offensive Tactics BSides CT 2019Matt Dunn
 
AWS Seminar Series 2015 Melbourne
AWS Seminar Series 2015 MelbourneAWS Seminar Series 2015 Melbourne
AWS Seminar Series 2015 MelbourneAmazon Web Services
 
Data Interoperability for Learning Analytics and Lifelong Learning
Data Interoperability for Learning Analytics and Lifelong LearningData Interoperability for Learning Analytics and Lifelong Learning
Data Interoperability for Learning Analytics and Lifelong LearningMegan Bowe
 
Gain Maximum Visibility - DEM05 - Toronto AWS Summit
Gain Maximum Visibility - DEM05 - Toronto AWS SummitGain Maximum Visibility - DEM05 - Toronto AWS Summit
Gain Maximum Visibility - DEM05 - Toronto AWS SummitAmazon Web Services
 
Wrangle Your Defense Using Offensive Tactics - ISSA May Meeting
Wrangle Your Defense Using Offensive Tactics - ISSA May MeetingWrangle Your Defense Using Offensive Tactics - ISSA May Meeting
Wrangle Your Defense Using Offensive Tactics - ISSA May MeetingMatt Dunn
 
AWS Seminar Series 2015 Brisbane
AWS Seminar Series 2015 BrisbaneAWS Seminar Series 2015 Brisbane
AWS Seminar Series 2015 BrisbaneAmazon Web Services
 
Analisis Text Mining tentang #Papua di Twitter
Analisis Text Mining tentang #Papua di TwitterAnalisis Text Mining tentang #Papua di Twitter
Analisis Text Mining tentang #Papua di TwitterMuhajir Akbar Hsb
 
How to Reuse Your Content - Search Marketing Summit Sydney
How to Reuse Your Content - Search Marketing Summit SydneyHow to Reuse Your Content - Search Marketing Summit Sydney
How to Reuse Your Content - Search Marketing Summit SydneyAshley Segura
 
Mirko Lorenz Data Driven Journalism Overview Seminar Ordine dei Giornalisti d...
Mirko Lorenz Data Driven Journalism Overview Seminar Ordine dei Giornalisti d...Mirko Lorenz Data Driven Journalism Overview Seminar Ordine dei Giornalisti d...
Mirko Lorenz Data Driven Journalism Overview Seminar Ordine dei Giornalisti d...Massimiliano Crosato
 
TDD Using the SOLID Principles
TDD Using the SOLID PrinciplesTDD Using the SOLID Principles
TDD Using the SOLID PrinciplesJenna Pederson
 

Was ist angesagt? (20)

Gain Maximum Visibility into Your Applications
Gain Maximum Visibility into Your Applications Gain Maximum Visibility into Your Applications
Gain Maximum Visibility into Your Applications
 
100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018
 
SharePoint Saturday Redmond - Building solutions with the future in mind
SharePoint Saturday Redmond - Building solutions with the future in mindSharePoint Saturday Redmond - Building solutions with the future in mind
SharePoint Saturday Redmond - Building solutions with the future in mind
 
Yammer time
Yammer timeYammer time
Yammer time
 
100% de visibilidade nas suas aplicações - DEM03 - Sao Paulo Summit
100% de visibilidade nas suas aplicações -  DEM03 - Sao Paulo Summit100% de visibilidade nas suas aplicações -  DEM03 - Sao Paulo Summit
100% de visibilidade nas suas aplicações - DEM03 - Sao Paulo Summit
 
eHarmony @ Phoenix Con 2016
eHarmony @ Phoenix Con 2016eHarmony @ Phoenix Con 2016
eHarmony @ Phoenix Con 2016
 
Transforming developer from Commodity to Premium - A tale of micorservices
Transforming developer from Commodity to Premium - A tale of micorservicesTransforming developer from Commodity to Premium - A tale of micorservices
Transforming developer from Commodity to Premium - A tale of micorservices
 
Wrangle Your Defense Using Offensive Tactics BSides CT 2019
Wrangle Your Defense Using Offensive Tactics BSides CT 2019Wrangle Your Defense Using Offensive Tactics BSides CT 2019
Wrangle Your Defense Using Offensive Tactics BSides CT 2019
 
AWS Seminar Series 2015 Melbourne
AWS Seminar Series 2015 MelbourneAWS Seminar Series 2015 Melbourne
AWS Seminar Series 2015 Melbourne
 
Data Interoperability for Learning Analytics and Lifelong Learning
Data Interoperability for Learning Analytics and Lifelong LearningData Interoperability for Learning Analytics and Lifelong Learning
Data Interoperability for Learning Analytics and Lifelong Learning
 
Gain Maximum Visibility - DEM05 - Toronto AWS Summit
Gain Maximum Visibility - DEM05 - Toronto AWS SummitGain Maximum Visibility - DEM05 - Toronto AWS Summit
Gain Maximum Visibility - DEM05 - Toronto AWS Summit
 
AWS SeMINAR SERIES 2015 Sydney
AWS SeMINAR SERIES 2015 SydneyAWS SeMINAR SERIES 2015 Sydney
AWS SeMINAR SERIES 2015 Sydney
 
Wrangle Your Defense Using Offensive Tactics - ISSA May Meeting
Wrangle Your Defense Using Offensive Tactics - ISSA May MeetingWrangle Your Defense Using Offensive Tactics - ISSA May Meeting
Wrangle Your Defense Using Offensive Tactics - ISSA May Meeting
 
AWS Seminar Series 2015 Brisbane
AWS Seminar Series 2015 BrisbaneAWS Seminar Series 2015 Brisbane
AWS Seminar Series 2015 Brisbane
 
AWS SEMINAR SERIES 2015 Perth
AWS SEMINAR SERIES 2015 PerthAWS SEMINAR SERIES 2015 Perth
AWS SEMINAR SERIES 2015 Perth
 
Analisis Text Mining tentang #Papua di Twitter
Analisis Text Mining tentang #Papua di TwitterAnalisis Text Mining tentang #Papua di Twitter
Analisis Text Mining tentang #Papua di Twitter
 
Auckland AWS Seminar Series
Auckland AWS Seminar SeriesAuckland AWS Seminar Series
Auckland AWS Seminar Series
 
How to Reuse Your Content - Search Marketing Summit Sydney
How to Reuse Your Content - Search Marketing Summit SydneyHow to Reuse Your Content - Search Marketing Summit Sydney
How to Reuse Your Content - Search Marketing Summit Sydney
 
Mirko Lorenz Data Driven Journalism Overview Seminar Ordine dei Giornalisti d...
Mirko Lorenz Data Driven Journalism Overview Seminar Ordine dei Giornalisti d...Mirko Lorenz Data Driven Journalism Overview Seminar Ordine dei Giornalisti d...
Mirko Lorenz Data Driven Journalism Overview Seminar Ordine dei Giornalisti d...
 
TDD Using the SOLID Principles
TDD Using the SOLID PrinciplesTDD Using the SOLID Principles
TDD Using the SOLID Principles
 

Ähnlich wie Decoupled APIs through Microservices

Decoupled APIs through microservices
Decoupled APIs through microservicesDecoupled APIs through microservices
Decoupled APIs through microservicesDavid Simons
 
Designing for IoT and Cyber-Physical System
Designing for IoT and Cyber-Physical SystemDesigning for IoT and Cyber-Physical System
Designing for IoT and Cyber-Physical SystemMaurizio Caporali
 
From Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dotsFrom Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dotsRonald Ashri
 
From Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the DotsFrom Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the DotsRonald Ashri
 
Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...
Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...
Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...Amazon Web Services
 
Switching horses midstream - From Waterfall to Agile
Switching horses midstream - From Waterfall to AgileSwitching horses midstream - From Waterfall to Agile
Switching horses midstream - From Waterfall to AgileDoc Norton
 
How to improve Customer Engagement
How to improve Customer EngagementHow to improve Customer Engagement
How to improve Customer EngagementSusanne B. Böck
 
Blockchain Technology : Privacy Perspectives and Security Concerns
Blockchain Technology : Privacy Perspectives and Security ConcernsBlockchain Technology : Privacy Perspectives and Security Concerns
Blockchain Technology : Privacy Perspectives and Security ConcernsGokul Alex
 
Santander Presentation - Global Digital Innovation
Santander Presentation - Global Digital InnovationSantander Presentation - Global Digital Innovation
Santander Presentation - Global Digital InnovationLisa Cheng
 
Webinar Series - Customer Facing Devices: Putting the Pieces Together
Webinar Series - Customer Facing Devices: Putting the Pieces TogetherWebinar Series - Customer Facing Devices: Putting the Pieces Together
Webinar Series - Customer Facing Devices: Putting the Pieces TogetherMoki
 
Elevated.com's 2018 General Capabilities Deck-We are growing!!
Elevated.com's 2018 General Capabilities Deck-We are growing!!Elevated.com's 2018 General Capabilities Deck-We are growing!!
Elevated.com's 2018 General Capabilities Deck-We are growing!!Chris Snook
 
Introduction to Information Technology 2
Introduction to Information Technology 2Introduction to Information Technology 2
Introduction to Information Technology 2dmeekis
 
GW Intro to Digital Communications Class 6
GW Intro to Digital Communications Class 6 GW Intro to Digital Communications Class 6
GW Intro to Digital Communications Class 6 Geoff Livingston
 
Nuno Job - what's next for software - ANDdigital tech summit
Nuno Job - what's next for software - ANDdigital tech summitNuno Job - what's next for software - ANDdigital tech summit
Nuno Job - what's next for software - ANDdigital tech summitGreta Strolyte
 
Web Development for Managers
Web Development for ManagersWeb Development for Managers
Web Development for ManagersRandy Connolly
 
Lesson 1 WHAT IS ICT?
Lesson 1   WHAT IS ICT?Lesson 1   WHAT IS ICT?
Lesson 1 WHAT IS ICT?LeahAmor1
 
Offline-first: Making your app resilient to network failures
Offline-first: Making your app resilient to network failuresOffline-first: Making your app resilient to network failures
Offline-first: Making your app resilient to network failuresPedro Teixeira
 
Architecting your IT career
Architecting your IT careerArchitecting your IT career
Architecting your IT careerJohn Mark Troyer
 

Ähnlich wie Decoupled APIs through Microservices (20)

Decoupled APIs through microservices
Decoupled APIs through microservicesDecoupled APIs through microservices
Decoupled APIs through microservices
 
Designing for IoT and Cyber-Physical System
Designing for IoT and Cyber-Physical SystemDesigning for IoT and Cyber-Physical System
Designing for IoT and Cyber-Physical System
 
From Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dotsFrom Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dots
 
From Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the DotsFrom Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the Dots
 
Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...
Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...
Create an IoT Gateway and Establish a Data Pipeline to AWS IoT with Intel - I...
 
Switching horses midstream - From Waterfall to Agile
Switching horses midstream - From Waterfall to AgileSwitching horses midstream - From Waterfall to Agile
Switching horses midstream - From Waterfall to Agile
 
How to improve Customer Engagement
How to improve Customer EngagementHow to improve Customer Engagement
How to improve Customer Engagement
 
Blockchain Technology : Privacy Perspectives and Security Concerns
Blockchain Technology : Privacy Perspectives and Security ConcernsBlockchain Technology : Privacy Perspectives and Security Concerns
Blockchain Technology : Privacy Perspectives and Security Concerns
 
Santander Presentation - Global Digital Innovation
Santander Presentation - Global Digital InnovationSantander Presentation - Global Digital Innovation
Santander Presentation - Global Digital Innovation
 
Vikram emerging technologies
Vikram emerging technologiesVikram emerging technologies
Vikram emerging technologies
 
Webinar Series - Customer Facing Devices: Putting the Pieces Together
Webinar Series - Customer Facing Devices: Putting the Pieces TogetherWebinar Series - Customer Facing Devices: Putting the Pieces Together
Webinar Series - Customer Facing Devices: Putting the Pieces Together
 
Elevated.com's 2018 General Capabilities Deck-We are growing!!
Elevated.com's 2018 General Capabilities Deck-We are growing!!Elevated.com's 2018 General Capabilities Deck-We are growing!!
Elevated.com's 2018 General Capabilities Deck-We are growing!!
 
Introduction to Information Technology 2
Introduction to Information Technology 2Introduction to Information Technology 2
Introduction to Information Technology 2
 
GW Intro to Digital Communications Class 6
GW Intro to Digital Communications Class 6 GW Intro to Digital Communications Class 6
GW Intro to Digital Communications Class 6
 
Nuno Job - what's next for software - ANDdigital tech summit
Nuno Job - what's next for software - ANDdigital tech summitNuno Job - what's next for software - ANDdigital tech summit
Nuno Job - what's next for software - ANDdigital tech summit
 
Web Development for Managers
Web Development for ManagersWeb Development for Managers
Web Development for Managers
 
Lesson 1 WHAT IS ICT?
Lesson 1   WHAT IS ICT?Lesson 1   WHAT IS ICT?
Lesson 1 WHAT IS ICT?
 
Offline-first: Making your app resilient to network failures
Offline-first: Making your app resilient to network failuresOffline-first: Making your app resilient to network failures
Offline-first: Making your app resilient to network failures
 
Telecom service futures driven by customer need
Telecom service futures driven by customer needTelecom service futures driven by customer need
Telecom service futures driven by customer need
 
Architecting your IT career
Architecting your IT careerArchitecting your IT career
Architecting your IT career
 

Mehr von David Simons

Four Architectural Patterns
Four Architectural Patterns Four Architectural Patterns
Four Architectural Patterns David Simons
 
Non-Functional Requirements
Non-Functional RequirementsNon-Functional Requirements
Non-Functional RequirementsDavid Simons
 
Build Tools & Maven
Build Tools & MavenBuild Tools & Maven
Build Tools & MavenDavid Simons
 
Graph theory in Practise
Graph theory in PractiseGraph theory in Practise
Graph theory in PractiseDavid Simons
 
TDD: What is it good for?
TDD: What is it good for?TDD: What is it good for?
TDD: What is it good for?David Simons
 
Domain Driven Design: A Precis
Domain Driven Design: A PrecisDomain Driven Design: A Precis
Domain Driven Design: A PrecisDavid Simons
 
10 d bs in 30 minutes
10 d bs in 30 minutes10 d bs in 30 minutes
10 d bs in 30 minutesDavid Simons
 
Using Clojure to Marry Neo4j and Open Democracy
Using Clojure to Marry Neo4j and Open DemocracyUsing Clojure to Marry Neo4j and Open Democracy
Using Clojure to Marry Neo4j and Open DemocracyDavid Simons
 
Exploring Election Results with Neo4J
Exploring Election Results with Neo4JExploring Election Results with Neo4J
Exploring Election Results with Neo4JDavid Simons
 

Mehr von David Simons (10)

Four Architectural Patterns
Four Architectural Patterns Four Architectural Patterns
Four Architectural Patterns
 
Non-Functional Requirements
Non-Functional RequirementsNon-Functional Requirements
Non-Functional Requirements
 
Build Tools & Maven
Build Tools & MavenBuild Tools & Maven
Build Tools & Maven
 
Graph Modelling
Graph ModellingGraph Modelling
Graph Modelling
 
Graph theory in Practise
Graph theory in PractiseGraph theory in Practise
Graph theory in Practise
 
TDD: What is it good for?
TDD: What is it good for?TDD: What is it good for?
TDD: What is it good for?
 
Domain Driven Design: A Precis
Domain Driven Design: A PrecisDomain Driven Design: A Precis
Domain Driven Design: A Precis
 
10 d bs in 30 minutes
10 d bs in 30 minutes10 d bs in 30 minutes
10 d bs in 30 minutes
 
Using Clojure to Marry Neo4j and Open Democracy
Using Clojure to Marry Neo4j and Open DemocracyUsing Clojure to Marry Neo4j and Open Democracy
Using Clojure to Marry Neo4j and Open Democracy
 
Exploring Election Results with Neo4J
Exploring Election Results with Neo4JExploring Election Results with Neo4J
Exploring Election Results with Neo4J
 

Kürzlich hochgeladen

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 

Kürzlich hochgeladen (20)

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 

Decoupled APIs through Microservices

  • 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
  • 9. D E C O U P L E D A G O O D A P I I S …
  • 10. R E U S A B L E A G O O D A P I I S …
  • 11. S C A L A B L E A G O O D A P I I S …
  • 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 :
  • 14. Independently deployable services focused around business concerns, which contain all your logic.
  • 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”
  • 24. S M A R T P I P E S
  • 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
  • 29. A N E X A M P L E !
  • 30.
  • 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
  • 33. • Robust • Encapsulated and Decoupled • Extensible
  • 34. W H AT ’ S T H E D O W N S I D E ? Q U E S T I O N 3 :
  • 35. 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
  • 36. M O R E R E Q U E S T S • Increased latency • Less suitable for mobile platforms
  • 37. M O R E C O M P L E X • Upfront costs in terms of set-up and maintenance • Architecture can be more complex • Issues are less discoverable
  • 38. C O S T • Added complexity • Repeated licensing costs for non-open source platforms
  • 39. B U T… • Similar issues exist with any “encapsulation” methodology: • OOP • Web Components
  • 40. 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 4 :
  • 41. 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
  • 42. C R E AT I O N S T E P # 1 :
  • 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)
  • 44. C R E AT I O N • DropWizard
  • 45. C R E AT I O N • Automated API Generation • e.g. Swagger, Strongloop
  • 46. P O P U L AT I O N S T E P # 2 :
  • 47. J U S T C O D E I T ! P O P U L A T I O N
  • 48. T H I N G S C A N B E H A R D E R B U T…
  • 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
  • 51. M E S S A G E PA S S I N G S T E P # 3 :
  • 52. M E S S A G E PA S S I N G • “Smart Endpoints, Dumb Pipes” - Martin Fowler • All the standard ways of consuming APIs - e.g. HTTP, Message Queues
  • 53. D E P L O Y M E N T S T E P # 4 :
  • 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
  • 56. T O C O N C L U D E S O …
  • 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