Über unsMediaKontaktImpressum
Mathias Schreiber 08. August 2017

Wie sich Open Source neu erfinden muss

Was als Leidenschaft einzelner Entwickler begann, ist mittlerweile zum festen Bestandteil in vielen modernen Unternehmen rund um den Globus geworden. So natürlich auch in Europa, wo der Marktanteil von Open Source-Software im Laufe der letzten 20 Jahre kontinuierlich zugenommen hat. Ob Webserver oder Programmiersprachen, ob Datenbanken oder Server-Betriebssysteme – in allen Kernbereichen moderner IT-Infrastrukturen lässt sich heute Open Source-Software finden. Sie ist aus ihrer zentralen Rolle in der Geschäftswelt nicht mehr wegzudenken.

Auf den ersten Blick mag es verblüffend erscheinen, dass eben diese Leidenschaft solch hochwertige Lösungen hervorbringt. Denn bis heute ist es die jeweilige Community, die die Software in Stand hält und weiterentwickelt. Die schiere Masse an Anwendern bringt Herausforderungen mit sich, die neue Ideen und Herangehensweisen erfordern, um professionell und sicher am Markt zu bestehen.

Wo so viel Enthusiasmus herrscht, ist zudem der Schritt zu innovativen Entwicklungen ein Katzensprung. So gehen aus Open Source-Software immer wieder Konzepte hervor, die sich rasant zu gängigen Lösungen etablieren. Eine dieser Entwicklungen nennt sich Cloud-Computing.

Cloud-Computing

Cloud-Computing ist keine eigenständige Technologie, sondern wie ein Puzzle aus verschiedenen Technologien und Vorgehensweisen aus dem IT-Bereich. Auch wenn es bis heute keine einheitliche Definition des Begriffs gibt, so ist das zugrundeliegende Konzept sehr einfach: Es besteht aus dem Teilen von Rechner- und Speicherkapazitäten.

Wo früher physikalische Server und Rechner lokal eingesetzt wurden, ist die Anmietung von Dienstleistungen in der sogenannten Cloud selbstverständlich geworden. Dabei stellen Anbieter Anwendungen und Datenbanken zur Verfügung, die über ein Netzwerk – z. B. das Internet – genutzt werden können. Diese IT-Infrastruktur ist virtuell und skalierbar. Und sie hat nicht nur die Geschäftswelt erobert, sondern die gesamte digitale Welt. Beispielsweise basieren sämtliche sozialen Netzwerke auf Cloud-Computing.

Die Vorteile liegen auf der Hand. Hardware- und Software-Ressourcen können individuell und flexibel skaliert werden und zudem wird ein schnelles und ausgesprochen kosteneffizientes Abfangen von Lastspitzen ermöglicht. Letzteres ist ein unschlagbar guter Grund für Cloud-Computing und hat viel dazu beigetragen, dass es sich im Laufe der letzten 10 Jahre so gut in der Geschäftswelt etabliert hat. Schließlich möchte jeder auch in der Kneipe nur das Bier bezahlen, das er oder sie getrunken hat und nicht die dort verbrachte Zeit oder gar den Sitzplatz.

Cloud-Computing war Revolution und Erlösung zugleich.

Applikationen in der Cloud zu nutzen, bedeutet, umzudenken und neue Wege zu gehen. Die Handhabung der Veröffentlichung einer TYPO3-Anwendung war lange Zeit z. B. die Folgende:

  • die Agentur (bzw. Dienstleister) erstellte eine TYPO3-Applikation auf einem lokalen System,
  • der Kunde nahm das Projekt ab und
  • die Applikation wurde vom Dienstleister auf den Produktionsserver übertragen.

Ab diesem Zeitpunkt war die Website für Besucher verfügbar. Wenn Änderungen an der Applikation gewünscht waren, dann entwickelte der Dienstleister diese und jede einzelne dieser Entwicklungen wurde dem Kunden zur Abnahme vorgelegt. Ein zeitaufwändiger Prozess, bei dem bereits bei kleineren Applikationen Chaos vorprogrammiert war. Größere Applikationen waren mit dieser Herangehensweise schlichtweg nicht umsetzbar. Cloud-Computing war Revolution und Erlösung zugleich und eröffnete insbesondere großen Unternehmen neue Möglichkeiten.

Trotz anfänglicher Berührungsängste zeichnet sich auch in Deutschland mittlerweile die Entwicklung zu Cloud-Computing deutlich ab. Dienste von Giganten ebneten dabei den Weg, dazu gehören Google Cloud, Microsoft Azure und Amazon Web Services (AWS). Ressourcen befinden sich nicht mehr auf lokaler Hardware, sondern irgendwo in der Wolke aus vielen Computern. Und so wie Open Source-Software keinem Besitzer zugeordnet werden kann, sind Anwendungen keinem Server fest zugeordnet. Sie sind dynamisch und sie sind bedarfsweise abrufbar.

Deployment: Vorbereiten & Bereitstellen

Cloud-Hosting beginnt mit einem sogenannten Build und dessen Deployment. Der Build ist ein Erstellungsprozess, bei dem die fertige Applikation automatisch vorbereitet wird. Die Applikation wird als Ganzes aus Sourcecode erzeugt und bleibt dabei in sich geschlossen. Die vorbereitete Software wird wiederum über den Schritt des Deployments verteilt. Der Code wird als ausführbares Anwendungsprogramm freigegeben und kann jederzeit auf beliebig vielen Umgebungen hergestellt werden.

Im Rahmen von TYPO3-Projekten besteht eine Build-Definition aus mehreren Einzelteilen:

  • Projektdefinition
    • Name
    • Status (Produktion, Vorschau, Entwicklung, SLA-Snapshot, o.ä.)
    • Version
  • Verwendete Extensions und Versionsnummern
  • TYPO3-Konfiguration
  • Server-Konfiguration

Sinnvollerweise überlässt man das Orchestrieren des PHP-Codes dem Tool "composer", während das Setup des Servers von Cloud-Dienstleistern übernommen wird. In einer Build-Definition ist alles zusammengefasst, was benötigt wird, um einen beliebigen Zustand einer Applikation zu erzeugen – bis hinunter zur Konfiguration des Servers selbst.

Anwendungsfälle, die sogenannten "Use Cases"

Abnahmeumgebung
Als letzter Schritt vor der Übergabe einer fertigen Applikation an den Kunden wird ein sogenannter Abnahmetest durchgeführt. Dieser dient dazu, die Anwendung gegen die Benutzeranforderungen zu validieren. Mit der Definition des Deployments wird eine beliebige Umgebung beschrieben. Es lassen sich dabei – ganz ohne Mehraufwand – mehrere TYPO3-Previews gleichzeitig unter verschiedenen Domains und Bedingungen bereitstellen. Und so ganz nebenbei verlieren Abnahmen für alle Beteiligten ihren Schrecken. Zudem werden Umgebungen pro Stunde berechnet, folglich bleiben die Kosten für den Auftraggeber überschaubar.

User Acceptance Test (UAT)
User Acceptance Tests geben Antwort auf die Frage: "Funktioniert die Software für den Benutzer so, wie sie funktionieren soll?" So könnte beispielsweise im Rahmen eines solchen Tests geprüft werden, ob ein TYPO3-Projekt sich nicht nur unter PHP 5.6, sondern auch unter PHP 7.1 noch korrekt verhält. Dazu muss lediglich in der Deployment-Definition der Server mit PHP-Version 7.1 konfiguriert und ein neues Deployment gestartet werden. Die neue Umgebung mit PHP 7.1 wird erzeugt, composer installiert TYPO3 und die neue Testinstanz steht bereit – ganz ohne manuellen Eingriff eines Administrators.

Live-Debugging am Klon
Beim Debugging wird Software getestet und dabei zutage tretende Fehler beseitigt. Dies sollte grundsätzlich in einer geschützten Umgebung stattfinden und nie – wirklich nie! – bei einer laufenden Website durchgeführt werden. Debugging im Produktionsbetrieb öffnet Hackern Tür und Tor. Es ist ein großes Sicherheitsrisiko und genauso heikel wie eine OP am offenen Herzen. Viele Hackerangriffe sind genau darauf zurückzuführen. Und doch begehen Entwickler diesen Fehler. Es wird versucht, Fehler nachzustellen, während Kunden das Live-System nutzen. Mit Cloud-Computing wird es möglich, den aktuellen Stand einer Umgebung im Live-Betrieb zu klonen, um dann auf eben dieser Kopie des Zustands zu arbeiten, in dem der Fehler auftrat. Damit können Fehler beseitigt werden, ohne dass die Website für nicht autorisierte Personen offen ist.

Prototyping
Bei großen Webprojekten, die kontinuierlich weiterentwickelt werden, wird es im Laufe der Zeit immer schwieriger, vorauszusagen, wie die Anwendung sich unter unterschiedlichen Voraussetzungen verhalten wird. Entwickler brauchen eine einfache Möglichkeit, neue Technologien in Verbindung mit dem Projekt auszuführen. Mit Cloud-Providern wie Google Cloud, Microsoft Azure und Amazon Web Services (AWS) ist es möglich, bestimmte Funktionen mit wenigen Klicks zur Verfügung zu stellen, um neue Entwicklungen auf einer Testinstanz zu testen. So können Annahmen, die der Entwickler getroffen hat, schnell validiert werden.

Die Software ist programmiert und Tests bestätigen, dass sie den Anforderungen gemäß funktioniert. Die Frage, die unweigerlich darauf folgt, betrifft das Thema Sicherheit.

Open Source-Software & Sicherheit

Open Source-Software bedeutet, dass der Quellcode einer Software für jeden einsehbar ist. Nicht nur das, er kann auch von jedem verändert werden. Vordergründig klingt das so, als ob Angreifern damit der rote Teppich ausgerollt wird. Und wenn es um das Thema Open Source-Software geht, fällt unweigerlich früher oder später das Wort Sicherheit.

So paradox es klingen mag, genau das Gegenteil ist der Fall: Sicherheitsprobleme in einer Software werden schneller erkannt und behoben, wenn der Quellcode zugänglich bleibt. Die Abläufe sind nicht rigide definiert, wie z. B. in der Qualitätskontrolle in einem Softwareunternehmen, und doch schauen Entwickler und technisch affine Nutzer in den Quellcode und finden bzw. lösen so vorhandene Probleme sehr viel schneller.

Investitionssicherheit
Das anzustrebende Ziel in der Softwareentwicklung beinhaltet unter anderem eine angemessene Sicherheit. Wenn Entscheidungen anstehen, sollte dieses Thema immer kritisch unter die Lupe genommen werden. Denn es kann sich hierbei immer nur um Wahrscheinlichkeiten handeln – Sicherheit ist immer relativ.

Nehmen wir den hypothetischen Fall an, dass eine Softwarelösung im Haus aufgebaut wurde. Diese Investition ist für wichtige Abläufe innerhalb des Unternehmens zuständig und deswegen als unternehmenskritisch einzustufen. Wenn proprietäre Software verwendet wurde, können sich verschiedene Bedrohungen ergeben. Zum einen könnte der Anbieter die Software schlichtweg nicht weiterführen. Nun könnte man einen Standpunkt à la "läuft doch alles" einnehmen, aber das ist zu kurz gedacht. Und wenn die erste Sicherheitslücke auftaucht, klafft ein Loch im System, das vom Anbieter nicht behoben wird. Neue Software einzuführen braucht seine Zeit. Und unter Zeitdruck werden häufig falsche Entscheidungen getroffen – unternehmerisch ein Alptraum.

Man kann die Software verändern – und viel wichtiger: man darf!

Dazu kommt, dass die Infrastruktur innerhalb heutiger Unternehmen zwischen Server und Clients eng verzahnt ist. Das Problem wird also nur aufgeschoben und von Tag zu Tag komplexer. Irgendwann funktionieren ältere Betriebssysteme nicht mehr auf neuen Endgeräten. Damit würde die Firma ohne Software-Updates irgendwann praktisch stillstehen.

Open Source-Software eröffnet die Möglichkeit für Unternehmen, in einem solchen Fall handlungsfähig zu bleiben. Man kann die Software verändern – und viel wichtiger: man darf!

Eine andere Bedrohung ist, dass sich die Infrastruktur um die Software herum verändert. Bevor man sagt, dass diese im Griff sei, erinnern wir uns zurück an die Zeit, bevor Tablets und Smartphones in Unternehmen Einzug hielten. Praktisch über Nacht musste Software an Unmengen neuer Endgeräte angepasst werden, Software-Clients waren für iOS und Android zu entwickeln. Es können aber schon einfachere Dinge sein, wie ein Wechsel von Windows XP auf Windows 10, der zu Inkompatibilitäten führen.

Hier kann durch quelloffene Software die Kompatibilität wieder hergestellt werden, indem man die notwendigen Anpassungen selbst durchführt oder durch einen Implementierungspartner durchführen lässt.

Problematisch sind auch sogenannte Vendor-Lock-Ins, also das "Einsperren" einer Software in das Ökosystem eines bestimmten Herstellers. Fällt die Weiterentwicklung einer einzelnen Komponente des Ökosystems aus, muss häufig jede Komponente innerhalb der eigenen Infrastruktur erneuert werden. Vendor-Lock-Ins sollten während der Evaluierungsphase einer Softwarelösung kritisch betrachtet werden, da sie einen späteren Wechsel mitunter verkomplizieren können.

Open Source-Software bietet auch hier viele Vorteile: Neben dem schon angesprochenen Punkt, dass man jederzeit den Quelltext ändern kann und darf, steht hinter jeder Open Source-Software eine heterogene Gruppe von Entwicklern. Sie tun das, was sie tun, aus Forscherdrang und Leidenschaft und sind eher offen. Es handelt sich dabei um eine grundsätzliche Haltung, die nebenbei gesagt auch produktiv und lösungsorientiert ist.

Viele Entwickler entscheiden sich sehr bewusst dafür, mit offener und freier Software zu arbeiten, um sich nicht mit den Vendor-Lock-Ins befassen zu müssen. So lässt sich Open Source-Software in der Regel deutlich besser an vorhandene Schnittstellen anpassen, oftmals sind fertige Schnittstellen sogar bereits vorhanden. Diese Beispiele sollen jetzt nicht ausschließlich als Empfehlung dienen, sich im Unternehmen ein schlagkräftiges Team aus Entwicklern aufzubauen (obwohl das manchmal gar keine so schlechte Idee ist). Gerade für Open Source gibt es viele spezialisierte Dienstleister, die auf Projektbasis helfen können.

Budgetplanung

Nicht selten punktet Open Source-Software aufgrund der nicht vorhandenen Lizenzkosten gegenüber proprietären Systemen.

Im Bereich von Content-Management-Systemen beispielsweise liegen die Lizenzkosten je nach Anzahl der Redakteure und Server (Stichwort: Cloud-Hosting) schnell jenseits der 50.000 Euro – pro Jahr, wohlgemerkt. Legt man den in Westeuropa üblichen (im übrigen viel zu langen) Lifecycle einer Webapplikation von drei bis fünf Jahren zugrunde, budgetiert man eine Viertelmillion Euro. Und das nur für Lizenzkosten, die nichts zu der eigenen Wertschöpfungskette beitragen.

Diese Ausgaben sollten sinnvollerweise auf Bereiche umgelagert werden, die unmittelbar dem Projekterfolg dienen, etwa in eine bessere User Experience, eine umfangreichere Planungsphase für ein besseres Gesamtkonzept oder das Vorziehen von Projektbestandteilen, die ursprünglich für einen späteren Zeitpunkt geplant waren.

Herausforderungen für professionelle Lösungen mit Open Source-Software

Der Siegeszug von Open Source-Software begann Mitte der 90er Jahre und startete etwa ein Jahrzehnt später komplett durch. Fortune500-Unternehmen wie auch KMUs erkannten die Vorteile und so wurde Open Source-Software abseits der Server-Infrastruktur en vogue. Nach nun etwas mehr als 10 weiteren Jahren ist der Hype verflogen und Open Source-Software sieht sich mit der weniger glamourösen Welt des Daily-Business konfrontiert. Da Open Source-Lösungen auch in Unternehmen erste Wahl sind, müssen sich die Hersteller mit dem gestiegenen Bedarf auseinandersetzen. Das Ganze beginnt mit so banal klingenden Themen wie dem Kundenservice.

Wo früher Entwickler mit anderen Entwicklern gesprochen haben, wenden sich heute technisch unbedarfte Nutzer an die Open Source-Communities, um ihre Probleme zu lösen. Innerhalb einer Community ist man es gewohnt, seine Fragen öffentlich in Foren oder auf Mailinglisten zu stellen. Neu gewonnene Endkunden hingegen erwarten eine per Telefon erreichbare Hotline. Dies stellt eine Community vor völlig neue Herausforderungen. Es kommen Fragen auf wie: "Wer ist eigentlich der Hersteller?" und: "Wer beantwortet telefonische Anfragen?" Alle Abläufe, mit denen sich kommerzielle Hersteller schon seit vielen Jahren befassen, müssen hier erst einmal strukturiert, etabliert und vor allem finanziert werden.

Jede Open Source-Software muss weiter professionalisiert werden.

Nicht selten arbeiten Open Source-Projekte nach dem Prinzip Fire-and-Forget. Die Software wird ins Netz gestellt und es gibt eine schicke Website dazu, aber ab dann ist der Kunde auf sich allein gestellt. Doch heutzutage punktet Software beim Kunden über Convenience und Vertrauen und nicht so sehr über reine Features. Mit diesem Ansatz kommt man daher nicht weit. Denn auch hier erwarten Endkunden professionelle Serviceleistungen, einfach zu erreichenden Support und schnell reagierende Vertriebsmitarbeiter.

Zu Recht. Kunden erwarten garantierte Support-Levels mit fest definierten Antwortzeiten, zuverlässige Beratung und Problemlösung. Die Software bildet das Rückgrat eines jeden Unternehmens. Auch wenn nicht online verkauft wird, so stellt die Website das Gesicht nach außen dar. Wenn es Fragen oder Probleme gibt, dann braucht man einen Ansprechpartner. Kurzum, jede Open Source-Software muss trotz – oder gerade wegen – des Erfolgs weiter professionalisiert werden. Eine solche Infrastruktur anzubieten, ist unabdingbar, um im Wettbewerb zu bestehen.

TYPO3 CMS: ein Pionier

TYPO3 CMS ist ein ausgereiftes Content-Management-System, das heute aufgrund seiner Leistungsfähigkeit insbesondere in der Geschäftswelt seinen festen Platz hat. Die ersten Codezeilen wurden bereits vor über 20 Jahren geschrieben. Mitte der 00er Jahre nahm der Erfolg und damit der Umfang des Projekts eine solche Größe an, dass TYPO3 CMS nicht mehr einzig von der Community gemanagt werden konnte.

Die TYPO3 Association wurde gegründet, ein gemeinnütziger Verein mit Sitz in der Schweiz. Durch Mitgliedsbeiträge konnten Finanzpolster geschaffen werden, um die gesunde Weiterführung der Entwicklung zu gewährleisten. Mit der Kür kam die Pflicht, wichtige Themen wie Copyright- und Trademark-Schutz wurden umgesetzt. Auch interne Prozesse, wie eine rechtlich saubere Budgetverteilung, Abrechnung von Spesen und Ähnliches gehören seitdem zu den Aufgaben der TYPO3 Association.

Zudem unterstützt die TYPO3 Association Programmierer durch ihre Politik des sogenannten "Un-Blockings". Codesprints kosten Zeit und Geld. Viele Entwickler, aber auch Marketers oder Designer, wollen sich oft gerne mehr in Open Source-Software einbringen, als es ihre Zeit erlaubt – sie sind aber durch äußere Umstände blockiert, weil sie beispielsweise in Vollzeit arbeiten. Die TYPO3 Association ermöglicht ihnen, Spesen einzureichen, und zwar sowohl für die Anreise als auch für die Unterbringung. Blockaden – wie die Kosten für ein Flugticket von Kambodscha nach Europa – werden aus dem Weg geräumt und eine internationale Zusammenarbeit ermöglicht.

Als der Ruf nach professionellen Services vor etwa zwei Jahren lauter wurde, entschloss sich die TYPO3 Association zu einem innovativen Schritt: der Gründung eines Service-Unternehmens rund um TYPO3 CMS. Die TYPO3 GmbH mit Sitz in Düsseldorf wurde im Mai 2016 aus der Taufe gehoben. Das Besondere an diesem Unternehmen ist, dass sie zu 100 Prozent der TYPO3 Association gehört und somit wiederum den Mitgliedern des Vereins.

Alle Aufgaben und Mandate der TYPO3 GmbH wurden mit der Community abgestimmt und sie greifen in keinerlei bestehende Märkte ein. Die TYPO3 GmbH ist damit ein starker Partner für TYPO3-Agenturen und -Freiberufler, aber auch für Endkunden.

Wie üblich, besteht auch diese Firma aus einem Team von Festangestellten. Dies ermöglicht der TYPO3 GmbH Prozesse innerhalb der TYPO3-Community zu beschleunigen und zu professionalisieren. Projektgeschäfte hat die TYPO3 GmbH indes aufgrund ihrer Positionierung am Markt nicht im Repertoire, was im Umkehrschluss dazu führt, dass die Gesellschaft absolute Unabhängigkeit garantieren kann. Gerade wenn es darum geht, einen Konsens zwischen mehreren Parteien zu finden oder die Qualität der Programmierung in einem Projekt einzuschätzen, ist diese Unabhängigkeit unabdingbar.

Darüber hinaus kümmert sich die TYPO3 GmbH auch darum, Endkunden und die richtigen Integrationspartner zusammenzubringen. Diese Partner unterliegen einem in der Branche einzigartig kompromisslosen Akkreditierungsprozess. So wird neben rein fachlicher Kompetenz beispielsweise auch eine aktive Beteiligung am TYPO3-Projekt gefordert. Diese Kriterien werden regelmäßig geprüft und ermöglichen auf diese Weise eine einfache Orientierung für Endkunden, die auf der Suche nach qualitativ hochwertigen Partnern sind. Gleichzeitig begleitet die TYPO3 GmbH das Kundenprojekt und stellt so sicher, dass der Endkunde das bestmögliche Ergebnis erhält.

Und wie geht’s weiter?

Im Nu hat sich Open Source-Software einen festen Platz in IT-Infrastrukturen großer Unternehmen weltweit erobert. Darüber hinaus wird die Idee dahinter immer häufiger aufgegriffen. Eine weitere bahnbrechende Bewegung zeichnet sich ab, denn immer mehr hochqualifizierte Entwickler werden seitens ihrer Arbeitgeber für die Weiterentwicklung von Open Source-Software freigestellt. Weltweit haben sich 2016 rund zwei Drittel der Firmen an Open Source-Projekten beteiligt und ein ähnlicher Anteil ermuntert Entwickler aktiv, sich an Open Source-Projekten zu beteiligen oder diese zu unterstützen [1]. Das ist eine Entwicklung, der wir gespannt entgegensehen, denn auch sie wird die IT-Welt und lange bestehende Strukturen revolutionieren.

Autor

Mathias Schreiber

Mathias Schreiber ist seit Frühjahr 2016 CEO der neu gegründeten TYPO3 GmbH, welche die Entwicklung und Sichtbarkeit von TYPO3 weltweit fördert.
>> Weiterlesen
Das könnte Sie auch interessieren
Kommentare (0)

Neuen Kommentar schreiben