There has been a massive change in the technology mindset over the last decade. Previously, enterprises relied heavily upon, and trusted, proprietary applications for their business critical needs and distrusted anything open-source as “freeware”. To ensure high-performance, you had to run purpose-built applications on a proprietary operating system on custom hardware.
Today, however, the mindset is much different. So different, in fact, that more recent entrants into the enterprise workforce may find it odd that there was ever a time when Linux and open-source in general were looked down upon with mistrust by companies. For today, when enterprises want mission critical applications, they are increasingly looking to the open-source community for open solutions which they can run on commodity hardware.
I recently led an effort to launch Concurrent’s transparent Internet caching product, Laguna, as an open-source project. My experience with open source in general, and the “open-sourcing” of the Laguna product in particular, has led me to reflect upon a number of factors that an enterprise user should consider when evaluating potential open source projects to use for, or with, their applications:
Integration with the overall solution
Before using an open source project, the user should look at where it will fit within the overall solution or architecture they are building. That is, “what role will the project play?” Does it fill a gap in an architecture? Will it be a building block for another product? Does it need enhancements to serve the needed purpose? Many times a project provides a good base for future development, but sometimes it can be used “as-is.”
When using open source code, the license under which the code is released must be considered. The license impacts how a user may incorporate the code within their product, how they musthandle their own contributions to the code, and what sort of commercial use they may make of it. Licenses range from the relatively permissive Apache License Version 2.0 to the more restrictive GPL. The Open Source Initiative (https://opensource.org/ ) has a handy guide to the most common open source licenses.
If a company using open source software wants to be able to access outside assistance, then the availability of commercial support for the project is important. There are many service and technology companies which offer support for open source projects. In fact, in some cases the main sponsor of an open source project will also offer optional support services along with training, consulting, and custom development services. It is important to take the potential support offerings into account when choosing an open source project to use.
The community which is using and contributing to an open source project is very important as it gives the project its lifeblood and future direction. A particular project may be great technology, but if no one is actively working on the code then it is a dead-end project. Users want to utilize a project which has a dynamic user community which is adding new code, using the project in new ways, and seeking to expand it to tackle new challenges in the future. As more and more people and companies join the community, the project expands and helps solve new challenges.
Commitment to the Project
The company or organization which is using the open source project must consider how much of a commitment it will make to the project. Will it be simply a user of the project or also an active contributor? Ideally, the users of the project will also contribute back to the project in whatever ways it can. This could be code updates, bug fixes, or simply documentation. The whole community benefits when all the users help the project progress.
Open source software can solve a number of challenges for the enterprise user. Many times, open source solves more “foundational” or “infrastructural” problems, such as serving web objects via HTTP (e.g. Apache Traffic Server), user authentication (e.g. OpenLDAP), and operating systems (e.g. CentOS Linux). By using open source to solve these problems, enterprises can then focus upon their core business and add value within their areas of expertise. By considering the factors mentioned above, enterprises can make the best use of their own resources when incorporating open source software into their products or solutions.