Found an amazing tool built in Go for mapping out complex SOA infrastructures for run teams.
While at LinuxFest (I know, tons of breakthroughs were made at this event) I bumped into a friend and former colleague of mine from the Arch Team at Nationwide Insurance, who seemingly is turning over the years into a study partner, or, at least I hope so as he’s always got great input into whatever my current challenges are and I get to throw random suggestions into his current thing when I can, but usually I’m the one asking questions.
In my case, I am challenged by a rather complex arrangement of service calls going to many different applications in an SOA, sometimes several service calls deep with conditional logic, that I’ve had quite a bit of trouble mapping out for coherent troubleshooting, and I needed an easy way to map it out myself –as I’ve not found a way to properly explain the urgency of why I need this since I’m currently relying on a heavily invested monitoring system– monitoring interservice processes I don’t have mapped out well enough to see how these applications should be related or communicating during failures– the logs I am currently looking at are not useful to me yet as I do not have the architectural model understood in the application layer — a typical enterprise SOA issue that I’ve been able to compensate for with a solid understanding of the operating systems and system platform architecture, which will only get me so far in SOA. I have to evolve my understanding of the interapplication communications that are taking place to ensure my own competency.
Enter simianviz. It was on the tip of my buddy arch’s tongue as the solution used by NetFlix recently for understanding their own SOA. He had apparently run into just this problem recently and had used it with great success.
Simianviz uses JSON, most appropriately, to represent architecture and displays an infrastructure or application architectural diagram that is most suitable for SOA. What a godsend, this is like free premium beer.
Simianviz Project Page:
I had currently been looking at some model generation tool that comes bundled with confluence in its own, unique, painstaking way, I think as a plugin, which no one is really using outside of my current environment, but represents a large investment of resources that I am not comfortable challenging, so, I’ll be fiddling around with simianviz a bit and seeing what I can take from it. If it’s as nice as it looks I’ll be able to significantly improve some things by using it.
I’ve seen alot of architectural diagrams in different places that weren’t useful, or worse, some places that had none at all to speak of, and I think the issue with some diagramming solutions is that they can be so high energy to create work in that they can deter creation and maintenance of model diagrams to represent current state in detail in large SOA, causing word of mouth to be the low energy comms process about architecture– which I could seriously complicate communication of complex issues and evolution of process, and could eventually interfere with change control. So, definitely something I want to invest in for all my efforts.
I unfortunately can not install it right now until I finish some more of my SDLC transformation as the primary machine I use is so badly out of date now that I don’t want to muddy it up any more until I have a fresh upgrade finished. It’s going to be a mess because I failed to plan properly and did weird stuff to it.