API Gateway
Meet... Evil Corp!
![](https://pbs.twimg.com/profile_images/903610889680683008/6Ux0C9rw_400x400.jpg)
![](https://cdn.shopify.com/s/files/1/0267/4223/products/purr-evil-t-shirt-teeturtle_800x.jpg?v=1510598698)
Quick rebranding
IoT is trendy...
![](https://cdn-images-1.medium.com/max/1600/1*lVfJFrxmv5WYXnfm7Tbf3A.png)
...so let's do our own...
...with this glorious architecture!
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882126/Untitled_Diagram.png)
1k devices sold later
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882177/Untitled_Diagram.png)
1M devices sold later
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882221/Untitled_Diagram__1_.png)
The horrible truth
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882233/Untitled_Diagram__2_.png)
![](https://i.imgur.com/wimz70n.jpg)
The horrible truth
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882233/Untitled_Diagram__2_.png)
Enter API Gateway
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882245/Untitled_Diagram__3_.png)
Unified SSL termination
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882274/Untitled_Diagram__4_.png)
Unified SSL termination
- Automatic renewal
- No duplication of keys on servers
- Lower resource usage for applications
- SNI
Unified logging
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882291/Untitled_Diagram__5_.png)
Unified logging
- Single format
- Smart parsing of logs (i.e. for auto-scaling, error recovery etc.)
- Request tracking (Correlation ID)
- Easy outsourcing (DataDog)
Single authentication
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882300/Untitled_Diagram__6_.png)
Single authentication
- Stateless authentication
- Great support for standards like OAuth or JWT
- Applications receive already verified user ID as HTTP header
- Much smaller attack vector
Advanced rate limiting
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882306/Untitled_Diagram__7_.png)
Advanced rate limiting
- Interconnected statistics
- Site-wide rate limiting
- Dynamic (smart) filters
- Global kill switch
Common cache
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882307/Untitled_Diagram__8_.png)
One more big reason
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882366/Untitled_Diagram__10_.png)
How you think it's working
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882372/Untitled_Diagram__11_.png)
How it's really working
![](https://presentations.marcinjuraszek.com/breaking-up-the-monolith/content/wheel-of-doom-highlighted.png)
* Twitter's Wheel of Doom
![](https://i.imgur.com/vOSyZ.jpg)
The Proper Way™
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882392/Untitled_Diagram__12_.png)
![](http://i.imgur.com/CoqkE.jpg)
The Proper Way™
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882418/Untitled_Diagram__14_.png)
So where is the place for Kubernetes?
Quick look at cluster
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882455/Untitled_Diagram__1_.png)
Access only through LB
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882456/Untitled_Diagram__2_.png)
API Gateway as main service
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882471/Untitled_Diagram__3_.png)
Ingressing other services
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882474/Untitled_Diagram__4_.png)
Each with multiple pods
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882477/Untitled_Diagram__5_.png)
What if whole zone goes down?
![](https://i.imgur.com/H6rfR.jpg)
Multi-zone API Gateway
![](https://s3.amazonaws.com/media-p.slid.es/uploads/300649/images/4882998/Untitled_Diagram__6_.png)
Want to learn more?
- getkong.org (best API Gateway)
- design patterns for microservices (by Microsoft)
- microservices.io (also section about API Gateway)
- slides.com/imanel/api-gateway (this presentation)
Questions?
Thanks!
![](https://media0.giphy.com/media/l2R0eYcNq9rJUsVAA/giphy.gif)
API Gateway
By Bernard Potocki
API Gateway
- 1,185