Open Source vs. Closed Source im ehrlichen Technologievergleich

Digitale Infrastruktur
Jürgen Sadleder, MA

Lange Zeit führten Open Source Befürworter insbesondere den Sicherheitsaspekt ins Treffen, wenn sie die Überlegenheit ihrer Präferenz gegenüber Closed Source Produkten hervorhoben. Die Vielzahl der in der Community engagierten Entwickler, so das Argument, würde dauerhaft höchste Sicherheitsstandards gewährleisten und Software kommerzieller Anbieter auf die Plätze verweisen. Das Bekanntwerden der jahrelang unentdeckt gebliebenen Zero-Day-Sicherheitslücke im Java-Logging Log4j hat diesen fundamentalen Glaubenssatz jedoch nachhaltig erschüttert und die gesamte IT-Branche verunsichert.

Denn, wenn sich bisherige Annahmen betreffend Sicherheit nunmehr als faktisch falsch erwiesen haben, wie ist es dann um weitere wichtige Auswahlkriterien bestellt? Wo fallen am Ende des Tages Kosten zu Buche und bekomme ich im Bedarfsfall wirklich kompetente Unterstützung? In den nächsten Abschnitten wollen wir uns daher neben aktuellen Trends in der Software-Entwicklung, die Qualitäten und Grenzen von Open Source ein wenig genauer ansehen und einen Vergleich mit dem Branchenprimus Microsoft .NET und anderen Herstellern von Closed Source Komponenten anstellen.

Gratis-Software / Open Source (Java)

Obwohl die Programmiersprache Java von Oracle unter Puristen heute nicht mehr zu hundert Prozent als „offen“ durchgehen würde, ist sie mit einer dezentral agierenden Entwickler-Community nach wie vor ein Musterbeispiel für Open Source und damit wichtigster Gegenpart zu kommerziellen Plattformen wie Microsoft .NET.

  • Kosten
    Versteht man unter Open Source die beliebige Gratisnutzung aller Funktionen, so trifft das bei Java nicht immer zu. Gewisse Zugänge bleiben weiterhin kostenfrei, andere wiederum sind nur gegen Bezahlung erhältlich. Eine Abklärung etwaiger Kosten ist jedenfalls empfehlenswert.
  • Bindung
    Durch eine große, dezentral organisierte Entwickler-Community ist man bei einer Entscheidung für Open Source nicht an einen bestimmten Hersteller gebunden. Dementsprechend weniger abhängig sind Sie von dessen produkt- und lizenzspezifischen Entscheidungen.
  • Community
    Die Größe der Open Source Community ermöglicht eine schnelle Weiterentwicklung von Tools und das vergleichsweise rasche Lösen von Problemen. Zumindest in der Theorie. Denn praktisch sind potenzielle Vorteile eng an die Motivation unbezahlter Entwickler gebunden. Verlieren diese ihr Interesse, liegen auch Produktverbesserungen und Bugfixes brach.
  • Lizenzbedingungen
    Open Source Code kann grundsätzlich nach Belieben erweitert und für eigene Anforderungen adaptiert werden. Dafür müssen auf diesem Code basierende Entwicklungen aber selbst wieder Open Source gestellt werden. Für Entwickler ein Dilemma, sobald ihre Applikation kundenspezifische Informationen enthält. Stellen sie den Code öffentlich, verletzen sie datenschutzrechtliche Verpflichtungen. Tun sie es nicht, verstoßen sie gegen den Lizenzvertrag.
  • Standardmodule
    Open Source bietet eine ganze Palette kleinerer (teilweise kostenpflichtiger) Module, mit denen Entwickler Zeit und Geld sparen können. Anstatt etwa das Öffnen einer ZIP-Datei oder einen Datenbank-Zugriff immer neu programmieren zu müssen, setzt man einfach auf bewährte Standard-Komponenten. Eine Methode, derer sich auch Closed Source Befürworter gerne und regelmäßig bedienen.
  • Plattformwahl
    Die meisten Open Source Komponenten kommen aus der offenen LINUX/UNIX Welt. Sie sind auf LINUX, Mac und Windows gleichermaßen lauffähig. Closed Source Produkte hingegen waren bisher immer auf die jeweilige Plattform des Herstellers zugeschnitten. Mit der Entwicklungsumgebung .NET Core hat Microsoft nun allerdings einen Paradigmenwechsel eingeläutet. Entwickler reduzieren damit auch im Closed Source Bereich ihr Abhängigkeitsrisiko.
  • Security
    Lange Zeit galt Open Source als sicherere Alternative zu kommerziellen Lösungen. Das Argument: Fehler könnten in der Community schneller gefunden und Sicherheitslücken effizienter behoben werden. Die mehr als zwölf Jahre lang unentdeckte, kritische Sicherheitslücke im Java-Logging Log4j hat diese Ansicht nun deutlich – und für viele Anwender schmerzhaft – widerlegt.
  • Support
    Ein wesentlicher Nachteil von Open Source ist offenkundig der fehlende Support. Zwar kann man bei manchen Produkten entsprechende Leistungen zukaufen, aber ist es dann überhaupt noch Open Source? Grundsätzlich ja, der zugrunde liegende Code ist schließlich weiterhin kostenlos. Da kommerzielle Anbieter jedoch standardmäßig umfassende Unterstützung bieten, sind deren Lösungen hier klar im Vorteil.

Closed Source Hersteller wie Microsoft .NET

Bei Closed Source Produkten eines kommerziellen Herstellers sind die für Open Source identifizierten Nachteile weitgehend ausgeschlossen. Schließlich arbeiten bezahlte Profis täglich an der Weiterentwicklung und Verbesserung der Plattform sowie an der Behebung etwaiger Schwachstellen. Was dürfen sich Entwickler von Microsoft .NET und Co also erwarten?

  • Support-Garantie
    Die Leistungspalette einer Bezahlplattform umfasst stets auch den Support durch Spezialisten. Bei Fragen oder Problemen hat man daher immer einen kompetenten Ansprechpartner. Allerdings müssen Kunden ihre Systeme immer auf dem neuesten Stand der Technik halten. Tun sie das nicht, so ist der Hersteller nicht an seine Support-Verpflichtung gebunden.
  • SLA (Service Level Agreement)
    Die vom Hersteller zu erbringenden Leistungen sind genau definiert und lassen sich bei Bedarf upgraden.
  • Planungssicherheit
    Mit der Entscheidung für einen kommerziellen Anbieter erwerben Sie immer auch ein gewisses Maß an Sicherheit. Man kann sich i.d.R. darauf verlassen, dass gekaufte Produkte auch in einigen Jahren noch funktionieren und der Hersteller nicht plötzlich das Interesse daran verliert.
  • Produktsicherheit & Langzeitstabilität
    Durch den langfristigen Herstellersupport können sich Entwickler auf ein hohes Maß an Produktsicherheit verlassen und ein solches in Folge auch ihren eigenen Kunden bieten. Einmal eingesetzte Komponenten lassen sich außerdem für Folgeprojekte verwenden und damit das erworbene Know-how und interne Ressourcen optimal nutzen.
  • Verlässliches Schulungsangebot
    Kommerzielle Anbieter schulen ihre Kunden mit produktbasierten Trainings und verbriefen erlangtes Fachwissen mit Zertifikaten. So zeichnet beispielsweise Microsoft regelmäßig jene Entwickler mit dem MVP Award (Most Valuable Professional) aus, die sich besonders aktiv in der Community engagieren und dort ihr Know-how mit anderen teilen.
  • Information bei wichtigen Änderungen
    Geplante Änderungen und Abkündigungen von Produkten werden vom Hersteller rechtzeitig bekannt gegeben, in der Regel ein bis zwei Jahre im Voraus. So können sich Nutzer entsprechend darauf vorbereiten und ihrerseits notwendige Adaptionsprozesse ohne großen Zeitdruck in Gang setzen.

Sicherheitsrisiken bei der Software-Entwicklung

Die Sorge um mögliche Sicherheitslücken und Datenlecks ist unter Entwicklern allgegenwärtig. Und das unabhängig, ob sie auf die Freiheiten von Open Source Lösungen setzen oder doch lieber auf die Stabilität und Annehmlichkeiten kommerzieller Produkte.

Deshalb hier eine Checkliste für die IT-Sicherheit in Ihrem Unternehmen:

  • Befinden sich nicht vertrauenswürdige Geräte im Firmennetzwerk? (z.B. durch Gäste)
  • Kommt veraltete Software zum Einsatz? (z.B. Betriebssystem oder vom User genutzte Anwender-Software)
  • Gibt es eine Risikomatrix? (Software muss regelmäßig überprüft und bei Bedarf angepasst werden.)
  • Erhalten Ihre Mitarbeiter regelmäßig Sicherheitsschulungen, um das Bewusstsein für aktuelle Gefahren zu schärfen? (z.B. Phishing Tests via E-Mail)
  • Wurden technische Sicherheitsmaßnahmen implementiert? (z.B. Firewall, Virenscan, Intrusion Detection)
  • Findet bei Open Source Lösungen eine regelmäßige Überprüfung der Software-Komponenten statt? (Im Gegensatz zu Microsoft .NET gibt es hier keine automatischen Updates.)

8 Trends in der Software-Entwicklung

1. Auf Cloud gebaut
Cloudbasierte Infrastrukturen sind gleichermaßen sicher und effektiv, ihre Kapazitäten hinsichtlich Datenspeicher und Rechenleistung gelten als nahezu unbegrenzt skalierbar. Der Weg in die Cloud ist daher Ziel von Unternehmen jeder Branche. Darunter auch Entwickler von Individualsoftware, die sich zunehmend von traditionellen On Premises Konzepten verabschieden und den Entwicklungsprozess sowie Applikationen (inklusive deren Betrieb) in die Cloud auslagern.

2. Künstliche Intelligenz (KI) wird immer wichtiger
Wenngleich Software-Entwickler sich noch lange keine Sorgen machen müssen, dass Künstliche Intelligenz einmal komplett ihren Job übernimmt, gewinnen KI-gestützte Entwicklungsprozesse zunehmend an Bedeutung. Besonderes Potenzial lässt dabei der Bereich der Verarbeitung natürlicher Sprache (NLP) erkennen, der Computern das Schreiben von Texten und Softwareprogrammen ermöglicht.

3. Boom bei Low-Code/No-Code-Entwicklungen
Fachkräftemangel macht auch vor der IT nicht Halt. Der Bedarf an Software-Ingenieuren wird daher in Zukunft deren Verfügbarkeit deutlich übersteigen. In Folge werden Unternehmen verstärkt auf Low-Code/No-Code-Plattformen (z.B. Microsoft Power Platform) setzen. Damit können auch Personen ohne entsprechende Entwicklungsausbildung diverse Datenbanken und Anwendungen erstellen.

4. Steigende Nachfrage nach der Entwicklung nativer Apps
Mit zunehmender Verbreitung von Tablets und Smartphones sowie damit verbundenen Angeboten, steigen auch die Ansprüche der User. Für erfolgsorientierte Anbieter ist die Entwicklung nativer Apps – maßgeschneiderte Varianten für jedes Betriebssystem – mittlerweile ohne Alternative.

5. Progressive Web-Apps (PWA) im Aufwind
Progressive Web-Apps vereinen die Vorteile von Websites und nativen Applikationen. Sie ermöglichen Kosteneinsparungen und überzeugen mit einer Offline-Funktion und deutlich kürzeren Ladezeiten als normale Webseiten. Unternehmen forcieren die PWA-Entwicklung aber auch wegen des großen Potenzials bei der Suchmaschinenoptimierung.

6. Orientierung an der User Experience (UX)
Für den Erfolg einer Software spielt nicht alleine die Funktionalität eine Rolle sondern auch die User Experience (UX). Verständliche Designs und intuitive Bedienbarkeit werden deshalb im Wettbewerb um die Anwender-Gunst künftig noch stärker ins Zentrum der Entwicklungsarbeit rücken.

7. Perfektionierung digitaler Erlebnisse
Nahezu perfekte digitale Erlebnisse sind heute schon selbstverständlich. Angesichts einer rasant wachsenden Zahl an Anwendungen und allgegenwärtigen Cloud-Strukturen gewinnt die Front-End-Entwicklung zunehmend an Bedeutung. Dort übernehmen Programmierer im operativen Geschäft ähnliche Aufgaben und kümmern sich um Effizienzsteigerung, beschleunigte Fehlerbehebung sowie eine Verbesserung der User-Experience.

8. Prozessbeschleunigung durch CI und CD
Continuous Integration (CI) und Continuous Delivery (CD) gehören zum Software-Entwicklungsprozess. Während CI die Integration von Code-Änderungen gewährleistet, die viele verschiedene Programmierer in ein Projekt einbringen, ermöglicht CD eine laufende und rasche Vornahme von Korrekturen. In der Gesamtschau bilden CI/CD ein immer häufiger eingesetztes System, das Entwicklern ein hohes Maß an Automatisierung sowie verlässliches Monitoring bietet. Apps und Anwendungen lassen sich damit in kürzerer Zeit bereitstellen und korrigieren.

Fazit: Closed-Source-Software ist die sicherere Variante

Es ist einfach fahrlässig, dass essentielle Infrastruktur-Komponenten, wie einer der wichtigsten Logging-Mechanismen der Java-Welt, auf den Schultern von unbezahlten Hobby-Programmieren ruht. Angesichts signifikant steigender Angriffe auf IT-Systeme und vielfältiger Bedrohungsszenarien, sollte immer ein Optimum an Sicherheit angestrebt werden. Und mit betreuten Bezahl-Lösungen ist man dabei heute klar im Vorteil. Nur sie bieten professionellen Entwicklern jene stabile, sichere und verlässliche Grundlage, die sie für ihre Arbeit benötigen. Sollte sich die IT Abteilung aber doch für eine Open Source Software entscheiden, werden viele eigene Entwicklungsressourcen für Anpassungen, Support und Wartung benötigt.

Jürgen Sadleder, MA
Jürgen Sadleder, MA

Jürgen Sadleder ist seit März 2016 Geschäftsführer bei corner4. Mit jahrelanger Erfahrung als Projektmanager und breit gefächertem Prozesswissen unterstützt Jürgen Kunden in den Bereichen Softwareentwicklung, Business Intelligence und Microsoft 365.

icon LinkedIn     Icon Xing





Das könnte Sie auch interessieren: