Open Source
Was ist Open Source?
Mit dem Begriff Open Source wird Software bezeichnet, die von beliebigen Teams und Entwicklern modifiziert und um neue Funktionen oder Fehlerbehebungen ergänzt werden darf, sodass diese zur kontinuierlichen Entwicklung und Aktualisierung der Software beitragen können.
Wodurch unterscheidet sich Open Source von anderen Modellen?
Wenn Entwickler Open Source-Software entwickeln, veröffentlichen und aktualisieren, ist der Grundgedanke, dass die Entwicklergemeinschaft insgesamt zu ihrer kontinuierlichen Weiterentwicklung beitragen. Der Quellcode der Software ist in seiner unkompilierten Form frei verfügbar, und wer möchte, kann mit seiner eigenen Expertise zur Weiterentwicklung oder Modifizierung beitragen.
Welche Bedingungen gelten für Open Source?
Ein weiteres Merkmal von Open Source ist, dass Benutzer Versionen erstellen können, die auf unterschiedlichen Betriebssystemen oder in verschiedenen Online-Umgebungen ausgeführt werden. Die einzige Bedingung für Open Source-Software ist, dass sämtliche Beiträge auch anderen zur Verfügung gestellt werden.
Die Geschichte von Open Source
Open Source-Software wurde tatsächlich Jahrzehnte vor kommerziellen Produkten entwickelt, und ihre Ursprünge reichen zurück bis zum A-2 Compilersystem von 1953. Bis zu den 1970er Jahren herrschte die Philosophie vor, dass die Computing-Hardware selbst das einzige Produkt darstellte, nicht die auf ihr erstellten und geladenen Programme. Mit der Einführung kommerziell erhältlicher Software (häufig in Form gedruckter Textzeilen per Postversand) blieb das Open Source-Konzept vorherrschend für die kommerzielle, akademische und private Nutzung von Computern.
Das Betriebssystem UNIX, das zuerst von AT&T in den frühen 1970er Jahren vertrieben wurde, ist ein gutes Beispiel. Später sollten kommerzielle, proprietäre und Closed Source-Versionen von UNIX veröffentlicht werden, doch Software für UNIX sollte im Rahmen des 1983 ins Leben gerufenen GNU Project entwickelt und vertrieben werden. 1991 wurde ein neuer freier Open Source-Kernel mit der Bezeichnung LINUX – benannt nach dem Entwickler Linus Torvalds – schnell zum fast universellen Standard (und ist dies bis heute geblieben).
Die Open Software Foundation wurde 1988 als nicht gewinnorientierte Gruppe gegründet, um einen Standard für die UNIX-Entwicklung zu definieren und aufrechtzuerhalten. Beim Zusammenschluss mit X/Open entstand The Open Group. Mit fast 1.000 Mitgliedern, die aus einer repräsentativen Auswahl von Hadware-Herstellern und Software-Entwicklern bestehen, bietet The Open Group professionelle Zertifizierungen an und pflegt zahlreiche Standards wie die Single UNIX Specification (SUS) und den Open Agile Architecture Standard.
Welche Vorteile bietet das Open Source-Modell?
Auf Unternehmensebene bietet die Open Source-Entwicklung zahlreiche Vorteile für IT-Experten, Benutzer und die Entwickler selbst. Die Geschwindigkeit und Agilität von Feature-Anfrage-Implementierungen, die mühelose Skalierbarkeit und die Kosteneffizienzen bieten enorme Vorteile.
Das Open Source-Entwicklungsmodell ähnelt stark dem der Cloud. Fehlerbehebungen und Funktionen können unter verschiedenen Entwicklern oder Teams geteilt und anschließend von anderen validiert sowie kompiliert werden. Der Umfang der hierfür vorgesehenen Ressourcen ist flexibel und bei Bedarf können weitere Teams hinzugefügt werden. Es gibt zahlreiche Beispiele für Open Source-Software, die mit einer kleinen Gruppe beginnen und sich zu einer stetig weiter anwachsenden Community entwickeln, um die fortlaufende Entwicklung zu unterstützen.
Dies ist ebenfalls attraktiv für hochqualifizierte Experten, die andere und neue Lösungen für die Entwicklungsprobleme bieten können. Gruppen, die an der Pflege von Open Source-Software arbeiten, müssen nicht darauf warten, dass ein Anbieter Fehlerbehebungen oder neue Funktionen ausliefert, sondern können diese einfach selbst entwickeln.
Open Source-Software bietet darüber hinaus erhebliche Kosteneffizienzen und Vorteile. Der Großteil der Software wird kostenlos vertrieben. Die Investition von Zeit und Geld für die kontinuierliche Open Source-Entwicklung wird auf die gesamte Community verteilt. Auch die Anbieterabhängigkeit entfällt, da die Benutzer nicht vertraglich an eine Drittpartei gebunden sind.
Der wohl größte Vorteil ist jedoch, dass ein Unternehmen mit der Innovation Schritt halten kann. Mit besserer Kostenkontrolle, schnellerer Entwicklung und Implementierung sowie der Möglichkeit eines effektiven Crowdsourcings der laufenden Programmpflege liegen die Vorteile von Open Source-Software auf der Hand.
Freie Software, Closed Source-Software und Open Source-Software im Vergleich
Praktisch sämtliche heute verfügbare Software, ob kommerzielle oder frei verfügbare Public Domain-Software, fällt unter eine von drei Definitionen. „Closed Source“-Software ist vermutlich die am einfachsten zu interpretierende Definition, wobei die Begriffe „frei“ und „Open Source“ trotz grundlegender Unterschiede gelegentlich synonym verwendet werden. Bei so vielen Überschneidungen wird häufig der Begriff FOSS zur Beschreibung von Software verwendet, die sowohl frei als auch Open Source ist.
Closed Source-Software
Closed Source-Software ist im allgemeinen in einem geschützten Format verschlüsselt und kompiliert. Sie wird mit der besonderen Vereinbarung bereitgestellt, dass der Quellcode ohne ausdrückliche Genehmigung nicht dekompiliert, modifiziert, rekompiliert oder weitervertrieben werden darf. Ein hervorragendes Beispiel für Closed Source-Software sind kommerzielle Computer-Betriebssysteme wie Microsoft Windows oder Mac OS von Apple. Diese werden als geistiges Eigentum des Entwicklers angesehen, und beide Unternehmen haben große Anstrengungen unternommen, ihre Arbeit zu schützen.
Freie Software
Freie Software wird gemäß der Definition der „vier grundlegenden Freiheiten“ der nicht gewinnorientierten Free Software Foundation vertrieben. Diese sind das Ausführen der Software für jeden gewünschten Zweck, das Untersuchen oder Verändern des Quellcodes, der Weitervertrieb der Original-Software sowie der Weitervertrieb Ihrer modifizierten Version. Obwohl sich die Bezeichnung „frei“ (free) auf diese vier Freiheiten bezieht und nicht auf einen tatsächlichen Preis, gibt es zahlreiche Beispiele für kommerzielle Releases freier Software-Titel.
Open Source-Software
Open Source Software fällt unter die Definition der Open Source Initiative, die in den späten 1990er Jahren gegründet wurde, um die von der Entwicklergemeinschaft empfundenen Einschränkungen von Free Source-Software zu beseitigen. Wie oben gesagt, ist Open Source ebenso eine Entwickler-Philosophie wie eine anderen Benutzern gewährte Lizenz. Laut Open Source Initiative kann die Software kostenlos weitervertrieben werden. Der Quellcode ist öffentlich verfügbar, kann modifiziert und in einem anderen Format vertrieben werden, diskriminiert weder Personen noch Gruppen und schränkt in keiner Weise die Nutzung anderer Software ein.
Was ist das Open Source-Entwicklungsmodell?
Das Open Source-Entwicklungsmodell wird durch die Prozesse und Werte definiert, durch die es sich vom herkömmlichen Modell unterscheidet, selbst wenn herkömmliche Entwicklungsunternehmen zunehmend zum Open Source-Modell übergehen. Der Schwerpunkt der Open Source-Entwicklung liegt auf der Zusammenarbeit, gegenseitiger Überprüfung und der Philosophie frühzeitiger und häufiger Releases, wodurch häufige Aktualisierungen ermöglicht werden.
Bei der Open Source-Entwicklung ist der Prozess der Feature-Anfrage konstant. Wenn Features, Fehlerbehebungen und Aktualisierungen vorgeschlagen werden, besagt der Feature-Anfrage-Prozess, dass der Vorschlag als Gruppe diskutiert und validiert wird, ehe die Entwicklung und Implementierung erfolgt. Wird eine neue Version kompiliert, so wird diese innerhalb der Community als Alpha-Release für Tests, Feedback und weitere Vorschläge freigegeben.
Einer der Hauptgrundsätze des Open Source-Modells ist, dass die Verantwortung für die Entwicklung und Pflege des Quellcodes auf mehrere Einzelpersonen oder kleine Gruppen verteilt ist. Diese Aktualisierungen werden zwischen mehreren Gruppen ausgetauscht, um den Code mit vollständiger Transparenz zu testen und zu validieren. Nachdem ein Projekt bereit zur Implementierung ist, wird der Code an den Wartungsverantwortlichen oder Manager für die Software weitergegeben, der sicherstellen muss, dass jeglicher neu eingereichte Code den Projektstandards entspricht.
Wie werden Open Source-Softwarelösungen angewendet?
Es fand eine nahezu vollständige Migration zu Open Source-Software statt, so dass 95 Prozent der IT-Unternehmen Open Source für Infrastruktur-Modernisierung, Anwendungsentwicklung und DevOps einsetzten.
Das Betriebssystem LINUX ist ein perfektes Beispiel für das Open Source-Modell, nicht allein wegen der Umgebung selbst, sondern aufgrund Hunderter Open Source-Anwendungen, die hierfür entwickelt wurden. Dies ist zweifellos nicht das einzige Infrastruktur-Beispiel: Xen, KVM und OpenStack sind ebenfalls Open Source.
Im Bereich Big Data sind die Apache Hadoop Plattform, die Spark Datenanalyse und die Atlas Database von MongoDB hervorragende Beispiele für Software, die nach dem Open Source-Modell entwickelt wurde. Anwendungen für maschinelles Lernen umfassen Apache MXNet, PyTorch und TensorFlow.
Weitere Beispiele für heute stark verbreitete Open Source-Software beinhalten Web-Entwicklungs-Tools und Frameworks wie WordPress, PHP, jQuery, Angular und Ruby on Rails. Für mobile Anwendungen ist das Android-Betriebssystem von Google stark verbreitet, während Apache Cordova ein beliebtes Open Source-Framework für die plattformübergreifende mobile Anwendungsentwicklung ist.
Open Source und HPE
Eine offene Zusammenarbeit liegt in der DNA von HPE. Für uns können Open Source-Technologien und -Communitys zur sicheren und umfangreichen Bereitstellung innovativer Lösungen beitragen. HPE bietet zahlreiche Open Source-Softwarelösungen für eine Vielzahl von Unternehmensanwendungen an. HPE ist stolz darauf, mehrere Open Source-Projekte zu unterstützen, zu nutzen und zu diesen beizutragen.
Chapel ist eine Sprache zur parallelen Programmierung für skalierbares Computing mit Portierbarkeit von Desktops und Laptops bis hin zu den höchsten Ebenen von Anwendungen im Bereich des Hochleistungs-Computing.
SmartSim ermöglicht maschinelles Lernen (ML) und künstliche Intelligenz (KI) für herkömmliche High Performance Computing-Anwendungen und bietet Forschern zusätzliche Funktionalitäten für Simulationen wie Online-Analysen, Modellsteuerung und Visualisierung.
KubeDirector ist ein individueller Open Source-Kubernetes-Controller für eine einfache Bereitstellung statusabhängiger Anwendungen in Standard-Kubernetes-Clustern. Er definiert Anwendungseigenschaften durch Metadaten sowie Konfigurations-Artefakte und vereinfacht die Bereitstellung und Aktualisierung von Anwendungen.
SPIFFE ist eine universelle Komponente zur Identitätskontrolle der Cloud Native Computing Foundation. Im Wesentlichen handelt es sich um eine Reihe von Standards für Authentifizierungsdienste in dynamischen und heterogenen Umgebungen mithilfe einer plattformunabhängigen kryptographischen Identität. SPIRE ist ein Open Source-System, das SPIFFE in einer Vielzahl von Umgebungen implementiert.