one endpoint Often provide extras: rate limiting request size constraints serving static content … Often, that’s all we need! Very simple … to setup to scale to provide high availability Reverse Proxy CLIENT PROXY
This will be replaced by CF magic. location /users/ { proxy_pass http://users.local.pcfdev.io/; } location /comments/ { proxy_pass http://comments.local.pcfdev.io/; } }
example: NGINX Ingress Controller Deployed services declare an ingress object Kubernetes does the rest We can do path-based routing DNS name-based routing automated HTTPS cert retrieval with cert-manager fine tuning on the edge router … Kubernetes
Rock solid under heavy load Plenty of extra features Integrate nicely with the respective platform More expensive Most do much more than you need … Horrible unreadable config mess, aren’t we doing “everything aC” now? Starting is harder than necessary PaaS: Pros and Cons
Gateway Zuul 2 May 2018 May 2017 Spring Boot 2 (M1) Spring 5 / Project Reactor Today December 2014 Spring Cloud Netflix Zuul Spring Cloud Gateway July 2017 June 2018 M1 Release
Spring ecosystem: Spring WebFlux, Project Reactor and Spring Boot 2.0 Easily usable predefined filters Simple way to create custom filters Predicates and filters are specific to routes Configuration: Via configuration file (application.yml) Via fluent routes API DSL
Deployment Scale Monitoring Defines the capabilities HTTP2, web sockets, non-blocking, … Adds to overall latency “Avoid overambitious API Gateways” (ThoughtWorks Technology Radar 2018) Development teams might be dependent on central API Gateway team Losses