Slide 1

Slide 1 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf A HITCHHIKER’S GUIDE TO CLOUD NATIVE API GATEWAYS

Slide 2

Slide 2 text

Mario-Leander Reimer Principal Software Architect @LeanderReimer #cloudnativenerd #qaware https://lreimer.github.io

Slide 3

Slide 3 text

3 https://imgur.com/gallery/LGAZEqu The Earl y Code Monkey The Monolith

Slide 4

Slide 4 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf 4 Monolithic Vintage System Users system.example.com

Slide 5

Slide 5 text

autonomous bounded contexts loosely coupled stateless makeameme.org

Slide 6

Slide 6 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf 6 Users Monolithic Legacy System A Shared PaaS A Namespace Service A system.example.com service-a.default.example.com Route

Slide 7

Slide 7 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf 7 Users Monolithic Legacy System A Shared PaaS A Namespace Service A system.example.com service-a.default.example.com Route Service B Route service-b…

Slide 8

Slide 8 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf 8 Users Monolithic Legacy 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…

Slide 9

Slide 9 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf 9 Users Monolithic Legacy 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

Slide 10

Slide 10 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf 10 Users Monolithic Legacy 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

Slide 11

Slide 11 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf 11 Users Monolithic Legacy 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

Slide 12

Slide 12 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf 12 APIs are the center piece of any successful digital product. 
 
 
 https://thenewstack.io/history-service-mesh/

Slide 13

Slide 13 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf 13 APIs are the center piece of any successful digital product. Proper management of your APIs right from the start is crucial, to not end up in API hell. https://thenewstack.io/history-service-mesh/

Slide 14

Slide 14 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf 14 Users Monolithic Legacy 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

Slide 15

Slide 15 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf 15 API Gateways are like the Façade Pattern in 
 Cloud Native Application Design and Microservice Architectures

Slide 16

Slide 16 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf • 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, Backend for Frontend, GraphQL, … • Observability: Integration into Logging, Monitoring, Tracing Stacks 16

Slide 17

Slide 17 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf 17 W E N S Ingress Egress API Gateways for North-South Communication Service Meshes for East-West Communication

Slide 18

Slide 18 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf API Gateways in a Nutshell • Bene fi ts • Encapsulates internal structure of application • Provides client-speci fi c APIs • B4Fs reduce the number of client-server round trips • Simpli fi es client code 18 • Drawbacks • Yet another highly available component that needs to be managed and deployed • Risk of becoming a DevOps bottleneck if managed centrally • Business logic in API gateway leads to accidental ESB

Slide 19

Slide 19 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf Possible Criteria for a Comparison • Maturity: good and active community, little issues, frequent releases • License: open source or backed by commercial vendor • Supported Features: Tra ff i c Management, Deployment, Security, Translation, Transformation, QoS, Resiliency, Observability • DevOps Friendly: Easy setup and operability, supported platforms, CI/CD • Performance: Small overhead, high throughput, super scalable • Observability: good logging, monitoring, tracing capabilities + integration 19

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf Four Categories of API Gateways A. API Management Solutions B. Build Your Own API Gateway C. Service Proxies D. Cloud Native API Gateways 22

Slide 23

Slide 23 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf A. API Management Solutions 23 • Several full-blown API Management solutions: Kong, Tyk, Mulesoft, 3scale, Apigee, … • Makes sense in Enterprise use cases. Generally cost $$$. • Provide additional features such as payment, developer portals with API key management, integrations into enterprise infrastructure. • Usually, centrally deployed and operated for the whole platform and all the applications. • 80/20 rule applies, like with any other COTS product.

Slide 24

Slide 24 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf B. Build Your Own API Gateway 24 • Several frameworks available: Net fl ix Zuul 2, Spring Cloud Gateway, Node, Vert.x, Ballerina, Java EE 8, Camel, Express Gateway, … • Provides a lot of fl exibility. • But: your team needs to develop, maintain and operate the gateway!

Slide 25

Slide 25 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf C. Service Proxies 25 • Many choices: Apache, HA Proxy, Nginx, OpenResty, Trae fi k, Envoy, … • Lightweight and simple to use. • Provided features vary a lot between products.

Slide 26

Slide 26 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf D. Cloud Native API Gateways 26 • Few choices: KrakenD, Ambassador, Gloo, Maesh • Usually build upon a service proxy such as Envoy and enhance it. • Provide tight integration with cloud native platform, like K8s.

Slide 27

Slide 27 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf DEMOS 27 https://github.com/lreimer/hitchhikers-guide-api-gateways 
 https://github.com/lreimer/hands-on-krakend

Slide 28

Slide 28 text

| JavaLand 2021 | A Hitchhiker's Guide to Cloud native API Gateways | @LeanderReimer #cloudnativenerd #qaware @JavaLandConf THE ANSWER TO LIFE, UNIVERSE, THE CLOUD, AND API GATEWAYS. 28 42.

Slide 29

Slide 29 text

Visit the QAware booth betweem 10:00 - 13:00

Slide 30

Slide 30 text

Mario-Leander Reimer Principal Software Architect, QAware GmbH [email protected] https://www.qaware.de https://speakerdeck.com/lreimer/ &