Microservices etc...

100 views
Skip to first unread message

Arno Schulz

unread,
May 13, 2014, 9:06:08 AM5/13/14
to vertx-...@googlegroups.com
Just as an FYI

There's been a lot of talk about microservices, and out of it I read about netkernel which sounds akin to what vertigo (+ ui) is trying to achieve (see the blog for some interesting posts as well)

Most notably some interesting elements of netkernel:
  • A request visualizer to help debug the system
  • Fine grained measurements (such as a heatmap like tool)


Oliver Rolle

unread,
May 13, 2014, 11:21:34 AM5/13/14
to vertx-...@googlegroups.com
Did you try out netkernel?

Oliver Rolle

unread,
May 13, 2014, 11:25:25 AM5/13/14
to vertx-...@googlegroups.com


Am Dienstag, 13. Mai 2014 15:06:08 UTC+2 schrieb Arno Schulz:
Most notably some interesting elements of netkernel:
  • A request visualizer to help debug the system
Do you more info about the debug?
  • Fine grained measurements (such as a heatmap like tool)
Heatmap is added to my features list :-)

Arno Schulz

unread,
May 13, 2014, 11:37:26 AM5/13/14
to vertx-...@googlegroups.com
For the debug they wanted to replicate what we're used to with java debuggers. All the messages are sent to a cache of sorts. When an error occurs you can use the caching mechanism to find out where it came from, and as everything is cached you can go back in time (a bit like JCAPS http://en.wikipedia.org/wiki/Java_Caps -- I used this at work a while, it's still being used as no real alternative exists as of yet).

I was thinking that this mechanism could be duplicated somehow by having the messages sent to a specific instance of elasticsearch (not elegant but functional) and perhaps figure out a way to associate the vertigo ui with the elasticsearch data (such as click on a node and see the last 10 messages -- and elasticsearch then provides the additional functonality to go back in time or to see the flow of a particular message -- one could even replay the message from a given node).

Anyhow just speculating right now I'm working my way up the docker entrails


--
You received this message because you are subscribed to the Google Groups "vertigo" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx-vertig...@googlegroups.com.
To post to this group, send email to vertx-...@googlegroups.com.
Visit this group at http://groups.google.com/group/vertx-vertigo.
To view this discussion on the web visit https://groups.google.com/d/msgid/vertx-vertigo/50546427-cb5d-425a-8196-078640056a7d%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Jordan Halterman

unread,
May 14, 2014, 2:49:53 AM5/14/14
to vertx-...@googlegroups.com
Yeah that sounds really interesting!

All very good ideas. No doubt there is endless work that can be done both to Vertigo and the UI. Thankfully the priorities are pretty obvious.

Oliver Rolle

unread,
May 14, 2014, 9:08:05 AM5/14/14
to vertx-...@googlegroups.com


Am Dienstag, 13. Mai 2014 17:37:26 UTC+2 schrieb Arno Schulz:
For the debug they wanted to replicate what we're used to with java debuggers. All the messages are sent to a cache of sorts. When an error occurs you can use the caching mechanism to find out where it came from, and as everything is cached you can go back in time (a bit like JCAPS http://en.wikipedia.org/wiki/Java_Caps -- I used this at work a while, it's still being used as no real alternative exists as of yet).
I thought about netkernel. It seems they scale on cores of one cpu, but not on whole clusters. JCAPS: I like the idea of duplicating  a proven solution.

I was thinking that this mechanism could be duplicated somehow by having the messages sent to a specific instance of elasticsearch (not elegant but functional) and perhaps figure out a way to associate the vertigo ui with the elasticsearch data (such as click on a node and see the last 10 messages -- and elasticsearch then provides the additional functonality to go back in time or to see the flow of a particular message -- one could even replay the message from a given node).
This might be interesting for small (local) deployments but for large this is a problematic solution. First we can use an logging module which is deployed like a component but keeps a connection to the ui. For real debugging we might need something more intelligent (based on Hooks and levering the acking mechanism) to track down failures.
 

Oliver Rolle

unread,
May 14, 2014, 9:09:16 AM5/14/14
to vertx-...@googlegroups.com


Am Mittwoch, 14. Mai 2014 08:49:53 UTC+2 schrieb Jordan Halterman:


On May 13, 2014, at 8:25 AM, Oliver Rolle <oliver...@googlemail.com> wrote:



Am Dienstag, 13. Mai 2014 15:06:08 UTC+2 schrieb Arno Schulz:
Most notably some interesting elements of netkernel:
  • A request visualizer to help debug the system
Do you more info about the debug?
  • Fine grained measurements (such as a heatmap like tool)
Heatmap is added to my features list :-)
Yeah that sounds really interesting!

All very good ideas. No doubt there is endless work that can be done both to Vertigo and the UI. Thankfully the priorities are pretty obvious.
I agree, first things first!
 

Arno Schulz

unread,
May 14, 2014, 9:10:50 AM5/14/14
to vertx-...@googlegroups.com
Is there an ideas page in the wiki where we could keep these when someone brings them up?


Jordan Halterman

unread,
May 14, 2014, 7:43:26 PM5/14/14
to vertx-...@googlegroups.com
Good idea.

I proposed the first idea on the ideas page be a page for ideas!

I'm workin on docs a lot lately. I'll be moving em back to the wiki and reorganizing it so this is definitely on the list. Would be good to have some sort of road map.

Arno Schulz

unread,
May 14, 2014, 7:53:20 PM5/14/14
to vertx-...@googlegroups.com
Road map the word I was looking for the whole day.
To view this discussion on the web visit https://groups.google.com/d/msgid/vertx-vertigo/6FD9758C-CAD3-4761-8A64-CF71B3C4D0BA%40gmail.com.

Arno Schulz

unread,
May 14, 2014, 9:36:02 PM5/14/14
to vertx-...@googlegroups.com
PS whatever solution to get the messages coming through a system eelasticsearch is really proving itself to be a backend.

If you check out http://highscalability.com/blog/2009/8/5/stack-overflow-architecture.html stackoverflow uses two eelasticsearch instances to power their search tags, etc...

Oliver Rolle

unread,
May 15, 2014, 12:05:24 PM5/15/14
to vertx-...@googlegroups.com
oh yeah, good idea!


Am Donnerstag, 15. Mai 2014 01:53:20 UTC+2 schrieb Arno Schulz:
Road map the word I was looking for the whole day.

On Wednesday, May 14, 2014, Jordan Halterman <jordan.h...@gmail.com> wrote:
Good idea.

I proposed the first idea on the ideas page be a page for ideas!

I'm workin on docs a lot lately. I'll be moving em back to the wiki and reorganizing it so this is definitely on the list. Would be good to have some sort of road map.

On May 14, 2014, at 6:10 AM, Arno Schulz  wrote:

Is there an ideas page in the wiki where we could keep these when someone brings them up?
On Wed, May 14, 2014 at 9:09 AM, Oliver Rolle  wrote:


Am Mittwoch, 14. Mai 2014 08:49:53 UTC+2 schrieb Jordan Halterman:


On May 13, 2014, at 8:25 AM, Oliver Rolle  wrote:



Am Dienstag, 13. Mai 2014 15:06:08 UTC+2 schrieb Arno Schulz:
Most notably some interesting elements of netkernel:
  • A request visualizer to help debug the system
Do you more info about the debug?
  • Fine grained measurements (such as a heatmap like tool)
Heatmap is added to my features list :-)
Yeah that sounds really interesting!

All very good ideas. No doubt there is endless work that can be done both to Vertigo and the UI. Thankfully the priorities are pretty obvious.
I agree, first things first!
 

--
You received this message because you are subscribed to the Google Groups "vertigo" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx-vertig...@googlegroups.com.
To post to this group, send email to vertx-...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "vertigo" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx-vertigo+unsubscribe@googlegroups.com.

To post to this group, send email to vertx-...@googlegroups.com.
Visit this group at http://groups.google.com/group/vertx-vertigo.

--
You received this message because you are subscribed to the Google Groups "vertigo" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx-vertigo+unsubscribe@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "vertigo" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx-vertigo+unsubscribe@googlegroups.com.

Oliver Rolle

unread,
May 15, 2014, 12:19:49 PM5/15/14
to vertx-...@googlegroups.com


Am Donnerstag, 15. Mai 2014 03:36:02 UTC+2 schrieb Arno Schulz:
PS whatever solution to get the messages coming through a system eelasticsearch is really proving itself to be a backend.

If you check out http://highscalability.com/blog/2009/8/5/stack-overflow-architecture.html stackoverflow uses two eelasticsearch instances to power their search tags, etc...
Its interesting! But this makes distribution of the ui hard. Much to install and configure before it is usable.

I would like to experiment with a graph database because vertigos messaging is based on a graph.

 

Arno Schulz

unread,
May 15, 2014, 12:49:02 PM5/15/14
to vertx-...@googlegroups.com
I get what you're thinking, and I'll do my best to explain my (planned) setup.

Once I start deploying vertigo networks each network will be deployed in their own docker container, the nodes will dump their logs straight into one log file (per network, across multiple networs -- I'm thinking using log4j 2.0 + disruptor to do this asynchronously see http://www.javacodegeeks.com/2013/07/log4j-2-performance-close-to-insane.html)

What is special is where the logs are written (and this gets tricky as logging is one of the remaining tricky topics with docker) instead of being written in a volume of their own container it will be written to a common container (1 log container per host) on which I'm going to run logstash-forwarder (see https://denibertovic.com/post/docker-and-logstash-smarter-log-management-for-your-containers/) to send the results to elasticsearch.

The idea is not to overburden the vertigo network to do any kind of fancy logging rather dump the logs with metadata that allows to trace back a log message to a vertigo node at a point in time for a specific message. The front-end then has to do a bit of magic, but again elasticsearch kills on that.

In this manner you completely decouple your logs.

I would do the same for any kind of metrics just dump it into a logfile and let elasticsearch deal with sorting and filtering

PS: I also realize this contradicts something I mentioned earlier about having a node that collects all the error messages as per no-flo.js example. But I think dumping everything into a single file (errors, metrics, etc...) makes the rest easier to digest for a centralized logger.

What do you guys think?


--
You received this message because you are subscribed to the Google Groups "vertigo" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx-vertig...@googlegroups.com.
To post to this group, send email to vertx-...@googlegroups.com.
Visit this group at http://groups.google.com/group/vertx-vertigo.

Tom Mueck

unread,
Feb 26, 2015, 12:31:42 PM2/26/15
to vertx-...@googlegroups.com
NetKernel scales out and up. About performance tests on two 8-core servers see http://1060research.com/netkernel/scaling/; FYI other topics are covered in this evernote https://www.evernote.com/l/AQYmfUrg1ANA0KZSNxMvdZ3t0_t6pwwu7Ac or simply check out PragPub Magazine Dec 2014 issue. 
Reply all
Reply to author
Forward
0 new messages