Wednesday, August 21, 2019

Distributing Razor Events Using Pub/Sub (1/N)

One of the avenues left unexplored during our tinkerings with Razor was how the various events it emits might be put to good use. It knows a whole bunch of interesting things about how hardware is configured, which IPs are associated with which hostnames, etc., information which can profitably be used throughout an IT organization. So let's see if we can figure out a good way to capture and distribute this information.

Consider that Razor emits a single message for any particular event, but that message might be of interest to multiple systems. This need for message duplication/broadcast points in the direction of a publish/subscribe system of some kind. Google tells me that there are a couple of ways to go in regards to technology selection:

  • There are some light(er)-weight systems like Kafka, Pulsar, etc. which support the pub/sub paradigm, but seem to require a lot of coding to make different pieces talk to each other.
  • Fairly heavy-weight Enterprise Service Bus (ESB) systems which have kitchen-sink functionality and don't (necessarily) require a lot of code.
The latter seems more appropriate for this situation, since I'm not developing an application from scratch but rather trying to integrate a bunch of third-party systems.

So, which ESB to use then? There are a bunch of them, and they all seem to be fairly complicated, so its hard to tell at this point which might be the best. I'm inclined to try WSo2, mostly on the basis that they claim to have all functionality available 100% free of charge. Could just be propaganda, we'll see.

So, what I'd like to do for this experiment is as follows:

  1. Set up a pub-sub system.
  2. Hook up Razor as a message source.
  3. Hook up a couple of message consumers, one of which will be some sort of persistent store and one of which will maybe be an inventory or IP management system.

Just to keep things simple I'll be using the same testbed that I used for the original mucking about with Razor. WSo2 will be installed on the Razor server (not recommended for production), which strongly suggests upping the available RAM on that VM from 1G to 4G. Power up the VM and then

wget https://product-dist.wso2.com/downloads/enterprise-integrator/6.5.0/downloader/wso2ei-linux-installer-x64-6.5.0.rpm
rpm -Uvh wso2ei-linux-installer-x64-6.5.0.rpm
If all goes well you should see a message on console about the various ways of invoking different WSo2 components.

We'll leave it at that for now. Next time we'll start getting things set up in earnest.

0 Comments:

Post a Comment

<< Home

Blog Information Profile for gg00