Itamar Haber is Chief Developer Advocate for Redis Labs.
Open source projects have risen in prominence over the past few years and are becoming important assets to enterprises. A recent report indicates that some 78 percent of enterprises use open source, and two-thirds build software for their customers that is based on open source software.
If you take the case of open source DBMS-es, IDC predicts adoption will grow six times faster than the DBMS market; and as a result, 70 percent of new applications are projected to be on open source RDBMS within the next few years. The importance of open source developers has grown as more enterprises are starting to rely on open source projects.
As the story of open source growth becomes more prolific, however, the importance of enterprise developers to the maturity of open source projects is vastly underemphasized. While projects find a community with open source developers, enterprise developers are instrumental in making these projects viable for demands of enterprise environments.
The Benefits of Open Source
Open source creates a community around software projects, spurring innovation, skirting issues of lock-in, and putting architectural control back into the hands of the enterprises using the technology. Open source also takes away the fear of being constantly at the mercy of vendors who often bundle unnecessary add-ons to cash-cow license purchases, creating shelf-ware with little real value. A strong community ensures that projects continue to grow and improve, cutting edge technologies remain accessible to all, and the pace of innovation continues. In recent times, the creation of new open source foundations supported by major vendors such as Google, Facebook, VMware, IBM, RedHat and others reflects the movement toward allowing innovation to flourish collaboratively and outside organizational boundaries.
However, while open source developers are key to the health of a community, enterprise developers play an equally important role in helping projects to mature. As an example, Salvatore Sanfilippo, creator of the staunchly open source software Redis, was surprised to note that within two years of Redis becoming available, he was being approached by developers inside very large enterprises who were using Redis to handle increasing volumes of traffic. They were using Redis under the radar because it satisfied a need their old school software platforms could not even conceive of handling. He was even more surprised when these enterprise developers started to change the conversation within the Redis community.
A Tale of Two Developers
While open source developers often focus on the creation of new and interesting features to the core technology, enterprise developers are more conscious of solving problems with the right enterprise controls in place. As enterprise developers become more involved in a project, they gradually change the conversation around the project to issues and implementations that are important within an enterprise.
With Redis for example, open source developers drove toward increasingly efficient commands and new data structures to satisfy their cutting-edge needs. Enterprise developers added a bent toward scalability, availability and reliability, which led to a focus on improving high availability and making clustering available.
A similar emphasis on the concept of high availability (HA) and clustering in the early 2000s allowed Linux to really stack up in the data center.
Enterprise developers will also work doggedly to resolve tough issues, jumping hurdles until the solution is found – because often these issues solve the kinds of production problems that are keeping them up at night. Open source developers might not have the same motivation to track the same bug for two weeks straight because the issue may not mean as much as the problem they are trying to solve.
While the interests of open source and enterprise developers seem to be at odds, striking a balance becomes vital, both for the adoption of the technology among the community and for its advancement as a solution for industry scenarios that demand stability and scalability.
A Balanced Ecosystem
In the fast world of software development, you need open source developers that can innovate with very fast iterations to push forward functionality. At the same time, open source communities need enterprise adoption to push reliability and stability boundaries, helping a project move from the early innovative stages to becoming a solution that can work in real-world industry situations.
The difficulty for every project that is walking the line between innovation and becoming enterprise ready is balancing the demands of both groups. With open source, managing change can be a challenge and the community often has diverse opinions, but the greater the diversity and the more developers, the more likely it is that a project is successful.
Industry Perspectives is a content channel at Data Center Knowledge highlighting thought leadership in the data center arena. See our guidelines and submission process for information on participating. View previously published Industry Perspectives in our Knowledge Library.