Ever since Linux became a viable server operating system, organizations have been looking to all kinds of open source software (OSS) to save on license and maintenance costs and to enjoy the benefits of an open platform that invites innovation.
Examples abound: Apache and Nginx power the majority of web servers, WordPress runs about 25% of the top 100,000 sites globally, OpenStack is becoming a more viable cloud platform with every release, and many of the most interesting DevOps tools are open source.
But most interesting is the open source database space.
A Quick Look Back in Time
Back in the day, a lot of software ran on what were technically NoSQL databases—most client-server applications were being developed using bTrieve (later PervasiveSQL), dBase, or Clarion. Then, however, SQL became widely adopted. Thereafter, Oracle came into its own, DB2 and others gained traction, Microsoft purchased its SQL engine from Sybase, and so on. However, not many projects were built on open source databases, as they simply lacked key features.
MySQL and Open Source Today
Fast-forward a couple of years, and we saw MySQL evolve into a serious database engine, powering many websites and commercial applications. As a result, Oracle bought the company behind MySQL. In the years that have followed, we’ve subsequently seen the growth of a number of very interesting and viable MySQL derivatives in addition to PostgreSQL.
Thus, MySQL is now in a position where it can handle very large-scale operations—when properly architected and managed, that is. But for many—and perhaps you fall into this category—moving to MySQL or another open source database management system (DBMS) for mission-critical workloads is still being evaluated.
Seven OSS DBMS Considerations
If you’re considering MySQL or another open source DBMS as either your primary database or to, perhaps, operate alongside your existing commercial systems, such as Oracle or Microsoft SQL Server, for one reason or another, here are seven things to keep in mind:
- Open source can mean many things: access to view the source code, the ability to modify and contribute code, and free software. It’s important to really understand which of these attributes is valuable to you. If you just want free, then you can find commercial (not open source) databases that are free, such as SQL Server Express, which may be viable for some workloads.
- Don’t assume open source software has no costs. Some open source platforms have not seen growth because their configuration, customization, and maintenance are more costly than the equivalent costs plus licensing of a commercial product.
- Don’t use open source because of personal preference. It’s not a religion, it’s a business and career decision. There are good business reasons to use an open source DBMS. Your desire to support the free software movement is not always one of them. Be sure to do it because you want to use the right tool for the job.
- To SQL or to NoSQL? Some of the most interesting database engines out there are open source NoSQL, such as Cassandra, MongoDB, and Couchbase. Be smart about when transactions and ACIDity are required, and when a newer database engine is an acceptable risk. Consider that in the near future, most SQL databases will also offer NoSQL access to data.
- When evaluating any technology, consider and evaluate its entire ecosystem—what tools, services, support and talent are available? When it comes to open source databases, providers such as Percona and EnterpriseDB provide support, managed services, and consulting. You should also not underestimate the importance of the availability of tuning, optimization, and troubleshooting tools that support open source ?databases, such as MySQL.
- Understand the architectural and performance profile differences between these databases and how they fit your workload requirements. There may be important design decisions you need to make, and trade-offs and limitations to consider, depending on which engine you decide to use. Pay special attention to clustering, high availability, and scaling architectural considerations.
- If it works, why break it? Consider the expense, effort, and opportunity cost to migrate existing applications to a new database engine. Build a company-wide multi-year database strategy and road map, with a workload-by-workload plan based on application requirements and potential upside.
Open source database engines such as MySQL can be a good alternative to their commercial siblings, but, as with all technologies, their adoption needs to be carefully assessed and planned. Thinking through these seven considerations is a good first step.