If you're using Consul for web services, I really recommend the Traefik web server: <a href="https://traefik.io" rel="nofollow">https://traefik.io</a><p>Traefik replaces Nginx: it's the reverse proxy that maps the incoming requests to your various services, which are advertising on some arbitrary localhost port.<p>The amazing thing is that Traefik integrates with Consul: you only need to point it to your Consul endpoint, and it can automatically publish your services! You can also do other dynamic configuration of Traefik, e.g. by publishing a service via a REST API, via Kubernetes, etc.<p>I've struggled for years to get Nginx configured correctly, and it's been frustrating to have no alternative. In Nginx, dynamic binding is a premium feature. In the free version, you have to rewrite the config and restart the service. That's not fun if you expect services to come and go as part of your natural life-cycle.<p>Traefik's still pretty young. Notably, the docs are shit. But the application is well-designed, and it compiles as a single self-contained binary (as it's written in Go).
If you want to try the new Connect feature from Consul yourself, we've put up an interactive tutorial on our Instruqt learning platform, together with the nice folks at HashiCorp: <a href="https://play.instruqt.com/hashicorp/tracks/connect" rel="nofollow">https://play.instruqt.com/hashicorp/tracks/connect</a>
I've been using Consul as part of micro (<a href="https://github.com/micro/micro" rel="nofollow">https://github.com/micro/micro</a>) for 3 years now. It's a great mechanism for service discovery. This additional feature is going to be seamlessly integrated. They've done a fantastic job of pushing forward Consul as a whole.
If I use Kubernetes, this service is superfluous, right?
Instead, it's useful if you use Docker containers in other fashion since services should communicate with each other.
sidebar: I'm quite fond of hcl[0] I hope it worms its way through more systems as a config format option<p>[0]: <a href="https://github.com/hashicorp/hcl" rel="nofollow">https://github.com/hashicorp/hcl</a>
Could someone care to elaborate what are the main differences between Consul and Istio?
What would be the primary reasons to choose one service mesh over the other?