SlideShare a Scribd company logo
1 of 30
Download to read offline
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf


PER ANHALTER ZU


CLOUD-NATIVEN


API GATEWAYS
Mario-Leander Reimer


Principal Software Architect


@LeanderReimer


#cloudnativenerd #qaware


https://lreimer.github.io
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
3
https://imgur.com/gallery/LGAZEqu
The Earl
y

Code Monkey
The Monolith
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
4
Monolithic


Vintage System
Users
system.example.com
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
5
autonomous bounded contexts
loosely coupled stateless
makeameme.org
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
6
Users
Monolithic


Vintage System
A Shared PaaS
A Namespace
Service A
system.example.com
service-a.default.example.com
Route
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
7
Users
Monolithic


Vintage System
A Shared PaaS
A Namespace
Service A
system.example.com
service-a.default.example.com
Route
Service B
Route
service-b…
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
8
Users
Monolithic


Vintage System
A Shared PaaS
A Namespace
Service A
system.example.com
service-a.default.example.com
Route
Service B
Route
service-b…
Service C
Route
service-c…
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
9
Users
Monolithic


Vintage System
A Shared PaaS
A Namespace
Service A’
system.example.com
service-a.default.example.com
Route
Service B
Route
service-b…
Service C'
Route
service-c…
3rd Party Apps
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
10
Users
Monolithic


Vintage System
A Shared PaaS
A Namespace
Service A’
system.example.com
service-a.default.example.com
Route
Service B
Route
service-b…
Service C'
Route
service-c…
3rd Party Apps
B Namespace
Service X
Service Y
Service Z’
Unreliable


Legacy
Systems
SOAP
gRPC
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
11
Users
Monolithic


Vintage System
A Shared PaaS
A Namespace
Service A’
system.example.com
service-a.default.example.com
Route
Service B
Route
service-b…
Service C'
Route
service-c…
3rd Party Apps
B Namespace
Service X
Service Y
Service Z’
Unreliable


Legacy
Systems
SOAP
gRPC
Route
Internal
Systems
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
12
https://thenewstack.io/history-service-mesh/
APIs sind das Herzstück
erfolgreicher, digitaler Produkte.


Das richtige Management der APIs
von Beginn an ist essentiell, um den


Big Ball of Mud zu vermeiden.
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
13
APIs sind das Herzstück
erfolgreicher, digitaler Produkte.


Das richtige Management der APIs
von Beginn an ist essentiell, um den


Big Ball of Mud zu vermeiden.
https://thenewstack.io/history-service-mesh/
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
14
Users
Monolithic


Vintage System
A Shared PaaS
A Namespace
Service A
Service B
Service C
3rd Party Apps
B Namespace
Service X
Service Y
Service Z
Unreliable


Legacy
Systems
SOAP
API


Gateway
Backend
for
Frontend
Internal
Systems
API
Gateway
API
Proxy
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
15
API Gateways


sind wie das Façade Pattern für


Cloud Native Application Design


und Microservice Architekturen
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
• Tra
ffi
c Management: Path, Header, Host based Routing, Path Rewrite


• Rollout and Deployment: A/B Deployment, Canary Release, et.al.


• QoS and Resiliency: Circuit Breaker, Retry, Timeouts, Rate Limiting


• Security: AAA, Terminate TLS, Support for JWT and JWKS, Open ID, …


• Protocol Translation: XML to JSON, gRPC to JSON, …


• Transformation: Fan Out / Collect, B4F, Versioning, GraphQL, …


• Observability: Logging Integration, Monitoring, Distributed Tracing
16
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
17
W E
N
S
Ingress
Egress
API Gateways für


Nord-Süd Kommunikation
Service Meshes für


Ost-West Kommunikation
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
API Gateways in a Nutshell
• Vorteile


• Abstraktion der internen
Anwendungsstruktur


• Vereinfachter Client Code


• Einfaches Rollout und
Deployment, Versionierung, …


• B4Fs reduzieren die Anzahl
benötigter Client-Server Calls
18
• Nachteile


• Weiterer hoch-verfügbarer
Infrastruktur-Baustein der
betrieben werden muss


• Wird schnell zum DevOps
Flaschenhals im Fall von
zentralem Betrieb


• Business Logik im API Gateway
führt versehentlich zu einem ESB
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
Mögliche Kriterien für einen Vergleich
• Maturity: Gute und aktive Community, keine Issues, häu
fi
ge Releases


• License: Open Source oder Commercial


• Supported Features: Tra
ffi
c Management, Deployment, Security, Translation,
Transformation, QoS, Resiliency


• DevOps Friendly: Einfaches Setup und Betreibbarkeit, Plattform, CI/CD und
GitOps Support, Documentation


• Performance: Kleiner Overhead, hoher Durchsatz, Skalierbarkeit, Verfügbarkeit


• Observability: Möglichkeiten zur Logging, Monitoring, Tracing Integration
19
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
Vier Kategorien von API Gateways
A. API Management Solutions


B. Build Your Own API Gateway


C. Service Proxies


D. Cloud Native API Gateways
22
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
A. API Management Solutions
23
• Ausgewachsene API Management Lösungen: Kong, Tyk, Mulesoft, 3scale,
Gravitee.io, Apigee, …


• Machen Sinn für Enterprise Use Cases. Häu
fi
g kostenp
fl
ichtig. Einige bieten
abgespeckte Open Source Varianten.


• Bieten zusätzliche features wie API Kataloge, Developer Portale, API Key
Management, Bezahlung oder Integration in EAM Lösungen


• Für gewöhnlich zentral deployed und betrieben für alle Applikationen und
Produkte im Unternehmen


• Es gilt die 80/20 Regel (wie mit jedem COTS Produkt).
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
B. Build Your Own API Gateway
24
• Zahlreiche Frameworks stehen hier zur Auswahl: Net
fl
ix Zuul 2,
Spring Cloud Gateway, Node, Vert.x, Ballerina, Java EE 8, Camel,
Express Gateway, …


• Bieten viel Flexibilität, alles was man programmieren kann geht!


• Aber: das Team muss das API Gateway entwickeln, warten und
betreiben. Das ist Aufwand und birgt Risiken!
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
C. Service Proxies
25
• Viel Auswahlmöglichkeiten: Apache, HA Proxy, Nginx, OpenResty,
Trae
fi
k, Envoy, …


• Leichtgewichtig und oft einfach in der Kon
fi
guration und Nutzung


• Die unterstützte Funktionen unterscheiden sich teilweise signi
fi
kant
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
D. Cloud Native API Gateways
26
• Wenige Möglichkeiten: KrakenD, Ambassador Edge Stack (Emissary),
Gloo, AWS API Gateway, …


• Basieren häu
fi
g auf Envoy mit zusätzlichen Erweiterung und Plugins


• Bieten eine tiefe Integration in Cloud-native Plattformen (K8s) und
Cloud Provider
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
API Gateway Composition
27
The Enterprise
API
Management
Solution
On-Premise Servers
Service
Proxy
Some Public Cloud
Managed K8s
Cloud
Gateway
A Shared PaaS
A Namespace
Custom


Gateway
Proxy
Legacy Backend
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
DEMOS
28
https://github.com/lreimer/hitchhikers-guide-api-gateways


https://github.com/lreimer/hands-on-krakend
// betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf
THE ANSWER TO LIFE, UNIVERSE,


THE CLOUD, AND API GATEWAYS.
29
42.
Mario-Leander Reimer


Principal Software Architect, QAware GmbH


mario-leander.reimer@qaware.de


https://www.qaware.de


https://speakerdeck.com/lreimer/
&

More Related Content

What's hot

OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!
Tobias Schneck
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue Normal
QAware GmbH
 

What's hot (20)

DevOps - Mehr Geschwindigkeit auf der Schiene
DevOps - Mehr Geschwindigkeit auf der SchieneDevOps - Mehr Geschwindigkeit auf der Schiene
DevOps - Mehr Geschwindigkeit auf der Schiene
 
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit Microservices
 
Der Status Quo des Chaos Engineerings
Der Status Quo des Chaos EngineeringsDer Status Quo des Chaos Engineerings
Der Status Quo des Chaos Engineerings
 
In den sicheren Hafen jax2020
In den sicheren Hafen jax2020In den sicheren Hafen jax2020
In den sicheren Hafen jax2020
 
Enterprise CI/CD: Continuous Integration & Delivery im Enterprise-Umfeld
Enterprise CI/CD: Continuous Integration & Delivery im Enterprise-UmfeldEnterprise CI/CD: Continuous Integration & Delivery im Enterprise-Umfeld
Enterprise CI/CD: Continuous Integration & Delivery im Enterprise-Umfeld
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha Night
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue Normal
 
Holistische Sicherheit für Microservice Architekturen
Holistische Sicherheit für Microservice ArchitekturenHolistische Sicherheit für Microservice Architekturen
Holistische Sicherheit für Microservice Architekturen
 
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
 
OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue Normal
 
DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes
 
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesContinuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
 
IPC 2017 - Legacy-Anwendungen mit Expressive modernisieren
IPC 2017 - Legacy-Anwendungen mit Expressive modernisierenIPC 2017 - Legacy-Anwendungen mit Expressive modernisieren
IPC 2017 - Legacy-Anwendungen mit Expressive modernisieren
 
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEuropeDer Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
 
Aqiptech broschüre 2016
Aqiptech broschüre 2016Aqiptech broschüre 2016
Aqiptech broschüre 2016
 
Title is loading ... Cache is cold.
Title is loading ... Cache is cold.Title is loading ... Cache is cold.
Title is loading ... Cache is cold.
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
 

Similar to Per Anhalter zu Cloud-nativen API Gateways

Enterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue SchwarzEnterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue Schwarz
QAware GmbH
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
Steven Grzbielok
 

Similar to Per Anhalter zu Cloud-nativen API Gateways (20)

Holistische Sicherheit für Microservice-basierte Systeme
Holistische Sicherheit für Microservice-basierte SystemeHolistische Sicherheit für Microservice-basierte Systeme
Holistische Sicherheit für Microservice-basierte Systeme
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native Stack
 
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfA Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
 
Enterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue SchwarzEnterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue Schwarz
 
Per Anhalter durch den Cloud Native Stack (extended edition)
Per Anhalter durch den Cloud Native Stack (extended edition)Per Anhalter durch den Cloud Native Stack (extended edition)
Per Anhalter durch den Cloud Native Stack (extended edition)
 
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die CloudFrom Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
 
fn project serverless computing
fn project serverless computingfn project serverless computing
fn project serverless computing
 
Apache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartApache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ Stuttgart
 
DACHNUG50 MX_Workshop.pdf
DACHNUG50 MX_Workshop.pdfDACHNUG50 MX_Workshop.pdf
DACHNUG50 MX_Workshop.pdf
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
 
Steinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen EvolutionSteinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen Evolution
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
 
Cloud Native Computing & DevOps
Cloud Native Computing & DevOpsCloud Native Computing & DevOps
Cloud Native Computing & DevOps
 
codeBeamer mit Git- und Mercurial-Integration übertrumpft Wettbewerber
codeBeamer mit Git- und Mercurial-Integration übertrumpft Wettbewerber  codeBeamer mit Git- und Mercurial-Integration übertrumpft Wettbewerber
codeBeamer mit Git- und Mercurial-Integration übertrumpft Wettbewerber
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-Anwendungen
 

More from QAware GmbH

"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
QAware GmbH
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
QAware GmbH
 

More from QAware GmbH (20)

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile Architecture
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration Tests
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-ClusterAus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 

Per Anhalter zu Cloud-nativen API Gateways

  • 1. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf PER ANHALTER ZU CLOUD-NATIVEN API GATEWAYS
  • 2. Mario-Leander Reimer Principal Software Architect @LeanderReimer #cloudnativenerd #qaware https://lreimer.github.io
  • 3. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf 3 https://imgur.com/gallery/LGAZEqu The Earl y Code Monkey The Monolith
  • 4. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf 4 Monolithic Vintage System Users system.example.com
  • 5. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf 5 autonomous bounded contexts loosely coupled stateless makeameme.org
  • 6. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf 6 Users Monolithic Vintage System A Shared PaaS A Namespace Service A system.example.com service-a.default.example.com Route
  • 7. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf 7 Users Monolithic Vintage System A Shared PaaS A Namespace Service A system.example.com service-a.default.example.com Route Service B Route service-b…
  • 8. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf 8 Users Monolithic Vintage System A Shared PaaS A Namespace Service A system.example.com service-a.default.example.com Route Service B Route service-b… Service C Route service-c…
  • 9. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf 9 Users Monolithic Vintage System A Shared PaaS A Namespace Service A’ system.example.com service-a.default.example.com Route Service B Route service-b… Service C' Route service-c… 3rd Party Apps
  • 10. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf 10 Users Monolithic Vintage System A Shared PaaS A Namespace Service A’ system.example.com service-a.default.example.com Route Service B Route service-b… Service C' Route service-c… 3rd Party Apps B Namespace Service X Service Y Service Z’ Unreliable Legacy Systems SOAP gRPC
  • 11. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf 11 Users Monolithic Vintage System A Shared PaaS A Namespace Service A’ system.example.com service-a.default.example.com Route Service B Route service-b… Service C' Route service-c… 3rd Party Apps B Namespace Service X Service Y Service Z’ Unreliable Legacy Systems SOAP gRPC Route Internal Systems
  • 12. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf 12 https://thenewstack.io/history-service-mesh/ APIs sind das Herzstück erfolgreicher, digitaler Produkte. Das richtige Management der APIs von Beginn an ist essentiell, um den 
 Big Ball of Mud zu vermeiden.
  • 13. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf 13 APIs sind das Herzstück erfolgreicher, digitaler Produkte. Das richtige Management der APIs von Beginn an ist essentiell, um den 
 Big Ball of Mud zu vermeiden. https://thenewstack.io/history-service-mesh/
  • 14. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf 14 Users Monolithic Vintage System A Shared PaaS A Namespace Service A Service B Service C 3rd Party Apps B Namespace Service X Service Y Service Z Unreliable Legacy Systems SOAP API Gateway Backend for Frontend Internal Systems API Gateway API Proxy
  • 15. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf 15 API Gateways sind wie das Façade Pattern für 
 Cloud Native Application Design und Microservice Architekturen
  • 16. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf • Tra ffi c Management: Path, Header, Host based Routing, Path Rewrite • Rollout and Deployment: A/B Deployment, Canary Release, et.al. • QoS and Resiliency: Circuit Breaker, Retry, Timeouts, Rate Limiting • Security: AAA, Terminate TLS, Support for JWT and JWKS, Open ID, … • Protocol Translation: XML to JSON, gRPC to JSON, … • Transformation: Fan Out / Collect, B4F, Versioning, GraphQL, … • Observability: Logging Integration, Monitoring, Distributed Tracing 16
  • 17. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf 17 W E N S Ingress Egress API Gateways für Nord-Süd Kommunikation Service Meshes für Ost-West Kommunikation
  • 18. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf API Gateways in a Nutshell • Vorteile • Abstraktion der internen Anwendungsstruktur • Vereinfachter Client Code • Einfaches Rollout und Deployment, Versionierung, … • B4Fs reduzieren die Anzahl benötigter Client-Server Calls 18 • Nachteile • Weiterer hoch-verfügbarer Infrastruktur-Baustein der betrieben werden muss • Wird schnell zum DevOps Flaschenhals im Fall von zentralem Betrieb • Business Logik im API Gateway führt versehentlich zu einem ESB
  • 19. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf Mögliche Kriterien für einen Vergleich • Maturity: Gute und aktive Community, keine Issues, häu fi ge Releases • License: Open Source oder Commercial • Supported Features: Tra ffi c Management, Deployment, Security, Translation, Transformation, QoS, Resiliency • DevOps Friendly: Einfaches Setup und Betreibbarkeit, Plattform, CI/CD und GitOps Support, Documentation • Performance: Kleiner Overhead, hoher Durchsatz, Skalierbarkeit, Verfügbarkeit • Observability: Möglichkeiten zur Logging, Monitoring, Tracing Integration 19
  • 20.
  • 21.
  • 22. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf Vier Kategorien von API Gateways A. API Management Solutions B. Build Your Own API Gateway C. Service Proxies D. Cloud Native API Gateways 22
  • 23. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf A. API Management Solutions 23 • Ausgewachsene API Management Lösungen: Kong, Tyk, Mulesoft, 3scale, Gravitee.io, Apigee, … • Machen Sinn für Enterprise Use Cases. Häu fi g kostenp fl ichtig. Einige bieten abgespeckte Open Source Varianten. • Bieten zusätzliche features wie API Kataloge, Developer Portale, API Key Management, Bezahlung oder Integration in EAM Lösungen • Für gewöhnlich zentral deployed und betrieben für alle Applikationen und Produkte im Unternehmen • Es gilt die 80/20 Regel (wie mit jedem COTS Produkt).
  • 24. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf B. Build Your Own API Gateway 24 • Zahlreiche Frameworks stehen hier zur Auswahl: Net fl ix Zuul 2, Spring Cloud Gateway, Node, Vert.x, Ballerina, Java EE 8, Camel, Express Gateway, … • Bieten viel Flexibilität, alles was man programmieren kann geht! • Aber: das Team muss das API Gateway entwickeln, warten und betreiben. Das ist Aufwand und birgt Risiken!
  • 25. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf C. Service Proxies 25 • Viel Auswahlmöglichkeiten: Apache, HA Proxy, Nginx, OpenResty, Trae fi k, Envoy, … • Leichtgewichtig und oft einfach in der Kon fi guration und Nutzung • Die unterstützte Funktionen unterscheiden sich teilweise signi fi kant
  • 26. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf D. Cloud Native API Gateways 26 • Wenige Möglichkeiten: KrakenD, Ambassador Edge Stack (Emissary), Gloo, AWS API Gateway, … • Basieren häu fi g auf Envoy mit zusätzlichen Erweiterung und Plugins • Bieten eine tiefe Integration in Cloud-native Plattformen (K8s) und Cloud Provider
  • 27. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf API Gateway Composition 27 The Enterprise API Management Solution On-Premise Servers Service Proxy Some Public Cloud Managed K8s Cloud Gateway A Shared PaaS A Namespace Custom Gateway Proxy Legacy Backend
  • 28. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf DEMOS 28 https://github.com/lreimer/hitchhikers-guide-api-gateways 
 https://github.com/lreimer/hands-on-krakend
  • 29. // betterCode() API 2021 // Per Anhalter zu Cloud-nativen API Gateways // @LeanderReimer #cloudnativenerd #qaware @bettercodeconf THE ANSWER TO LIFE, UNIVERSE, THE CLOUD, AND API GATEWAYS. 29 42.
  • 30. Mario-Leander Reimer Principal Software Architect, QAware GmbH mario-leander.reimer@qaware.de https://www.qaware.de https://speakerdeck.com/lreimer/ &