D uring the past few years, Novell has been challenging the proprietary world to see if open source software can really be viable in the enterprise arena. Can open source be used on various platforms, keep my data secure, and will it really save company dollars? As the open source movement gains momentum and legitimacy, in concert with ever-increasing economic pressures, Novell has transformed its IT strategy into searching for open source options to solve its internal needs.
This change has come at the same time that Novell has itself become a company that markets both open and proprietary software, terming itself a "mixed-source" vendor. Obviously, Novell uses its own open source products internally, but it is using more and more externally developed open source products as well. From an IT perspective, take a look into some of the open source offerings we've deployed and our strategy to see if it might work in your business. We think you'll be pleasantly surprised; and so will your bottom line.
> Introduction of Open Source Code at Novell
IS&T Web Team experimented using the Apache and Tomcat Web and application servers. The Apache/Tomcat move proved to be highly successful. The extensive Web applications used by Novell, both for external customers (novell.com) and internal employees were moved to these open source offerings. Since then, we've successfully deployed many other open source offerings. In this article, we'll give you some helpful hints and things we have tried that you should consider when looking for open source code to solve your business needs.
At about the same time as the Apache/Tomcat transition, the Developer Services group needed a collaboration tool to interact with external developers who develop to Novell platforms. The Developer Services group chose an open source product called Xoops to build the Novell Forge site (forge.novell.com). Xoops is a content management system that is extensible, object oriented and written in PHP with a MySQL database.
Since then, Developer Services has transitioned to a product called MediaWiki (fronted by Novell iChain) for additional functionality. The Developer Services site hosts open source projects that are more or less related to Novell and its products. The Forge site allows for project administrators to implement CVS or Subversion (both are open source tools) for the users' source code control based on their preference.
Bugzilla was selected as an add-on option for tracking bugs. The Developer Services group has modified the checksetup.pl script that comes with Bugzilla so users can deploy their own copy of Bugzilla per project if they want to track bugs. Bugzilla is an open source bug tracking system written in Perl and uses MySQL for the database back end.
Internal engineers were clamoring for an easy way to increase productivity by sharing reusable code among groups in the same format used in the open source communities. The Xoops open source package was chosen to create an internal project collaboration application for Novell product development. The result? InnerForge was deployed in 2003.
We've integrated Xoops with other open source tools: Mailman (used for mailing lists) and Subversion or CVS, both of which are used for source code control. Xoops manages the access as well as project information and is implemented in a way that the user can create their own projects, manage their own project data and control user access. With this self-managed implementation, it alleviates ongoing support.
Currently, there are 569 InnerForge projects with 1,610 users and all with negligible manual administration. Use of these open source products proved to be highly successful. Fear of dependence on open source was reduced as users began to see the benefits in leveraging available code to solve business needs.
> Novell Transitioned to a Mixed Source Company
As the acceptance of open source was beginning to take hold, Novell was becoming a provider of open source software itself. Novell acquired both Ximian and SUSE Linux in late 2003 and overnight became a distributor of Linux, both on the server and the desktop.
As Novell developers and IT personnel became more familiar with the open source culture, they recognized more opportunities to use open source. Developers, both in the product development groups and in IT, became familiar with the differences between open source and proprietary strategies and actively sought out open source solutions.
Even before the SUSE Linux acquisition, Novell had put in place a plan to begin migrating servers in the data center to Linux. The migration has been moderately paced, mostly planned as servers go out of warranty and are replaced. Statistics show a steady migration during the past four years. As more and more application vendors certify their applications on SUSE Linux, the migration will accelerate.
With these migrations, the data center has seen a decrease in deployment costs for operating systems and an increase stability of server up time. There are several reasons for this. First, Linux is much less expensive to license than HP-UX, Solaris or Windows. Second, Linux rarely requires a reboot.
Novell's migration to the Linux desktop and switching to OpenOffice has been documented in other Novell Connection magazine articles:
- July 2004: novell.com/connectionmagazine/2004/07/tech_talk_1.html
- Sept 2004: novell.com/connectionmagazine/2004/09/tech_talk_5.html
- Nov 2004: novell.com/connectionmagazine/2004/11/tech_talk_1.html
When the employee base moved to the OpenOffice office suite and their desktop operating systems to Linux, we were able to cancel our support contract with Microsoft which saved us US$900,000 annually. With the recent release of SUSE Linux Enterprise Desktop 10 in July 2006, Novell employees are even more delighted about Linux desktop computing with the new functionality and the ease of use.
> Learn About Open Source Licensing
Generally speaking, open source software is made available under a license agreement. In contrast to proprietary software, obviously, the source code for open source software is made available under generous and royalty-free license terms. Users should understand and respect those license terms. Information on the most frequently used licenses may be found at opensource.org.
> Models of Open Source Use/Participation
Of course there are several ways to utilize open source software, as defined below. Novell has operated on all four of these levels. (For more information on these levels, see The Open Source Game: At What Level Should I Play?)
- User only
- Decision maker
> How To Select
It's obviously good practice to do careful analysis before the vendor selection in the proprietary world, but also in the open source world. During this analysis, Novell looks at three categories:
- Proprietary tools
- Custom in-house development
- Open source tools
Some of the selection criteria considered when making the decisions are:
- Platform availability
- Performance and Support
- Features available and gap analysis of how closely they match the requirements
- Cost of the tool out of the box
- How much customization is needed to meet the requirements
- Time to implement
- Risks involved
- Vendor viability
- Total cost including developer costs, licenses, hardware, maintenance, outsource services, soft savings for users of the tool in time savings, and any additional on-going operational costs
Additionally for open source, we look at:
- Size of the community
- Activity of the community
- Other corporate users, their implementations and how closely that matches our implementation plan
- Support and documentation availability
Usually for a proprietary tool, you have the benefit of analysts viewpoints, but for open source in general, you have to research and provide your own analysis. In the long run, it pays to do your homework up front before making the decision.
A good rule of thumb for finding open source options is looking at some of the established open source community sites such as sourceforge.net, freshmeat.net (Keep in mind for this site, it is more untried and untested code where you can find the latest bleeding-edge open source code.), tigris.org and any other big, open source repository.
> Examples of Mixed Source Success
One of the obvious places for Novell to use open source was in our data center. Novell has a unique set of IT infrastructure products that have made our integrations of open source software work smoothly. For example, Novell is migrating source code version control systems to an open source tool called Subversion. Our deployment of Subversion uses Apache mod_auth_ldap and Novell eDirectory and LDAP for authentication and authorization. We also use InnerForge (Xoops) for managing access control. The integrations are relatively easy to implement because of the open standards approach used by Novell products and by most open source offerings.
In our Subversion implementation, we use InnerForge (based on Xoops) to manage the Subversion project creations and user access to the code. This implementation relies on Novell eDirectory and LDAP for the user account information. This has been very successful and does not require involvement or on-going support from our developer team. Users around the globe can provision new projects and user access without delay.
Subversion is a great tool and has significantly less hardware and end-user support requirements than proprietary counterparts while still providing the same quality of source code control. We deployed Subversion on 15 July 2005 and to date we have 269 repositories active. The repositories are currently at 35 GB and the server has been running nonstop, except for a kernel upgrade on 04/08/06. Total accesses have been almost 10 million (9,875,246) with total traffic at more than 20 GB. We usually average 1.2 requests/sec at 2,732 Bytes/second or 2,271 Bytes/request. The servers are located in the data center in Provo, Utah, and are accessed from our offices around the world. Another infrastructure open source tool used at Novell is the JBoss messaging system for service-oriented architecture.
A popular open source database is MySQL. We are currently running MySQL on 21 servers with more than 75 Web applications using it as the back-end database. We have instances of 4.0, 4.1 and 5.0 in production currently. We have used MySQL since 2001 and our top six applications currently have over 21.4 million records. With the later versions, there are significant improvements well suited for large enterprise applications. If you look at the per processor cost model of some of the competing proprietary databases, you can easily see the incredible savings to your bottom line.
> Effect of Open Source on Your IT Organization
Using open source software requires traditional developers to learn new skills. Open source projects utilize a multiplicity of development languages and scripts that might or might not be the same as existing applications. It's not unusual to find open source projects with cutting edge, unproved technologies. Developers frequently find themselves needing to learn a new programming skill. Often it's not the developer's language of choice, so the developer must be flexible, open-minded and willing to learn new skills.
In addition to new programming skills, developers must learn how to use open source infrastructure and databases. Sometimes the open source offerings may not be as mature in their feature sets as the proprietary software they supplant. Developers may feel like they are stepping backwards, as they begin to use the open source products; however, large, active communities make up ground very quickly and often surpass the proprietary competition.
Developers must also become accustomed to participating in a culture in which there is constant scrutiny of their design and coding practices. In the open source world, fame and "stardom" are possible for "hackers" who impress the community with their ingenuity, innovation and rock-solid quality. At the same time, there is also a possibility of public loss of respect for those whose coding practices are not always the best. There is public pressure to code in quality as well as to thoroughly understand user needs. Many developers learn to thrive in this dynamic atmosphere.
Open source software also demands a different development methodology than the traditional waterfall model. Open source projects, in general, have much shorter periods of time between releases. They usually follow an iterative methodology. Open source projects usually depend on the user community to do much of the testing, rather than a dedicated Q/A testing team. This requires a change in the user and producer relationship. The user must understand that he is part of the test team, and that there are bugs in the candidate release. The user must be more tolerant of imperfections and view it at his duty to "wring out" the release candidate, rather than expect someone else to find all the bugs.
On large global tools like Bugzilla, Testopia or OpenOffice, we have deployed the new open source tool while leaving the existing tool(s) in place during the migration process. This allowed users to become familiar with the new tools and realign their processes to fit the new implementation.
> In Summary
There are many advantages to choosing an open source option. In short, here are some of the pros and cons we have found that you should consider:
- leverage more resources (not limited to resources within your company)
- low cost
- responsive, agile
- ability to customize code to meet your specific requirements without consulting fees
- no upgrade or yearly maintenance costs
- intangibles such as sense of contributing to the betterment of society
- possible lack of support
- general lack of documentation
- less ability to judge viability of community v. company
- not on analyst's radar for independent evaluations
- generally not as mature yet
- language and infrastructure consistency
Here are a few questions to ask yourself when considering an open source alternative:
- How far out on the open source limb am I willing to go?
- Is open source more vulnerable when it comes to potential security issues?
- Will the community thrive or disappear? Will I be left as the only user?
- Is there possible developer "contamination?"
- Should I look at "packagers" of open source, such as Novell, (lower cost than proprietary) for greater confidence in their longevity?
For Novell, use of open source software has provided inexpensive software that fits Novell's needs very well. We use open source offerings on various platforms with great success and contribute at all levels in the open source community. With the implementation of Novell iChain and eDirectory products, we have been also able to provide the high security user-based access Novell requires for diverse users.
Many of these tools allow us to get out from under huge annual support and maintenance contracts and better plan staffing based on the tool usage. In most caseswe reduced the cost of maintenance, support and customization.
Also, in general, hardware choices prove to be much less expensive than what is required for many proprietary solutions. Thus Novell has benefited not only in terms of significant reduced costs, but also in terms of flexibility and agility in meeting internal needs. Novell would answer a resounding "YES! You can use open source software on various platforms, save a significant amount of company dollars and keep your data safe and secure." We have been doing all of these for several years now and have demonstrated that you can use open source to run an enterprise business with great success.
Future articles in this series will use case studies to show, in detail, how we planned and implemented some of our world-wide deployments, what is needed for successful implementations and, viable open source tools for developers. Until then, check out So What Does Novell Use? to see many of the successful open source offerings Novell is using internally and where you can find more information about them. Just as before, you might not only be pleasantly surprised at the list, but you'll probably also be amazed.
|Open Source Tools Used at Novell|
|Product||Category||Novell’s Role||Where can I get the tool|
|Evolution||integrated mail, address book, and calendaring||Owner||gnome.org/projects/evolution|
|Mono||software development - Linux||Owner||mono-project.com/Main_Page|
|SUSE Linux Enterprise Server||server operating system||Owner||novell.com/linux|
|SUSE Linux Enterprise Desktop||desktop – operating system and services||Owner||novell.com/linux|
|Testopia 1.0||test case management tool||Owner||mozilla.org/projects/testopia|
|YaST||OS setup and configuration tool||Owner||novell.com/yast|
|Apache 4.1.31||HTTP server||Contributor||tomcat.apache.org/index.html|
|OpenOffice.org 2.0||office suite||Contributor||openoffice.org|
|Subversion 1.3.0||source code control - CVS on steroids, rapidly replacing CVS||Contributor||subversion.tigris.org|
|Tomcat 4.1.31||Java engine||Contributor||tomcat.apache.org/index.html|
|Xgl||intricate graphical operations||Contributor||en.opensuse.org/Xgl|
|Bugzilla 2.22||defect tracking system *||Decision-maker *||bugzilla.org *|
|Big Brother||network services monitoring||User||bb4.org|
|CVS 1.11.1p1-16.n1||source code control - concurrent versions system||User||nongnu.org/cvs|
|Eclipse 3.1||Integrated Development Environment and various plugins||User||eclipse.org|
|Gaim 1.5.0||multiprotocol instant messaging (IM) client||User||gaim.sourceforge.net|
|GCC||programming language compiler||User||gcc.gnu.org|
|Google AJAX toolkits||Web toolkit for building Java apps||User||code.google.com/webtoolkit|
|JBoss jms 4.0.3||SOA messaging and application server||User||jboss.org|
|Mailman 2.1.3||list server software||User||gnu.org/software/mailman/index.html|
|MediaWiki 1.5.8||most widely used Wiki engine||User||mediawiki.org/wiki/MediaWiki|
|OpenLDAP||platform-independent LDAP protocol||User||openldap.org|
|Perl 5.8.3||programming language||User||dev.perl.org|
|PHP 4.3.4||programming language||User||php.net|
|Plone 2.1.3||content management system||User||plone.org|
|Rsync||incremental file and directory transfer and synchronizer||User||rsync.samba.org|
|Samba||file and print services||User||samba.org|
|Saxon 8.7||XML parser||User||saxon.sourceforge.net|
|Squirrel 2.2||SQL front end||User||squirrel-sql.sourceforge.net|
|Synergy 1.3.1||mouse and keyboard sharing||User||synergy2.sourceforge.net|
|Twiki 20040902||Wiki engine that allows restricted subWebs||User||twiki.org|
|ViewVC 1.0-dev (pre-release)||browser-based view into MySQL database tables||User||yolinux.com/TUTORIALS/VNC.html|
|WireShark (previously Ethereal)||network protocol analyzer||User||wireshark.org|
|WordPress 2.0.2||blog engine||User||wordpress.org|
|Xoops 1.0 RC 3.0.5||project collaboration||User||xoops.org|