Spring Cloud team seems to have given up on Zuul 2 especially since they wrote their own gateway and published benchmarks https://github.com/spencergibb/spring-cloud-gateway-bench
Yes but I'm very happy with Zuul at the moment, and it:
I'm not saying we should stay on Zuul, but I'd like at least to study it.
A good link on Zuul 2 architecture : https://medium.com/netflix-techblog/zuul-2-the-netflix-journey-to-asynchronous-non-blocking-systems-45947377fb5c
So I have studied both Spring Cloud Gateway and Zuul 2 documentation and I would say each have their advantages.
Zuul 2 :
Spring Cloud Gateway :
The link about Zuul 2 architecture is very interesting but a bit frightening and the fact that this article is almost 2 years old shows that non blocking is hard and this should apply to Spring Cloud Gateway also.
Thanks a lot for the analysis @PierreBesson ! The "use in production at Netflix" is really important to me, I give this a lot of credit. I also like a lot the features described at https://medium.com/netflix-techblog/open-sourcing-zuul-2-82ea476cb2b3
Yes, Zuul 2 has a lot of advantages although we don't know when/if it will be integrated in Spring Cloud Netflix. If we want to go with it, we will have to redo the gateway around vanilla Zuul 2 (which is possible).
I like that Spring Cloud Gateway seems to make it even easier to customize and supercharge the gateway and this is what we liked initially about Zuul. However we have had very little feedback on the JHipster gateway since we introduced it. I expected a lot of contributions on additional filters to add API management features but few people came forward 馃槥.
I feel like almost nobody is customizing the gateway beyond what we provide so our choice should go to the gateway with the highest performance (maybe let the trainees have fun doing benchmarks).
I just saw your comment @PierreBesson when looking for information on Spring-cloud-gateway.
For one of our client, we extensively use the JHipster gateway and I have a quick feedback.
We plan to use it as the main api gateway, and client would like to customize the route filters heavily to adapt for existing micro-services. (see an internal email I sent a while ago)
I will be leaving this client soon, but @Falydoor and @msambaraju will be following this if you want more hindsight.
Alright @raphaelbrugier, the JHipster R&D team at Ippon Paris is available for help/suggestions should your team need it.
If your have any feedback on what you would like to improve on the current gateway, this is the right issue to post them as we are currently gathering ideas on what we want to have for our future gateway.
JHipster R&D team :heart_eyes:
@PierreBesson I just asked the Spring crew if they were planning on supporting Zuul 2 and the answer was, "no". This concerns me since JHipster uses Spring defaults for so many things.
See: twitter reply
@dsharpe Yeah, they were too clear on this.
@PierreBesson Do you think this rewrite is worth spending effort on ?
I guess supporting spring-cloud-gateway
and an option to bundle withzuul2
will be an overhead.
what you would like to improve on the current gateway
Give a support for FAAS
-> using something like projectriff
OK, so I guess we studied this enough... In the long run this looks like the end for Zuul, if the Spring team do not support it.
However, I'm not confident in Spring Cloud Gateway: it hasn't been tested in real life, and in the past most implementations done by the Spring team have been failures, so I wouldn't go that way.
For me we should stick with Zuul 1 by default for the next year, as it's enough for most people and as it's working very well. Then, we will probably migrate to a non Spring Boot based solution like Traefik (which we already support), or more probably to Istio (on which we already work).
Let's wait a few months until this space consolidates, but if I had to bet on something, I would put my money on Istio.
Most helpful comment
A good link on Zuul 2 architecture : https://medium.com/netflix-techblog/zuul-2-the-netflix-journey-to-asynchronous-non-blocking-systems-45947377fb5c
So I have studied both Spring Cloud Gateway and Zuul 2 documentation and I would say each have their advantages.
Zuul 2 :
Spring Cloud Gateway :