The drivers and benefits of using open source in the enterprise have been widely documented. Ultimately, enterprise users adopt open source for two primary reasons: cost and vendor independence. These are the same drivers and benefits that apply to well-known categories such as operating systems, application servers and web browsers. However, because the database plays a role in all enterprise IT applications, the scrutiny and rigor that enterprises apply to the selection, implementation and deployment of open source databases is far more intense and deliberate.
Following the recent and highly public delay in Oracle's 2010 acquisition of Sun Microsystems due to the EU's competitive concerns regarding the open source database market, it's a good time to revisit why open source databases are drawing so much attention. Given the maturity of the database market and the number of open source databases that are currently available, it's no surprise that this topic continues to gain mindshare from corporate developers to CFOs.
Open Source Database Market Today
In reality, there is no such thing as the open source database market. Rather, there is the general database market, of which open source databases are a part. According to analyst estimates, the database market is a $19B industry and 80% of that market is represented by three vendors: IBM, Oracle and Microsoft. This mature market is also littered with an array of specialized data management solutions that were designed to address the wide-ranging requirements of various organizations.
Most of these sub-segments of the database industry each have their own open source database entrants. MySQL is ideal for developers creating web-based applications who want an easy-to-use system that doesn't impose the rigor of a fully functional RDBMS. Derby is perfect as an embedded, Java-only database where a single user and small footprint is required. PostgreSQL is more suitable for high-transaction enterprise applications. Today, the database market has approximately 15-20 open source projects, all of which present different characteristics, goals and design. Selecting the right open source database for an organization can be a daunting task.
Key Factors in Selecting an Open Source Database
Once you've carefully assessed the specific requirements of the application you need to support, it's time to start evaluating some of the core characteristics of various open source databases in order to find the best match. To fully realize the benefits of using an open source database (cost and vendor independence) organizations should consider the following factors:
Community is King: Open source projects are, by definition, all about the community. The community of developers that create and contribute to open source projects make them come to life. Essentially, there are two different kinds of open source communities. First, there are pure open source database projects that are organized around independent and self-funding communities. PostgreSQL is the oldest and largest independent open source database community of this kind. The benefit of such a community is true vendor independence. On the other hand, the second kind of open source community may have a vendor that controls the project and the project could potentially be "purchased." MySQL is one such example. The MySQL.org project was initially funded and controlled by MySQL AB, a commercial company that employed all the key developers and architects of MySQL. The MySQL community has more recently been controlled by Sun, and now Oracle.
An open source project or product without a large and thriving community of contributors and users negates some of the reasons for using open source in the first place. Organizations considering any open source solution should look at the community and understand how it works.
Know the Licensing: Today, the mysteries of open source licensing are well-documented and well-understood by enterprise users. Most companies have open source policies that outline which licenses are acceptable and which are not.
If vendor independence is a priority, look to licenses that are most permissive (BSD being the model in this category. Apache2 is also known well in this area.) These licenses allow for complete freedom to use, distribute and modify the code without restriction. Other open source licenses commonly used by commercial open source companies, including GPL, GPL2 and GPL3, are perfectly acceptable in most cases if you only plan to use the code as is for internal IT projects. Be familiar with your company's open source licensing policy before getting too deep into building a prototype.
Plan for Support: Enterprise users should never implement an open source database without a plan for how they will support it. Most often, companies are looking for a commercial entity that will serve as a single contact if a problem arises. When the community is funded and controlled by one company, as is the case with MySQL, it's easy to know where to get that support. With truly independent communities such as PostgreSQL, the choices are not hard to find, but you have to do your homework.
Look for a vendor that employs community members and supports all phases of your project, from technical evaluations and proof-of-concept to development, deployment and ongoing maintenance. In addition, the ideal partner will also provide the training, services and support required for each phase of the project. Lastly, look for companies that augment the core open source project with value-add modules in the areas of tooling, administration, reporting and large database scaling. These are the attributes you would expect from an enterprise database vendor and they should not be compromised simply because you are going the open source route. Be wary of consulting firms that claim to provide support. Ask to see their trouble ticketing systems and request additional details, such as how many support people are dedicated to their help desk.
Both the MySQL and PostgreSQL ecosystems are filled with firms that offer enterprise database support, but only a very few really provide enterprise-class support. Other open source database projects such as Derby, MongoDB and CouchDB also have commercial entities or mature community support but are much less mature than the leading vendors for PostgreSQL and MySQL.
Use of open source databases is growing in the enterprise and for good reason. Organizations are reducing costs and reducing dependence on single-vendor solutions. As with all IT product decisions, selecting an open source database depends upon your requirements. The open source database landscape is full of solutions that address very different segments of the market, so a clear understanding of your needs is critical.
Take time to understand the dynamics of the community that supports your open source database. Know your own organization's licensing policies. Make a plan for how you will support and update the open source database - from infancy to maturity. These basic criteria will set you on the path for selecting the open source database that best meets your organization's needs.