Consolidating services with middleware - NDC London 2017

20
CONSOLIDATING SERVICES WITH MIDDLEWARE C HRISTIAN H ORSDAL H ORSDAL C ONSULT @ CHR _ HORSDAL

Transcript of Consolidating services with middleware - NDC London 2017

Page 1: Consolidating services with middleware - NDC London 2017

CONSOLIDATING SERVICES WITH MIDDLEWARE

CHRISTIAN HORSDAL

HORSDAL CONSULT

@CHR_HORSDAL

Page 2: Consolidating services with middleware - NDC London 2017

Flexible

Componentized

Reusable

Testable

Page 3: Consolidating services with middleware - NDC London 2017

STUFF FROM THE REAL WORLD

Page 4: Consolidating services with middleware - NDC London 2017

5

MICROSERVICES

Page 5: Consolidating services with middleware - NDC London 2017

WHY MICROSERVICES?

• ENABLES CONTINUOUS DELIVERY

• HIGHLY MAINTAINABLE SERVICES

• EFFICIENT DEVELOPER WORKFLOW

• ROBUST BY DESIGN

• FLEXIBLE SCALABILITY

Page 6: Consolidating services with middleware - NDC London 2017

ALL HTTP

Page 7: Consolidating services with middleware - NDC London 2017

Listing Store

Dealer App

Partner site

VerticalClassifieds

site

Classifieds site

Vertical Listing store

Search index

Search index

ALL HTTP

Page 8: Consolidating services with middleware - NDC London 2017

WHEN CAN YOU USE MICROSERVICE?

AUTOMATED DEPLOYS

FAST PROVISIONING

AUTOMATED BUILDS

AUTOMATED TESTS

LOGGING AND MONITORING

CLOSE DEV-OPS RELATIONSHIP

Page 9: Consolidating services with middleware - NDC London 2017

WEB APIS AND MIDDLEWARE

Page 10: Consolidating services with middleware - NDC London 2017

WEB APIS HANDLE HTTP REQUESTS

12

Page 11: Consolidating services with middleware - NDC London 2017

ASP.NET CORE: PIPELINE

13

Kestrel Application

Page 12: Consolidating services with middleware - NDC London 2017

ASP.NET CORE: PIPELINE

• USE PIPES AND FILTERS

• A CONTEXT IS PIPED THROUGH MIDDLEWARE

14

Page 13: Consolidating services with middleware - NDC London 2017

ASP.NET CORE: PIPELINE

15

KestrelThrottling

Middleware

OAuth

MiddlewareApplication

Page 14: Consolidating services with middleware - NDC London 2017

MIDDLEWARE

• MIDDLEWARE TRANSFORMS THE REQUEST AND RESPONSE

• TAKES A CONTEXT IN

• CAN CALL NEXT STEP IN PIPELINE

• OR NOT

• UNIFORM INTERFACE

16

Page 15: Consolidating services with middleware - NDC London 2017

THINGS YOU MIGHT DO IN THE PIPELINE

• OPEN & DISPOSE RESOURCES

• LOGGING

• AUTHENTICATION

• AUTHORIZATION

• QUICK MONITORING ENDPOINTS

• SANITIZE INPUTS

• CONTENT NEGOTIATION

• CORS

17

Page 16: Consolidating services with middleware - NDC London 2017

THINGS YOU MIGHT DO IN THE PIPELINE

• OPEN & DISPOSE RESOURCES

• LOGGING

• AUTHENTICATION

• AUTHORIZATION

• QUICK MONITORING ENDPOINTS

• SANITIZE INPUTS

• CONTENT NEGOTIATION

• CORS

18

Cross-cutting concerns

Re-use

Test separately

Update separately

Distribute separately

Page 17: Consolidating services with middleware - NDC London 2017

A MICROSERVICE PLATFORM

Kestrel

Correlation Id

Request

Logging

Performance

Logging

Monitoring

endpoints

Authentication

Application

Page 18: Consolidating services with middleware - NDC London 2017

CODE

Page 19: Consolidating services with middleware - NDC London 2017

Flexible

Componentized

Reusable

Testable

Page 20: Consolidating services with middleware - NDC London 2017

ABOUT ME

Christian HorsdalIndependent Consultant

www.horsdal-consult.dk

[email protected]

@chr_horsdal