api-gateway bringt ordnung in microservices-wildwuchs · © materna gmbh 2016 the great baltimore...
TRANSCRIPT
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