IBM's approach to open technology
Find out how we're investing in the communities and projects that matter most to the enterprise
For several years, IBM has been recognized as a leader in open technology, from its early work with Apache to its current work across all layers of the cloud stack and application development. The case for open is clear: Projects that are managed under open governance have been found to be more successful, have a longer life, and are less risky than proprietary projects. Find out more about how IBM has played—and continues to play—an integral role in the storied evolution of open source.
IBM has a long history of working in open technology. In fact, in many ways, IBM is largely responsible for the open source movement's success. IBM's strong support for Linux—with patent pledges and significant technical resources and investment in the face of some of the legal uncertainty surrounding its use—brought about a change in posture toward open source for many enterprises. Under the right circumstances, open source can be a compelling and trusted adjunct to proprietary software.
The successful deep collaboration with other industry leaders on Linux led IBM to again work with others to establish the Apache Software Foundation and the Eclipse Foundation. We went even further with Eclipse by seeding it with significant code contribution and dedicated technical resources. On a broad scale, IBM's participation in these and hundreds of other projects and communities set the tone for open source adoption among enterprises.
Today, it seems as if just about every enterprise is charting a course toward a preference for open source over proprietary offerings. Generally, the first step is to go it alone and try to integrate your own stack. Gradually, the pattern has shifted to partnering with others that are strong in the integration work required, with deep understanding of the relevant communities. More on this later.
The case for open governance
One thing IBM has learned through all of this is that those communities that strive for inclusiveness and open governance tend to attract the largest ecosystems and most expansive markets. However, not all open source is created equal, and not all communities thrive.
There is a broad range of open source, and much of it is not truly open. Many open source projects are run by a single individual (or vendor) and are quite closed in their governance, severely limiting contributions from others. Other projects are more welcoming to outside contributions but are still closed when it comes to setting technical strategy and direction.
The key point is that once a project reaches a certain level of success, it usually reaches a tipping point. Without open governance, users realize there is a greater risk of vendor lock-in, or even project abandonment. Participants want a voice in the decisions, and if they feel that their voice is not being heard, projects have been known to fork. This typically has a detrimental effect on the ecosystem, which increases risk.
“We have worked hard over the years to establish a solid and respected reputation in open source circles, and especially in those communities where we invest strategically.”
The reality is that open technology projects managed under open governance—true open governance as we have with organizations such as Apache, Eclipse, OpenStack, Mozilla, and Linux—are demonstrably more successful (by an order of magnitude), have a longer life, and are less risky than those projects that are controlled by a single vendor, or are more restrictive in their governance.
IBM often contributes to and consumes from open source projects that are not under open governance. When our clients or our teams feel that a project is important enough, we often work with the individual or vendor that controls the project to help them see the value of open governance, and to see the potential for even greater success. If we can effectively bring the project to open governance, we increase our investment considerably to help ensure that project's success, and work to grow the community and ecosystem.
For the good of the ecosystem
IBM knows that a rising tide floats all boats. It isn't enough that IBM succeeds—we need to ensure that many can succeed to ensure a vibrant ecosystem. This reduces the risk that comes with embracing open source for ourselves and, more importantly, our users. Other vendors see this as well, as participants in the renaissance of open source understand that competing on plumbing is not where the opportunity lies.
We believe that clients who leverage open source should establish a process for managing its use in their enterprise such that they consider not only technical merit and license, but also the evaluation of the community and ecosystem.
We also believe that clients who embark on a journey to integrate open source should have a partner or partners who can help them engage the community. These partners should be committed to the same enterprise interests, and leverage the accrued goodwill and technical eminence in the community to advance a technical agenda commensurate with their interests.
IBM's commitment and contribution to open source is unrivaled in the industry. We have worked hard over the years to establish a solid and respected reputation in open source circles, and especially in those communities where we invest strategically. We work hard to invest in ensuring interoperability, portability, and various other enterprise characteristics by investing in the community and helping to shape programs that can help deliver those characteristics. We value and work toward open governance because we feel that this is the best way to ensure the long-term success and viability of open source projects. Thousands of IBM developers are working every day in open source projects that matter.
Not all open source is created equal
Many open source projects on GitHub and elsewhere could be described as "furniture left by the curbside for anyone to take." The code is published with an open source license (or not!) but isn't being actively maintained. Even in those cases where the code is actively maintained, it is likely that a single individual or company handles it. This is all well and good until that individual (or company) decides to pursue something more interesting or meets an unfortunate circumstance.
There are countless examples of the consequences of investing in open source projects with a single owner. Most recently, Facebook declared that it was going to discontinue Parse, leaving thousands of developers stranded. Apple acquired FoundationDB, discontinued providing downloads of the software, and said it would no longer provide support. These are just two notable examples; there are many more cases where a developer released some cool capability as open source, and then, for whatever reason, abandoned it.
Now, some open source purists might say, "But you still have the software," which is true. But here's the rub: Are you really going to maintain a mobile app development platform or NoSQL database by yourself?
IBM evaluates open source projects by looking closely at five aspects of the project:
- Responsible licensing—Obviously, we look to understand the open source license that is associated with the technology.
- Accessible commit process—We seek to ensure that there is a clearly defined process for making contributions that welcomes outside contributors.
- Diverse ecosystem—We confirm that there are multiple vendors and ISVs that are delivering offerings based on the technology.
- Participative community—We require that there be a process for contributors to grow their technical eminence in the community.
- Open governance—We evaluate the governance model to determine whether it is truly open.
Of course, we also look at the technology and assess whether there's an architectural fit, but the technology can usually be fixed and improved over time. The key is whether we believe that there are enough positives to warrant the investment to help bring the project to true open governance that will benefit all.
IBM's journey begins with Apache
IBM's journey in open source started with our leadership in the formation of the Apache Software Foundation in 1999, which was created to provide open governance for the development of the Apache HTTP server. IBM was one of the founding sponsors of the foundation, helped shape the governance, contributed to numerous projects, and serves in leadership roles within the organization and on the ASF board.
Seventeen years later, there are nearly 200 projects on ASF, many of which have nothing to do with the original HTTP server project. This includes web technologies, XML, web services, document processing, mobile, cloud, big data and analytics, and messaging. Clearly, we have created a safe place to collaborate and innovate in the open.
In 2001, IBM created the Eclipse Foundation with a grant of the Eclipse Java IDE framework. We had similar goals for the Eclipse Foundation as we did with Apache: to create a safe place to collaborate and innovate under open governance that IBM helped to create. Fifteen years later, there are almost 300 projects at Eclipse with equivalent diversity of domain. Again, the open governance provides a venue that attracts open source developers and provides a crucible in which to collaborate and innovate in the open.
In 2007, IBM collaborated with other key industry leaders to establish the Linux Foundation as a founding Platinum sponsor. Of course, our investment goes well beyond this sponsorship. We have been, and continue to be, a leader in the Linux community by investing hundreds of engineering resources over the years in the Linux kernel and in many of the collaborative projects under the Linux Foundation. IBM may not have a Linux distribution, but we have made considerable contributions over the years in addition to ensuring that the Linux kernel runs on IBM hardware platforms.
In 2012, IBM collaborated with AT&T, Canonical, HP, Intel, Rackspace, Redhat, and SUSE (among others) to establish the OpenStack Foundation. Its goal is to provide an open governance framework for OpenStack. What started with five projects and just over half a million lines of code written by around 50 engineers has blossomed into more than 30 projects comprising more than 2.5 million lines of code written by over 3,500 engineers. In that time, IBM has been one of the leading contributors toward the project's success, ensuring along the way that the focus remains on what matters most to the enterprise.
IBM has nearly 200 engineers working upstream in most of the core OpenStack projects, as well as many of those outside the core. Many of these developers would say that contributing to OpenStack is their day job. We also have upwards of 500 engineers working with or operating OpenStack in our various offering teams and countless others participating in, or leading, OpenStack meetups around the globe.
In 2014, IBM worked with EMC, HP, Intel, Pivotal, SAP, VMware, and others to establish the Cloud Foundry Foundation with the goal of providing open governance for the Cloud Foundry project. Cloud Foundry remains an integral component in IBM's Bluemix offering.
In 2014, the Node.js community went through a dark period where the community developing the technology suffered a schism and forked into two independent projects: Node.js and io.js. Because of IBM's reputation in the open communities, we were asked to help resolve the differences. IBM worked within both communities to bring the factions together under a single open governance model at the Node.js Foundation under the Linux Foundation's collaborative projects program. The community has reconciled, and it is on a steady cadence of long-term and experimental releases. IBM helped to heal the fork and bring the community back to a single, unified code base. IBM is also one of the leading contributors to the Node.js community.
IBM is one of the top contributors to Docker over the last year or so. Three of our developers have earned the respect of their peers at Docker, Inc., and were named maintainers. While Docker is not yet under open governance, we have made strides toward that end with the creation of the Open Container Initiative. As part of this project, Docker contributed libcontainer and the Docker image and transfer format specification, and we have been one of the top contributors to the OCI since its formation in mid-2015. We have also been working collaboratively across various projects such as Docker, Cloud Foundry, and OpenStack to ensure that runC, the successor to libcontainer, is integrated into each of these. This will ensure that we get portable containers across these platforms.
Most recently, IBM recognized the incredible potential of blockchain technology, which underlies Bitcoin. As with the Apache httpd server and the Linux kernel, we recognized that a technology this important needed to be out of the control of any single vendor. So we worked with the Linux Foundation to help establish the Hyperledger Project. IBM and many others in the community contributed initial code and resources in the hope that we could establish an open technology fabric that could fuel the many compelling use cases outside the crypto-currency domain. This project is just getting started, but it is following a similar pattern to many of its successful predecessors.
And much, much more
These are just a few of the examples of IBM's leadership and investment in open source. In just this past year, IBM also led the formation of the Cloud Native Computing Foundation, the Open API Initiatve, and ODPI. We also recently kicked off two Apache incubators—Spark Kernel and SystemML—and we hope to do another in the very near future. This past year, we initiated more than 50 new open source projects and published countless tutorials and sample applications as open source.
IBM has invested significant resources in adapting key open technologies to our Open Power and Z platforms, including MariaDB, Go (which is the language used by many of the emerging open source projects targeted at the system level), Docker, runC, Linux, OpenStack, Cloud Foundry, Kubernetes, Swarm, and many more. In fact, much of IBM's open source influence emanates from the Systems division.
Focus on the enterprise
In OpenStack, for instance, we invest heavily in areas such as security (Keystone), scalability, robustness, live upgrade, globalization, documentation, continuous integration, and delivery (which is vitally important for a project that must manage over 6,000 patch sets a week!). Of course, we also invest in the major aspects of OpenStack, including storage (Swift and Cinder), compute (Nova), networking (Neutron), and orchestration (Heat). We contribute extensively in other important aspects, including marketing, evangelism, and various board-level committee activities. Finally, we have led the effort to define interoperability and portability for the OpenStack platform (DefCore and RefStack). We do this because interoperability and portability are critical to the success of any open technology endeavor. After all, that is what the consumer is expecting.
In all of these cases (and more), IBM has invested close to $1 billion and dedicated hundreds of open source development, marketing, and evangelism resources over the years. We have initiated many of these projects and worked tirelessly to help the organizations and the projects they hosted to define and achieve success. We do this because the value that IBM derives from these projects and organizations extends beyond the open source software itself. Much of the benefit comes from the vibrant communities and thriving ecosystems that develop around these centers of gravity for open technology. Our offerings succeed in proportion to the success of the projects in which we invest.
We are also initiating more and more open source from within the IBM development and research labs through our developerWorks Open initiative.
We focus on driving interoperability, portability, and many of the "-ilities" that matter most to the enterprise. We also focus on contributing IBM innovation upstream, and prefer that to keeping it in closed source when it pertains to these strategic projects such as OpenStack. Yes, there is IBM value-add in our offerings, but we don't invest in interoperability and portability so that we can then throw those attributes out the window when we deliver our offerings based on those open technologies. Our strategy is based on leveraging a solid foundation of open technology and ensuring that the interfaces (APIs and SPIs) defined by these technologies are fully exposed and not hidden or inaccessible behind some proprietary veneer of value-add.
We strive hard not to fork the community code by creating an "IBM OpenStack" or "IBM Cloud Foundry." The OpenStack in IBM Blue Box or in our IBM Cloud OpenStack Services is the same OpenStack that is released by the OpenStack Foundation every six months. The Cloud Foundry we integrate into IBM Bluemix is the same code that is released by the Cloud Foundry Foundation, and the same that is used by HPE, Pivotal, and SAP. The Docker included in IBM Container Service is the same Docker that that community releases.
We invest in the community code for these strategic technologies and ensure that fixes and new features are up-streamed rather than adding extra complexity and effort on IBM's part to maintain an independent, differentiating version. Where we desire to add extensibility that can leverage IBM (or others') differentiating capabilities, we work within the community to create the necessary API or SPI. We also invest in making sure that those extension points are not abused to create a potential for lock-in.
As you can see, IBM takes open source seriously, and we have worked hard over the years to establish a solid and respected reputation in open source circles—especially in those communities where we invest strategically. When we engage in a project, we bring a focus on those aspects that matter most to the enterprise: interoperability, portability, security, scalability, and accessibility. We do this by investing in the community and helping to shape programs that can deliver those characteristics that matter to our clients. We value open governance because it ensures the long-term success and viability of those projects that form the foundation of our enterprise offerings and solutions.
- developerWorks Open Developer Center
- Open Life: "How to grow your open source project 10x and revenues 5x"
- Apache Software Foundation