Adopting Enterprise Open Source Software
Nagios sent me a reminder yesterday, which I finally got around to reading today, to update to the latest version of Nagios Core, 3.2.2. We were running 3.2.0, so we were a couple versions behind, so after browsing through the list of fixed bugs I thought it would be good to go ahead and upgrade. I had a meeting in fifteen minutes, and Nagios was actively monitoring servers in production. I considered for a moment waiting till after the meeting. After all, what if something went wrong during the upgrade, what if there was some unforeseen problem that caused disastrous results and caused me to miss the meeting? And then I remembered, this is Nagios. I did the upgrade, and made the meeting in time to get a cup of coffee on the way. This is how upgrades should work for everything.
After considering the source of my hesitation for a while, it came to me that I’ve been dealing with a lot of proprietary software lately. Gigantic, proprietary systems with names that form acronyms that start with a “T”, one of our providers we deal with ships what must be some of the most complicated software in existence. For example, there is one system that I’ve been dealing with that runs several daemons between servers. One of the daemons restarts on a schedule every night, and for some reason when it restarts it writes to a database and changes the configuration of another daemon that defines what port this other daemon should listen on. Why the configuration is kept in a relational database to begin with is beyond me, and further, why one daemon should be changing the configuration of another daemon is simply mind boggling. It is exactly this type of problem that adherence to original Unix philosophy, and open source, would prevent. If the system were open source, many more eyes would be on the problem, and someone somewhere would see this problem and be able to fix it, submit the patch upstream, and everyone would benefit. Any dealings we have with this system described are handled with care, and caution. Once the system is up and running, I’m very hesitant to patch it. If it goes down, will it come back up again? What new bugs will the patch introduce?
Going back to the Nagios example, upgrading was a snap. I first made a copy of the existing /usr/local/nagios directory, because I’m a sysadmin and having two backups just might not be enough. Then I unzipped the download, ran configure, make all, make install, reviewed the helpful documentation that came with the download, and that was it. I restarted Nagios, using the new binaries, and watched it update all of my host and service checks. It was fast and easy. Nagios is certainly an enterprise class system, so why is it that so many other software packages for large businesses feel that they need to be so complicated?
Enterprise software packages are considered “enterprise” because they handle big problems. Traditionally, with those big solutions comes big-time complication, but it doesn’t have to be like that. Open source packages exist today to compete with most proprietary enterprise packages, and from our experience, the open source systems are lighter, faster, easier to manage, and more reliable than their proprietary counterparts. Infoworld recently released their annual list of BOSSIE award winners, naming three systems that we use here: Alfresco, Magento, and Liferay Portal. So far, according to our experience with these systems, I can’t recommend them enough over their proprietary counterparts. It’s not just a question of cost, although even with support contracts each of these projects is significantly less than anything from traditional sources. The real benefit of using open source packages like these is ease of management, ease of deployment, and reliability.
If you’ve been on the fence about adopting open source at work, or being the push for open source, I would encourage you that it is absolutely worth it. Adopting simple systems that do their job and do it well allowed me to keep my monitoring software up to date and still make it to the meeting on time, coffee in hand.