The Past, Present, and Future of
Cloud Native API Gateways
Daniel Bryant
tl;dr
• Edge and API gateways have undergone a series of evolutions,
driven by architecture and technology
• Adopting microservices, Kubernetes, and cloud changes the workflow
• Chose your Kubernetes API gateway (and platform) intentionally
2
@danielbryantuk
3
4
Edge: The boundary between your
data center and your user(s)
5
Thesis:
The evolution of the edge has been driven by
application architecture and technology
6
~1995
Application Architecture in the ‘90s
7
Hardware Load Balancer
8
User Systems administrators
Purpose High availability / scalability
Key Features
Load balancing
(round robin, sticky sessions)
Health checks
9
~2000
Similar application architecture
10
11
20022001
Software Load Balancer
12
User
Systems administrators
(“pre DevOps”)
Purpose High availability / scalability
Key Features
Load balancing
Health checks
Observability
13
~2005
14
15
Ecommerce
0
75
150
225
300
2000 2005 2010 2015 2019
Amazon Revenue,
Billions
16
The Application Delivery Controller (ADC)
17
Application Delivery Controllers (ADCs)
18
User Systems administrators
Purpose
High availability and
application acceleration
Key Features
SSL offload, caching,
compression + load balancing
19
https://www.flickr.com/photos/pchow98/5518600886
20
~2010
The proliferation of APIs
21
2005: API launched 2008 2009
API Gateway (1st Gen)
22
User
Systems administrators &
API developers
Purpose
Expose business APIs to broader
ecosystem (“API management”)
Key Features
L7 routing (e.g., throttling),
Publishing, Dev Portal, Analytics,
Monetization
23
~2015
24
Mini-services
25
API Gateway (2nd Generation)
26
API Gateway (2nd Generation)
27
User
Systems administrators &
API developers
Purpose
Centralize cross-cutting app
concerns
Key Features
Authentication, rate limiting,
monitoring + routing
28
Cloud-native
applications
Cloud-Native Microservices
29
• Modularisation (“microservices”)
• Built, released, & operated by
independent application teams
• Scaled independently
App Architecture: A Spectrum of Services
• Different locations (K8s, VMs, FaaS)
• Different protocols (gRPC, HTTP, WebSockets, TCP)
• Different load balancing requirements
(sticky sessions, round robin)
• Different authentication requirements
30
Cloud Gateway
31
Real-time Service
Discovery
Need ADC-like traffic management
capabilities: timeouts, retries, rate
limiting, load balancing, caching, …
Need API Gateway-type
management capabilities:
authentication, developer
portal, metrics, …
1
2
3
Microservices lead to an even bigger change.
32
33
“You build it, you run it”
- Werner Vogels, CTO Amazon
i.e. you own what you code,
from idea to production
Workflow: Full Cycle Development
34
• App teams have full responsibility (and authority) for
delivering a service, and ultimately, value to users
• Increase agility by accelerating the feedback loop
• https://netflixtechblog.com/full-cycle-developers-at-netflix-a08c31f83249
35
This is a change in workflow.
36
Thesis:
The future evolution of the edge will be driven by
application architecture, technology, and workflow
37
Two biggest
challenges with
k8s & the edge
Challenge #1: Scaling Edge Management
38
Development
Team
Operations / Platform Team
Challenge #1: Scaling Edge Management
Challenge #2: Supporting Diverse Edge Requirements
40
41
Three Strategies
Three Strategies for the Edge with Kubernetes
#1: Deploy an Additional Kubernetes API Gateway
#2: Extend Existing API Gateway
#3: Deploy an in-Cluster Edge Stack
42
https://www.getambassador.io/resources/strategies-managing-apis-edge-kubernetes/
#1 Deploy an Additional Kubernetes API Gateway
• Simply deploy an additional “in-cluster” gateway
• Below the existing gateway
• Below the load balancer
• Management
• Development teams responsible
• OR existing ops team manages this
43
#1 Deploy an Additional Kubernetes API Gateway
• Pros
• There is minimal change to the core edge infrastructure.
• Incremental migration easily
• Cons
• Increased management overhead of working with
different components
• Challenging to expose the functionality to each
independent microservice teams
44
#2 Extend Existing API Gateway
• Implemented by modifying or augmenting the existing API
gateway solution
• Enable synchronization between the API endpoints and
location of k8s services
• Custom ingress controller for the existing API Gateway or
load balancer
45
#2 Extend Existing API Gateway
• Pros
• Reuse the existing tried and trusted API gateway
• Leverage existing integrations with on-premises
infrastructure and services
• Cons
• Workflows must change to preserve a single source of
truth for the API gateway configuration.
• Limited amount of configuration parameters via
Kubernetes annotations
46
#3 Deploy an In-Cluster Edge Stack
• Deploy Kubernetes-native API gateway with
integrated supporting edge components
• Installed in each of the new Kubernetes clusters,
replacing existing edge
• Ops team own, and provide sane defaults
• Dev teams responsible for configuring the edge
stack as part of their normal workflow
47
#3 Deploy an In-Cluster Edge Stack
• Pros
• Edge management is simplified into a single stack
• Supports cloud native best practices: “single
source of truth”, GitOps etc
• Cons
• Potentially a large architectural/responsibility shift
• Platform team must learn about new proxy
technologies and edge components
48
49
Wrapping Up
In Conclusion
• Edge/API gateways have undergone a series of evolutions, driven by architecture and tech
• Hardware -> software
• Networking Layer 4 -> Layer 7
• Centralized management -> decentralised
• Adopting microservices/Kubernetes changes workflow
• Scale edge management
• Support multi-protocol and cross-functional requirements
• Chose your cloud API gateway (and platform components in general) intentionally
50
app.getambassador.io
thenewstack.io/learning-kubernetes-the-need-for-a-realistic-playground
Many thanks!
• Learn more:
• www.getambassador.io/learn/building-kubernetes-platform
• www.getambassador.io/podcasts
• www.infoq.com/profile/Daniel-Bryant
• Find me in:
• Datawire OSS Slack: d6e.co/slack
• Twitter @danielbryantuk
52

GOTOpia 2020: "The Past, Present, and Future of Cloud Native API Gateways"

  • 1.
    The Past, Present,and Future of Cloud Native API Gateways Daniel Bryant
  • 2.
    tl;dr • Edge andAPI gateways have undergone a series of evolutions, driven by architecture and technology • Adopting microservices, Kubernetes, and cloud changes the workflow • Chose your Kubernetes API gateway (and platform) intentionally 2
  • 3.
  • 4.
    4 Edge: The boundarybetween your data center and your user(s)
  • 5.
    5 Thesis: The evolution ofthe edge has been driven by application architecture and technology
  • 6.
  • 7.
  • 8.
    Hardware Load Balancer 8 UserSystems administrators Purpose High availability / scalability Key Features Load balancing (round robin, sticky sessions) Health checks
  • 9.
  • 10.
  • 11.
  • 12.
    Software Load Balancer 12 User Systemsadministrators (“pre DevOps”) Purpose High availability / scalability Key Features Load balancing Health checks Observability
  • 13.
  • 14.
  • 15.
    15 Ecommerce 0 75 150 225 300 2000 2005 20102015 2019 Amazon Revenue, Billions
  • 16.
  • 17.
    The Application DeliveryController (ADC) 17
  • 18.
    Application Delivery Controllers(ADCs) 18 User Systems administrators Purpose High availability and application acceleration Key Features SSL offload, caching, compression + load balancing
  • 19.
  • 20.
  • 21.
    The proliferation ofAPIs 21 2005: API launched 2008 2009
  • 22.
    API Gateway (1stGen) 22 User Systems administrators & API developers Purpose Expose business APIs to broader ecosystem (“API management”) Key Features L7 routing (e.g., throttling), Publishing, Dev Portal, Analytics, Monetization
  • 23.
  • 24.
  • 25.
  • 26.
    API Gateway (2ndGeneration) 26
  • 27.
    API Gateway (2ndGeneration) 27 User Systems administrators & API developers Purpose Centralize cross-cutting app concerns Key Features Authentication, rate limiting, monitoring + routing
  • 28.
  • 29.
    Cloud-Native Microservices 29 • Modularisation(“microservices”) • Built, released, & operated by independent application teams • Scaled independently
  • 30.
    App Architecture: ASpectrum of Services • Different locations (K8s, VMs, FaaS) • Different protocols (gRPC, HTTP, WebSockets, TCP) • Different load balancing requirements (sticky sessions, round robin) • Different authentication requirements 30
  • 31.
    Cloud Gateway 31 Real-time Service Discovery NeedADC-like traffic management capabilities: timeouts, retries, rate limiting, load balancing, caching, … Need API Gateway-type management capabilities: authentication, developer portal, metrics, … 1 2 3
  • 32.
    Microservices lead toan even bigger change. 32
  • 33.
    33 “You build it,you run it” - Werner Vogels, CTO Amazon i.e. you own what you code, from idea to production
  • 34.
    Workflow: Full CycleDevelopment 34 • App teams have full responsibility (and authority) for delivering a service, and ultimately, value to users • Increase agility by accelerating the feedback loop • https://netflixtechblog.com/full-cycle-developers-at-netflix-a08c31f83249
  • 35.
    35 This is achange in workflow.
  • 36.
    36 Thesis: The future evolutionof the edge will be driven by application architecture, technology, and workflow
  • 37.
  • 38.
    Challenge #1: ScalingEdge Management 38 Development Team Operations / Platform Team
  • 39.
    Challenge #1: ScalingEdge Management
  • 40.
    Challenge #2: SupportingDiverse Edge Requirements 40
  • 41.
  • 42.
    Three Strategies forthe Edge with Kubernetes #1: Deploy an Additional Kubernetes API Gateway #2: Extend Existing API Gateway #3: Deploy an in-Cluster Edge Stack 42 https://www.getambassador.io/resources/strategies-managing-apis-edge-kubernetes/
  • 43.
    #1 Deploy anAdditional Kubernetes API Gateway • Simply deploy an additional “in-cluster” gateway • Below the existing gateway • Below the load balancer • Management • Development teams responsible • OR existing ops team manages this 43
  • 44.
    #1 Deploy anAdditional Kubernetes API Gateway • Pros • There is minimal change to the core edge infrastructure. • Incremental migration easily • Cons • Increased management overhead of working with different components • Challenging to expose the functionality to each independent microservice teams 44
  • 45.
    #2 Extend ExistingAPI Gateway • Implemented by modifying or augmenting the existing API gateway solution • Enable synchronization between the API endpoints and location of k8s services • Custom ingress controller for the existing API Gateway or load balancer 45
  • 46.
    #2 Extend ExistingAPI Gateway • Pros • Reuse the existing tried and trusted API gateway • Leverage existing integrations with on-premises infrastructure and services • Cons • Workflows must change to preserve a single source of truth for the API gateway configuration. • Limited amount of configuration parameters via Kubernetes annotations 46
  • 47.
    #3 Deploy anIn-Cluster Edge Stack • Deploy Kubernetes-native API gateway with integrated supporting edge components • Installed in each of the new Kubernetes clusters, replacing existing edge • Ops team own, and provide sane defaults • Dev teams responsible for configuring the edge stack as part of their normal workflow 47
  • 48.
    #3 Deploy anIn-Cluster Edge Stack • Pros • Edge management is simplified into a single stack • Supports cloud native best practices: “single source of truth”, GitOps etc • Cons • Potentially a large architectural/responsibility shift • Platform team must learn about new proxy technologies and edge components 48
  • 49.
  • 50.
    In Conclusion • Edge/APIgateways have undergone a series of evolutions, driven by architecture and tech • Hardware -> software • Networking Layer 4 -> Layer 7 • Centralized management -> decentralised • Adopting microservices/Kubernetes changes workflow • Scale edge management • Support multi-protocol and cross-functional requirements • Chose your cloud API gateway (and platform components in general) intentionally 50
  • 51.
  • 52.
    Many thanks! • Learnmore: • www.getambassador.io/learn/building-kubernetes-platform • www.getambassador.io/podcasts • www.infoq.com/profile/Daniel-Bryant • Find me in: • Datawire OSS Slack: d6e.co/slack • Twitter @danielbryantuk 52