Open Source
What is Open Source?
Open source is software that is created and distributed with the intent that multiple teams and developers will be free to modify and contribute new features or fixes for its continued development and updates.
How is open source different from other models?
When developers create, release, and update open source software, the design intent is that the developer community at large will be able to contribute to its ongoing progress. The source code of the software is freely available in its uncompiled form, allowing those who wish to add their own expertise in evolving or modifying it to share their own contributions.
What are the expectations around open source?
Another feature of open source is that users can create versions that will run on different operating systems or online environments. The only expectation for open source software is that those who contribute to it make their own updates available to others as well.
History of open source
Open source software actually predates commercially released titles by decades, tracing its origins back to the A-2 compiler system in 1953. The prevailing philosophy until the 1970s was that the computing hardware itself was the commodity, not the programs created and loaded on it. With the release of commercially available software (often purchased as printed lines of text via mail order), open source remained a prevailing mindset for commercial, academic, and hobbyist computers.
First distributed by AT&T in the early 1970s, the UNIX operating system is a well-known example of this. Commercial, proprietary, and closed-source versions of UNIX would later be released, though software for UNIX would be created and distributed under the GNU Project, which was created in 1983. In 1991, a new free and open source kernel called LINUX, named after creator Linus Torvalds, quickly became (and continues to be) the near-universal standard.
The Open Software Foundation was formed in 1988 as a non-profit group to create and maintain a standard for UNIX development. It has since merged with X/Open to become The Open Group. With nearly 1,000 members representing a cross-section of hardware manufacturers and software developers, The Open Group offers professional certifications and maintains numerous standards like the Single UNIX Specification (SUS) and the Open Agile Architecture Standard.
What are the benefits of the open source model?
At the enterprise level, open source development presents numerous advantages enjoyed by IT professionals, users, and the developers themselves. The speed and agility of feature request implementation, the ability to scale up easily, and the cost efficiencies all provide tremendous benefits.
The open source development model is much like the cloud itself. Fixes and features can be distributed amongst multiple developers or teams, then validated and compiled by others. The amount of resources dedicated is flexible, and more teams can be added where necessary. Many examples of open source software start with a small group that evolves until a larger and larger community are contributing to its ongoing development.
This also attracts higher caliber talent who may create different and new solutions to the challenges in development. Groups working on the maintenance of open source software don’t have to wait for a vendor to deliver fixes or new capabilities, they’re simply able to create them on their own.
Open source software also offers considerable cost efficiencies and benefits. The majority of software is distributed for free. The investment of time and money needed for open source’s ongoing development is shared across the entire community. Vendor lock-in is no longer an issue, as users are not contractually bound to a third party.
Arguably the most important benefit is that an enterprise can truly move at the speed of innovation. With better controlled costs, faster development and implementation, and the ability to effectively crowdsource the ongoing maintenance, the advantages of open source software are self-evident.
Free software vs. closed source software vs. open source software
Virtually all software available today, whether released commercially or in the public domain, falls under one of three definitions. “Closed source” software is likely the easiest definition to interpret, whereas “free” and “open source” are sometimes used interchangeably despite some fundamental differences. With so much crossover between the two, the term FOSS is often used when describing software that is both free and open source.
Closed source software
Closed source software is generally encrypted and compiled in a protected format. It is provided with the specific agreement that the source code may not be decompiled, modified, recompiled, or redistributed without express permission. An excellent example of closed source software is commercial computer operating systems like Microsoft Windows or Apple’s Mac OS. These are considered the intellectual property of the developer, and both companies have gone to considerable lengths to protect their work.
Free software
Free software is distributed under the definition of having “the four essential freedoms” as defined by the non-profit Free Software Foundation. These are to run the software as you wish for any purpose, to study or change the source code, to redistribute the original software, and to redistribute your modified version. Despite the name, “free” refers to these four freedoms and not an actual price—there are many examples of commercially released free source software titles.
Open source software
Open source software falls under the definitions set forth by the Open Source Initiative, created in the late 1990s to address what the developer community felt were limitations of free source software. As stated above, open source is as much a developer philosophy as it is the license it gives to other users. The Open Source Initiative states that the software can be redistributed for free, the source code is publicly available, it can be modified and distributed in a different format, it does not discriminate against persons or groups, and it does not in any way restrict the usage of other software.
What is the open source development model?
The open source development model is defined by the processes and values that differentiate it from the traditional model, even as traditional development organizations are increasingly adopting the open source model. The emphasis of open source development is collaboration, peer review, and the “release early, release often” philosophy, which allows for more frequent updates.
The feature request process with open source development is constant. As features, fixes, and updates are suggested, the open source model’s feature request process states that the suggestion is discussed and validated as a group before being designed and implemented. When a new version is compiled, it’s shared throughout the community as an alpha release for testing, feedback, and further input.
A core tenet of the open source model is that several individuals or small groups share the responsibility for the creation and maintenance of the source code. These updates are shared among multiple groups to test and validate the code with full transparency throughout the teams. Once any project is ready to be implemented, the code is passed to the software’s maintenance or manager, who is responsible for ensuring that all newly submitted code meets project standards.
How are open source software solutions applied?
There has been a near wholesale migration to open source software adoption, with 95 percent of IT enterprises using open source for infrastructure modernization, application development, and DevOps.
As one example, the LINUX operating system is a perfect illustration of the open source model—not just the environment itself, but the hundreds of open source applications designed to run within it. It’s certainly not the only infrastructure example: Xen, KVM, and OpenStack are all open source as well.
For Big Data, Apache’s Hadoop platform and Spark data analytics and MongoDB’s Atlas Database are all prime examples of software that is developed under the open source model. Machine learning applications include Apache MXNet, PyTorch, and TensorFlow.
Other examples of open source software that have near-ubiquitous use today include web development tools and frameworks like WordPress and PHP, jQuery, Angular, and Ruby on Rails. For mobile applications, Google’s Android OS has wide adoption, while Apache Cordova is a popular, open-source framework for cross-platform mobile application development.
Open source and HPE
Open collaboration is in HPE’s DNA. We believe open source technologies and communities can help deliver innovative solutions securely and at scale. HPE offers numerous open source software solutions across a wide variety of enterprise-level applications. HPE is proud to support, use, and contribute to several open source projects.
Chapel is a parallel programming language aimed at scalable computing, portable from desktops and laptops to the highest levels of high-power computing applications.
SmartSim enables machine learning (ML) and artificial intelligence (AI) for traditional high performance computing applications, arming researchers with additional functionality for simulations like online analysis, model steering, and visualization.
KubeDirector is an open source Kubernetes custom controller that makes it easy to deploy stateful applications in standard Kubernetes clusters. It defines app characteristics by meta data and configuration artifacts, making applications easier to deploy and update.
SPIFFE is a universal identity control plane that is part of the Cloud Native Computing Foundation. It’s essentially a set of standards for authenticating services in dynamic and heterogeneous environments through the use of platform-agnostic, cryptographic identity. SPIRE is an open source system that implements the SPIFFE in a wide variety of environments.