API-Gateway bringt Ordnung in Microservices-Wildwuchs · © Materna GmbH 2016 The Great Baltimore...

Post on 09-Jun-2020

5 views 0 download

Transcript of API-Gateway bringt Ordnung in Microservices-Wildwuchs · © Materna GmbH 2016 The Great Baltimore...

Frank Pientka, Dortmund

API-Gateway bringt Ordnung in Microservices-Wildwuchs

© Materna GmbH 2016 www.materna.de 3

Warum sind Verbindungen wichtig?

© Materna GmbH 2016 www.materna.de

Agenda

APIs regieren die Welt – Schnittstellenprobleme Microservices und Qualitätsmerkmale (NFRs) Microservices und Design Patterns Das API-Gateway Design Pattern API-Gateway Implementierungen Fazit

4

© Materna GmbH 2016 www.materna.de

The Great Baltimore Fire of 1904

5

© Materna GmbH 2016 www.materna.de

Schnittstellenprobleme gestern, wie heute sind gefährlich und teuer …

6

© Materna GmbH 2016 www.materna.de

APIs are enabling digital integration

© Materna GmbH 2016 www.materna.de

Risikopotential APIs

8

Schnittstelle Protokoll Implementierung Infrastruktur Betrieb Überwachung Änderung

Hohe Kosten, Risiken

Besonders Cloud, IoT

© Materna GmbH 2016 www.materna.de 10

Qualitätsanforderungen an eine API

VertragDesignGovernancePolicyAuthentifizierungAuthorisierungSchutzCachingThrottlingQuotas

API

Änderbarkeit

Langlebigkeit

Sicherheit

WartbarkeitKompatibilität

Versionierbarkeit

Verfügbarkeit

© Materna GmbH 2016 www.materna.de

Traditionelle Webarchitektur

11

Browser StoreServer

DBSE

RV

ICE

Mobile App

© Materna GmbH 2016 www.materna.de

Microservices

12

Order Entry Service

Order History Service

ProductSearchService

ProductDetail

Service

PriceService

Central services:Metrics

AutorisationAuthentication

CachingThrottlingAuditingLogging

© Materna GmbH 2016 www.materna.de

Aus der Musterküche: Microservice Design Patterns (C. Richardson)

13

© Materna GmbH 2016 www.materna.de 14

Gateway Pattern of Enterprise Application Architecture (EAA) 2003

An object that encapsulates access to an external system or resource. (see EAA page 466)Similar Remote Façade, Filter, Router, Proxy

http://martinfowler.com/eaaCatalog/gateway.html

© Materna GmbH 2016 www.materna.de

Service-Nutzung ohne API-Gateway

15

Web browser

Mobile client

Order Entry Service

Order History Service

ProductSearchService

ProductDetail

Service

PriceService

© Materna GmbH 2016 www.materna.de

API-Gateway

16

API-Gateway

Web browser

Mobile client

Order Entry Service

Order History Service

ProductSearchService

ProductDetail

Service

PriceService

© Materna GmbH 2016 www.materna.de

Microservices Architektur

17

Browser

Order function

ProductDB

OrderDB

UserDB

Search function

API-Gateway

Authentication

BaaSFaaS

Serverless architectures

Mobile App

BfF

© Materna GmbH 2016 www.materna.de

API-Gateway – API-First Strategy

18

API

V 1.x

V 2.x

Impl

MetricsAuthorisationCachingThrottlingAuditingLogging

© Materna GmbH 2016 www.materna.de

Gartner Magic Quadrant for Application Services Governance

21

23.06.2016 Red Hat übernimmt API-Manager 3scale09.09.2016 Google kauft API-Management-Provider Apigee

© Materna GmbH 2016 www.materna.de

API-Gateway-Lösungen: public vs. private

Amazon API Gateway JBoss API Gateway 3scale's API Management platform

22

Netflix Zuul Proxy Filter

© Materna GmbH 2016 www.materna.de

Netflix Zuul: API Edge Service

23

© Materna GmbH 2016 www.materna.de

https://aws.amazon.com/de/api-gateway/

24

© Materna GmbH 2016 www.materna.de

3scale + Amazon API Gateway = Full Complement API Program Management

25

© Materna GmbH 2016 www.materna.de

APIman Architektur

26

RESTClient

ServiceDeveloper

API Realm

APIman Realm

APIman ManagerAutorisierung

APIman Gateway

Load Balancer

KeycloakAuthentifizierung

ServiceEndpoint

RDBMS

ElasticSearch API Metrics

ElasticSearch APIs

APIman REST API

APIman UI

APIman Gateway

APIman Gateway API

1..*

1..*

1..1

1..*

1..*

REST API

1..1

1..1

1..1

1..1

SysAdmin1..1

© Materna GmbH 2016 www.materna.de

Getting Started APIman

27

localhost:8080/apimanui/ 1.2.6 http://localhost:8080/apimanconf/apiman.properties, tomcat-users.xml

<role rolename="apiuser"/><role rolename="apiadmin"/><role rolename="apipublisher"/><user username="admin" password="admin123!" roles="apiuser,apiadmin"/><user username="apimanager" password="apiman123!" roles="apipublisher"/>

</tomcat-users>

© Materna GmbH 2016 www.materna.de 28

© Materna GmbH 2016 www.materna.de

API Catalog

29

© Materna GmbH 2016 www.materna.de

http://localhost:8080/apimanui admin/admin123!

30

© Materna GmbH 2016 www.materna.de

Vertrag erstellen

32

© Materna GmbH 2016 www.materna.de

Apiman Plugins

33

© Materna GmbH 2016 www.materna.de

Apiman Policy

34

© Materna GmbH 2016 www.materna.de

APIman Systemstatus

35

http://www.apiman.io/latest/api-manager-restdocs.html

© Materna GmbH 2016 www.materna.de

apiman.plugins.repositories=http://mvnrepository.com/artifact/io.apiman.plugins

37

© Materna GmbH 2016 www.materna.de

History, Policies & Metrics

38

© Materna GmbH 2016 www.materna.de

DEMO: Verwalten der Tomcat Manager REST-Schnittstelle mit APIman

39

Self managed versioned system

http://localhost:8080/manager/text/list/apimanui:running:0:apimanui

/apiman-plugins-keycloak-oauth-policy-1.2.1.Final:running:0:apiman-plugins-keycloak-oauth-policy-1.2.1.Final

/apiman-gateway-api:running:0:apiman-gateway-api

/apiman:running:0:apiman

/apiman-es:running:0:apiman-es

/apiman-gateway:running:0:apiman-gateway

/manager:running:1:manager

© Materna GmbH 2016 www.materna.de 40

http://localhost:8080/manager/text/list

https://localhost:8443/apiman-gateway/MATERNA/manager/1.0

DEMO: Tomcat manager App versionieren

© Materna GmbH 2016 www.materna.de

API-Gateway – horcht was kommt von draußen rein

45

© Materna GmbH 2016 www.materna.de

„Ein guter Zaun schafft gute Nachbarn“ Robert Frost

„Ein guter Vertrag schafft gute Nachbarn“

46

© Materna GmbH 2016 www.materna.de

Aktuell API-man mehr zum Evaluieren - 3scale-OS-Version abwarten Qualitätsanforderungen steigen Stärkere Entkopplung (Aufruf, Ressource) Unterschiedliche API-Granularitäten für unterschiedliche Clients NFRs zentral und einheitlich NICHT lokal in jedem Microservice API-(Lifecycle-)Management wird immer wichtiger (IoT, Cloud, mobile,

Web, BfF) API-Gateway erzeugt neue Komplexität, verbessert jedoch Service-

Management und -Nutzung

Ausblick

47

© Materna GmbH 2016 www.materna.de 48

Weitere Infos

API Gateway design pattern, Chris Richardsonhttp://microservices.io/patterns/apigateway.html

APIman http://www.apiman.io Keycloak Reference Guide http://www.keycloak.org APIman Roadmap http://www.apiman.io/latest/roadmap.html Frank Pientka: Horcht, was kommt von draußen rein - API-Management

mit apiman, JavaSPEKTRUM 07/16