[abacus] Eureka vs gorouter


Hristo Iliev
 

Hi,

Recently abacus introduced Eureka client and stub. Looking at the high level description of what Eureka does it seems it has almost the same responsibilities as gorouter.

What is the reason to have another loadbalancing layer? Can you elaborate on why it was introduced, what problems it solves and why can't gorouter be used for the same?

Regards,
Hristo Iliev


Jean-Sebastien Delfino
 

Hey Hristo,

Eureka helps us as an optional registry for monitoring the performance of
each of our apps with a Hystrix [1] dashboard. We're not using it for
routing the flow of usage events across our apps or load balancing or
anything like the CF Go router does.

We found Hystrix pretty useful to better understand the performance
characteristics of the Abacus apps under load (latency, timeouts, error
rates etc). There are several ways to set up Hystrix to monitor Cloud apps,
but Eureka comes handy when you don't know their IP addresses ahead of
time. The usual setup is then to use Eureka + Turbine + Hystrix (as
described in [2]). You get your apps to register with Eureka, set up
Turbine to get their IPs from Eureka, and serve an aggregated performance
data stream to your Hystrix dashboard for all your apps.

That's what we've been experimenting with, and I believe that Assk
(@sasrin) has started to document the beginning of that monitoring setup as
well in doc/monitor.md [3]. BTW this is all optional, as we only register
the apps if you've set up a Eureka env variable.

HTH

P.S. On a different topic, speaking of the Go router... it actually gets in
the way sometimes. For example, say I want to monitor, poke at, or test a
specific instance of app X running on CF, or each individual instance of
app X... AFAIK I can't do that in front of the Go router as it's not
letting me open HTTP connections to a specific instance of my app (unless I
play around with sticky sessions but that's really just a hack). So to get
around that I often need to struggle to deploy our monitors, debuggers,
HTTP perf tools etc inside CF, behind that Go router... I will probably
raise that issue to the CF community in a different non-Abacus thread... as
I've been finding that pretty inconvenient.

[1] https://github.com/Netflix/Hystrix/tree/master/hystrix-dashboard
[2] http://techblog.netflix.com/2012/12/hystrix-dashboard-and-turbine.html
[3]
https://github.com/cloudfoundry-incubator/cf-abacus/blob/master/doc/monitor.md

- Jean-Sebastien

On Tue, Nov 10, 2015 at 7:54 AM, Hristo Iliev <hsiliev(a)gmail.com> wrote:

Hi,

Recently abacus introduced Eureka client and stub. Looking at the high
level description of what Eureka does it seems it has almost the same
responsibilities as gorouter.

What is the reason to have another loadbalancing layer? Can you elaborate
on why it was introduced, what problems it solves and why can't gorouter be
used for the same?

Regards,
Hristo Iliev


Saravanakumar A. Srinivasan
 

I believe that Assk (@sasrin) has started to document the beginning of that monitoring setup as well in doc/monitor.md [1]
Yes...We have started to write down the steps to setup the Hystrix Dashboard to monitor Abacus and Thanks to @Hristo, we now have steps to configure Hystrix Dashboard using Cloud Foundry environment as well. 

There are several ways to set up Hystrix to monitor Cloud apps, but Eureka comes handy when you don't know their IP addresses ahead of time. The usual setup is then to use Eureka + Turbine + Hystrix (as described in [2]). You get > your apps to register with Eureka, set up Turbine to get their IPs from Eureka, and serve an aggregated performance data stream to your Hystrix dashboard for all your apps.

Last few days, I am working on getting Hystrix Dashboard to use Turbine +  Eureka to monitor Abacus and will be updating the document with the steps needed to get this going.   


Thanks,
Saravanakumar Srinivasan (Assk),




Saravanakumar A. Srinivasan
 


> Last few days, I am working on getting Hystrix Dashboard to use Turbine +  Eureka to monitor Abacus and will be updating the document with the steps needed to get this going.   

I have added steps [1] to monitor Abacus applications using Eureka and Turbine. @Hristo... Could you please try it out and update the corresponding Cloud Foundry installation steps at [2]?

[1] https://github.com/cloudfoundry-incubator/cf-abacus/commit/480e5603963be366e688361454754cb5e3eb4dd3

Thanks,
Saravanakumar Srinivasan (Assk),

-----Saravanakumar A Srinivasan/Burlingame/IBM wrote: -----
To: "Discussions about Cloud Foundry projects and the system overall." <cf-dev@...>
From: Saravanakumar A Srinivasan/Burlingame/IBM
Date: 11/12/2015 08:55PM
Subject: Re: [cf-dev] Re: [abacus] Eureka vs gorouter

I believe that Assk (@sasrin) has started to document the beginning of that monitoring setup as well in doc/monitor.md [1]
Yes...We have started to write down the steps to setup the Hystrix Dashboard to monitor Abacus and Thanks to @Hristo, we now have steps to configure Hystrix Dashboard using Cloud Foundry environment as well. 

There are several ways to set up Hystrix to monitor Cloud apps, but Eureka comes handy when you don't know their IP addresses ahead of time. The usual setup is then to use Eureka + Turbine + Hystrix (as described in [2]). You get > your apps to register with Eureka, set up Turbine to get their IPs from Eureka, and serve an aggregated performance data stream to your Hystrix dashboard for all your apps.

Last few days, I am working on getting Hystrix Dashboard to use Turbine +  Eureka to monitor Abacus and will be updating the document with the steps needed to get this going.   


Thanks,
Saravanakumar Srinivasan (Assk),