Top Banner
FIVE RULES OF MICROSERVICES Armagan Amcalar I T.A.K.E. Unconference April 7th, 2020
22

MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

Aug 14, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

FIVE RULES OFMICROSERVICES

Armagan AmcalarI T.A.K.E. Unconference

April 7th, 2020

Page 2: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

Who am I?Who am I?Armagan AmcalarSoftware architect, leader, mentor, speaker

Founder @

        dashersw            dashersw

Lonca Works

  erstecote

dovecotesemaver

vieux

brain-bitspedalboard.js

tartJSgeneJSjira-bot

AUTHORED ON GITHUBAUTHORED ON GITHUB

Page 3: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

OutlineOutlineWhat is and is not a Microservice

An example e-commerce application5 rules of microservices

Contemporary tools to enable true microservices

dashersw

Page 4: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

All microservices areAll microservices aredistributed applications.distributed applications.

Not every distributed applicationis a microservices application.

dashersw

Page 5: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

What is not a microservice?What is not a microservice?

Async operations with queue (and other) systemsHaving 50 different queue consumers (for notifications,

logging, reconciliation services, e-mailing etc) doesn’tmean you have 50 microservices

 Multiple programs running on a single machine and

communicating over HTTP

dashersw

Page 6: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

What is a Microservice?What is a Microservice?

dashersw

If you are breaking down the fulfillment of a clientrequest into multiple collaborating services that run in

their own memory space, then you are doingmicroservices.

 THE BASELINE

Page 7: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

MicroservicesMicroservicesThe quality of your approach depends on how well youapply Domain Driven Design and other best practices.

 You have to —

Embrace changeGive autonomy to teams, to services

Automate testing, configuration, deployment,monitoring and moreFavor cattle over pets

dashersw

Page 8: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

An example e-commerce appAn example e-commerce app

dashersw

Page 9: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

Rule #1: Auto-discoveryRule #1: Auto-discovery

dashersw

Page 10: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

Auto-discoveryAuto-discovery

dashersw

Page 11: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

Rule #2: Zero-configurationRule #2: Zero-configuration

dashersw

Page 12: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

Rule #3: Highly-redundantRule #3: Highly-redundant

dashersw

Page 13: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

Rule #4: Fault-tolerantRule #4: Fault-tolerant

dashersw

Page 14: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

Rule #5: Self-healingRule #5: Self-healing

dashersw

Page 15: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

Groundwork: Orchestration ServicesGroundwork: Orchestration Services

dashersw

Page 16: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

Groundwork: Orchestration ServicesGroundwork: Orchestration Services

Enable auto-discovery,roll outs / roll backs,

self-healing,secret & configuration management

 Rule #1: auto-discovery

Rule #2: zero-configurationRule #3: Highly-redundant

Rule #5: Self-healing

dashersw

Page 17: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

What about Rule #4: Fault-tolerance?What about Rule #4: Fault-tolerance?

dashersw

Page 18: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

What about Rule #4: Fault-tolerance?What about Rule #4: Fault-tolerance?

Circuit-breakersRetries

Timeouts

dashersw

Page 19: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

What about Rule #4: Fault-tolerance?What about Rule #4: Fault-tolerance?

Circuit-breakersRetries

Timeouts

dashersw

Page 20: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

What we have left outWhat we have left outOther common concerns for modern apps

Observability(Distributed) Tracing

AuthenticationAuthorization

Secrets managementVolume management

dashersw

Page 21: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

All microservices areAll microservices aredistributed applications.distributed applications.

Not every distributed applicationis a microservices application.

dashersw

Page 22: MICROSERVICES FIVE RULES OF...Async operations with queue (and other) systems Having 50 different queue consumers (for notifications, logging, reconciliation services, e-mailing

thank you!thank you!slides:

https://slides.com/armaganamcalar/five-rules-of-microservices

Let's keep in touch!Let's keep in touch!Armagan Amcalar

    dashersw