Showing posts with label Networking. Show all posts
Showing posts with label Networking. Show all posts

Wednesday, April 23, 2014

An Application Within An Application

Sometimes you set out to build something and it takes on a life of its own...maybe even having a different use that you originally intended.   I've always been amazed at how software applications and languages, given a set of features and functions, can be used to build something amazing, something that the original developers never knew could be done.

They say a picture is worth a thousand words.  Nothing could be more true than trying to visualize how a network is put together.  Even walking into a lab or server room and looking at the racks and cables and systems leaves a lot to be desired.  How are my applications communicating?  What are the conversations going on in my network?  What has discovered what?

The Plexxi Control networking view needed to show this information.  Tell me about my Plexxi Switches and what they know about.  What traffic are they carrying?  Who's talking through them.  So we built a network visualizer to show the Plexxi Ring and a handful of networking device types:


We'd display our ring, the connected switches and "buckets" of machines, storage and virtual hosts/machines.  But what about routers and switches and other machines, generic machines, etc.  How can I put these on my diagram to better define my customers network?

Given our ability to display a set of objects and their connections, why not open this up to additional types of objects?  Why not allow the customer to define their own icons (maybe they use Juniper gear or Dell or Cisco or HP)?  Why not allow these new objects to be connected wherever the customer wants?  We can extend our network visualizer to do this...



And so, with just a little more code and a few more "Element" features, our basic network display tool has morphed into a full fledged network visualizer.   We can use it to build just about any network diagram.  We can get a better picture of what's connected where and how our communication is flowing.   Our network application is now a network visualization application too. 

I think I can hear the Plexxi product managers already thinking about a fancy "print" function to take a large network and stick it up on their wall.

Wednesday, November 6, 2013

The Most Useful Dialog I've Ever Built

For many years, I've been lucky to work on some very cool, interesting, fun, and important projects.  Sometimes, when you are fully immersed in the technology you are building, you don't always see the big picture.  Later on, you might be able to look back and fully grasp what you designed, what you built and how someone might actually do something useful with it.

I thought that my very first project, coming out of college and joining Digital Equipment (DEC), was the coolest thing.  It was called DECplan, a project planning and management system.  Remember Gantt Charts?  Precedence Diagrams?  Project Schedules?   I was tasked with "reports".  That's it.  Build a way for users to get reports out of the system.  I designed and built the Report Layout Editor.  A way to take a blank sheet of paper and customize a report.  Basically, drag database fields onto the page and then "generate" the report.  Looking back, our group built Microsoft Project before there was even a Microsoft.  I had no idea that I built a Microsoft Word like interface with one of the first graphical toolkits in the industry....DECwindows.  Very useful.


Next stop, Wellfleet.  A small networking company that had grand plans of doing big things... and it did.  As it grew, to Bay Networks and eventually Nortel Networks, I was lucky to be on the team that was tasked with managing *ALL* the networking products....routers, switches, hubs, and on.  Our lab was huge, with one of every product in the companies offering.  The interface (now using SUN equipment with Motif) had to show all the different devices, each with unique settings, fields and options, in a generic way that allowed for ease of use.  This was a challenge and a success as it did display all the equipment it discovered in a single cohesive view.  Very useful.

Virtualization was born.  An industry that has spawned numerous companies and has provided thousands of jobs to this day.  Now using Java and Swing and being able to really build not only a useful application, but something that was pleasing to use and visually intriguing, was the next challenge.  I was lucky again, to land in the fast paced startup world in the middle of an emerging technology company, Virtual Iron.  Design and build an application for managing virtual machines.  Show me what's running, allow me to rollout new machines quickly and put it all at my finger tips.  Very useful.



Along came SDN.  To be fair, SDN occurred a few years after I had already started at my next lucky stop, Plexxi Inc.  Long before network overlays, SDN, DevOps integration, and all the present day technologies started coming together, Plexxi was already working on it.

Design and build an application that shows me application conversations in my network, lets me put policies on those conversations, automatically adjust my network and show me the results.  Wow.  Of course this would be the most useful application I've ever built.   Then, one day, well into the development of Plexxi Control, the subject of DevOps and troubleshooting and network management came up.  I need to find something in my network, but I don't know much about what I'm looking for.  Maybe I know the IP Address, maybe a name, maybe a type of object, maybe a MAC Address.  Help!

And there it was, "The Most Useful Dialog I've Ever Built."



Can you find this for me?  Do you have this object in your controller database?  What's the name? Do you know the MAC or IP address?  What operations can I do to it?  Which Plexxi Switch sees this object?  What port is it seen on?  Is it on a VLAN? Is it Affinitized? 

It may seem simple, but being able to access and display this kind of information from our central controller helps answer ( in a single press of a "Find" button) a very complex question, that typically involves querying several applications, people, spreadsheets, emails, and all sorts of disorganized network information.  Very very useful.