Change of API gateway / reverse proxy / ingress controller

NGINX

Spider internal cluster gateway was until this week NGINX.
However, NGINX was presenting various issues in current setup:

  • In order to absorb scaling up and down of replicas, I was asking NGINX to resolve the IP of the services VIP on every call. DNS resolver had a cache of 30s.
  • The main issue was that NGINX can’t do persistent connections to the upstreams in this case.
  • This made NGINX create a new TCP socket for every request. But soon enough when all TCP sockets were booked, it implied an increase of response time of 1 or 2s for linux to recycle sockets.

Change was needed!

Traefik

Traefik is more and more used as a gateway for Docker clusters (and others).
It is indeed designed to integrate with Docker and to keep updated with cluster state.

So I switched Spider to Traefik this week. And the results are … astonishing !!

Although the response time from the clients have not changed much, the response time internal to the cluster have improved of 80% !!

Note:
I only struggled with Traefik configuration on Path rewriting.  It has less options than NGINX on this field.
I had to add some custom rerouting inside the UIs themselves.

2 Replies to “Change of API gateway / reverse proxy / ingress controller”

  1. Does your blog have a contact page? I’m having a tough
    time locating it but, I’d like to shoot
    you an email. I’ve got some suggestions for your blog you might be interested
    in hearing. Either way, great site and I look forward to seeing it improve over time.

Leave a Reply

Your email address will not be published. Required fields are marked *