I’ve been doing work in “open source” for over six years now, and I spend way to much time thinking about it. In fact I started writing this post when I couldn’t sleep after midnight one night, and I decided to get out of bed and write down my thoughts. As Morpheus says in the Matrix movie, there is a difference between knowing the path and walking the path. Having walked on this path for so long, I’ve come up with some ideas about how open source will impact the future, if not the present, and I wanted to share them (if just to formalize them for myself).
While I donate a large amount of time to The OpenNMS Project, my salary (and thus my mortgage) is paid by The OpenNMS Group. The OpenNMS Group is a services company. We don’t sell software, but we sell services in the form of support, consulting, training and custom development. For some reason, being a pure services company is seen by many who really ought to know (i.e investors) as being a “lifestyle” company, one that “can’t scale” and thus isn’t really worth investing in. There were times when I used to think they were right, but as with anything as new and novel as building a business on open source is, I’m now prone to believe that it is more of a case in that they can’t believe that the days of selling software are ending. Something, namely services, must rise to take its place.
The OpenNMS Group has been operating over the last several years with a strange business plan. We call it “spend less than you earn”. I know it sounds crazy, but it has worked for us so far (grin). But the time has come to seek out investment, and so I’ve been thinking of how can I explain what I’ve learned about open source to those busy investment people with necessarily short attention spans without requiring them to spend six years in the trenches like I have. The results are three blog posts: the Past, the Present and the Future. I plan to post these over the next three days, and I welcome any feedback my few but loyal readers may have.
The first real network management platform I was exposed to was SunNet Manager. It was one of the first graphical applications that allowed you to create a database of your network devices, and to both perform some tests (in the form of pings) on them as well as receive events (via either SNMP traps or log messages) from them. Sun developed it more as a toy than a serious application, and it wasn’t long before it was eclipsed by Hewlett-Packard’s OpenView Network Node Manager (NNM).
I got involved with NNM around version 2.2. HP had improved slightly on SunNet Manager but they had gone to great lengths to make it easy to integrate into their platform. The “open” didn’t stand for “open source”, but it was real easy to add new applications that would integrate via menus, graphics, and events. The actual NNM application did not do much – it could discover the network, place that information in a database, and receive events (as well as send “pings” and SNMP requests). Man was it ever fun to play with, and quite powerful despite its simplicity.
For example, suppose you were Bay Networks and you wanted to create a management application for your Wellfleet routers and Synoptics switches. NNM could discover those devices on the network, and using SNMP it would collect the sysObjectID so that it would “know” what type of device it had discovered. Using that ID, Bay could create custom icons that would display the device type, as well as menu items that would then launch external programs and pass to it information such as IP address. Then those applications could send events back in to NNM for display. Bay could focus on the management specifics for their equipment and let NNM handle all of the basic stuff.
This flexibility caused a huge community to spring up around NNM and then around the rest of the OpenView suite. HP provided an API that allowed people to write applications that tightly integrated with their platform, and a users group called the OVForum was started (although it looks like it is called “Vivit” now for some reason), without prompting from HP, to help bring the community together. I was deeply involved with the OVForum, namely through one of its founders, Paul Edmunds, who worked rather close to me in Charlotte, NC. Another person, Chip Sutton, who lived even closer in Durham, took the HP API and created one in Perl. Perl being the language of sysadmins at the time, it caused even more functionality to be added to OpenView.
At its peak around NNM version 5, the OVForum and its yearly conference boasted thousands of members, and it was hard to think of deploying a network management solution without it.
It has been my stated goal to replace OpenView with OpenNMS as the de facto management platform, so one may ask if OpenView was so great, why get rid of it?
Although OpenView was “open”, it was not “open source”. We were often frustrated as consultants working with the product with many of its shortcomings. Then, as HP grew and started to focus more on PCs, OpenView languished. Because the core of the system was closed, it could be hard to get it to do exactly what you needed.
OpenView VARs were often told they could expect 7 to 8 dollars in services for every dollar of software sold. While NNM was priced either for unlimited nodes or for nodes in groups of 250, some of the other OpenView components started using per node pricing which made the product expensive. Combined with services, IT departments started to see their budgets dwindle in order to implement OpenView.
OpenNMS was started to provide all of the functionality of OpenView (and other products) with none of the licensing costs. Being truly open source, all parts of it can be improved and changed where needed, thus it is very flexible and that flexibility reduces deployment time. Lack of licensing also reduces yearly support costs, which have been known to approach 25% of the purchase price of the original software. But the key here was to create a platform, open to all, but driven by services.