+ All Categories
Home > Technology > Decoupled APIs through microservices

Decoupled APIs through microservices

Date post: 16-Jul-2015
Category:
Upload: david-simons
View: 1,886 times
Download: 0 times
Share this document with a friend
Popular Tags:
46
MICROSERVICES DECOUPLING API S THROUGH
Transcript

M I C R O S E R V I C E SD E C O U P L I N G A P I S T H R O U G H

M I C R O S E R V I C E SD E C O U P L I N G A P I S T H R O U G H

W H O A M I ?

• David Simons (@SwamWithTurtles)

• Technical Lead for Softwire

• 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 W A 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?

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 ConsumersWell 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

• 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

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

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

T H E B A D B I T S …

• 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 3 :

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

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

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 ES 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


Recommended