Zum Inhalt gehen

Open Source Software in der Praxis

Capgemini Karriere
17. Nov. 2020

Es hat vor ungefähr 30 Jahren mit dem Gedanken begonnen, Software offen zugänglich zu machen. Heute ist der Einsatz von Open Source Software – auch im kommerziellen Umfeld – oft Standard. So auch bei Capgemini. Aber wie frei sind Software Engineers im Umgang mit Open Source wirklich?

Die Antwort hat IT Architekt Oliver Hecker. Er arbeitet seit 2009 bei Capgemini am Standort Frankfurt. Oliver beschäftigt sich täglich mit Open Source Software (OSS), hat sich zuletzt intensiv mit dem Thema Compliance im OSS-Kontext befasst und zudem ein Tool entwickelt, das den Einsatz von Open Source erleichtert. Zu diesen Themen gibt er im Interview Einblicke und berichtet, worauf man im Umgang mit Open Source achten sollte.

Relevanz von Open Source Software

Oliver, was sind die Hauptgründe, Open Source Software einzusetzen?

OSS hat den Vorteil, dass sie kostenlos verfügbar ist und die Einstiegshürden niedrig sind – perfekt auch für IT-Neulinge, um sich daran auszuprobieren. Zudem ist OSS in vielen Technologien Standard und in vielen Bereichen die am häufigsten verwendete Software.

Für ein IT-Projekt bedeutet Open Source in der Regel ein gutes Kosten-Leistungs-Verhältnis. Denn hier gilt es abzuwägen, ob man lieber etwas mehr Aufwand in das Customizing von Open Source stecken möchte, beispielsweise mit Hilfe eines IT-Dienstleisters, wie wir es sind. Oder ob man alternativ Kosten in Lizenzgebühren für einen kommerziellen Software-Anbieter investieren möchte – und damit oft auch Funktionalitäten mit einkauft, die man gar nicht braucht.

Welche Rolle spielt Open Source Software in deinem Job und in Projekten bei Capgemini?

Je nach Technologie nutzen wir OSS in den Lösungen, die wir in Kundenprojekten entwickeln. Es gibt Technologiebereiche, die stark von Open Source geprägt sind, und andere, wo OSS weniger üblich ist und stärker aus kommerzieller Hand kommen. Beispiele für OSS-geprägte Bereiche sind Linux sowie Server- und Webanwendungen, die auf Java aufbauen. Im Bereich Windows, .NET und Datenbanken kommen oft kommerzielle Softwareprodukte zum Einsatz, deren Lizenzkosten dann einen wesentlichen Teil der Gesamtkosten des Projekts ausmachen können.

Bei Capgemini haben wir basierend auf den besten und kompatibelsten „best of breed“ Open-Source-Komponenten eine eigene Plattform definiert: devonfw ist unsere Standard-Plattform, die wir in Projekten typischerweise nutzen. Dafür haben wir aus dem riesigen Set an möglichen Lösungsvarianten einige Standard-Varianten ausgewählt und Blueprints dargestellt, wie man mit den OSS-Komponenten professionelle Software erstellen kann. devonfw selbst ist als Open Source frei zugänglich. So wollen wir der OSS-Community auch etwas zurückgeben.

Umgang mit Open Source Software

Welche Herausforderungen können im Umgang mit Open Source auftreten?

Trotz geringer Einstiegshürden und größerer Freiheiten gibt es im professionellen Einsatz einiges zu beachten:

Rechtliche Aspekte: Open Source bedeutet, dass die Quellen offen sind. Das heißt aber nicht, dass man mit dem Code machen kann, was man will. Jeder, der OSS zur Verfügung stellt, kann zum Beispiel Bedingungen definieren, unter welchen er die OSS weitergibt. Daher taugt nicht jede Open Source für den Einsatz in unseren Projekten. Beispielsweise gibt es sogenannte Copyleft-Lizenzen, die dazu führen können, dass ich meine entwickelte Lösung insgesamt unter diese Open-Source-Lizenz stellen muss, wenn ich diese Komponente im Projekt einsetze. Unsere Kunden möchten jedoch meistens uneingeschränkte Rechte und vollständige Kontrolle über die Nutzung der für sie individuell entwickelten Komponenten haben – was dann die Verwendung solcher Open-Source-Komponenten ausschließt.

Sicherheitsaspekte: Weil der Quellcode frei einsehbar ist, ist es für Kriminelle auch leichter herauszufinden, wo es Schwachstellen gibt, die ausgenutzt werden können. OSS bietet somit eine Angriffsfläche und es ist möglich, dass Schwachstellen im Darknet gehandelt werden. Darauf sollte man achten!

Support-Aspekte: Open-Source-Komponenten sind sehr umfangreich und komplex. Schon bei der Auswahl sollte man berücksichtigen, wer Unterstützung bieten oder Probleme beheben könnte, wenn Fehler oder Design-Probleme auftreten. Steht hinter der genutzten OSS eine ganze Community, die daran arbeitet und mögliche Bugs beheben könnte? Wie sieht die Zukunft des Produkts aus? Wenn ein Problem auftritt, das den laufenden Betrieb beim Kunden gefährden könnte, braucht man ein Supportsystem, das schnelle Lösungen bieten kann. Das gilt es vorab zu klären.

Was sollte man beim Umgang mit Open Source Software beachten?

Bei Capgemini überlegen wir uns frühzeitig, mit welchen Maßnahmen wir diesen Herausforderungen begegnen wollen. Hinsichtlich der Sicherheitsaspekte nutzen wir einen Prozess, der sicherstellt, dass keine veraltete Open Source mit Sicherheitslücken zum Einsatz kommt. Es gibt Organisationen und Datenbanken, die systematisiert Sicherheitslücken hinterlegen, die dann mit einem Tool ausgewertet werden können. Solche Sicherheitsaspekte müssen kontinuierlich – sowohl in der Entwicklung als auch im Betrieb – im Auge behalten werden, um sofort reagieren zu können, sollten neue Sicherheitslücken bekannt werden. Auch Jahre nach der Entwicklung sollte noch ein Plan existieren, wer im Notfall Hilfe leistet.

Bezüglich der OSS-Lizenzen ist es wichtig, die Policies unserer Kunden zu beachten, die normalerweise genau definieren, welche Produkte mit welchen Lizenzen eingesetzt werden dürfen. Und selbstverständlich hat auch Capgemini eine eigene Lizenz-Policy sowie einen Prozess zur Prüfung und Freigabe. Hier ist in der Regel auch die Rechtsabteilung involviert. Wir stellen uns gemeinsam die Frage: Was sind die Randbedingungen, wie bildet man die Technik in dem konkreten Kontext auf die Lizenzbestimmungen ab? Im Idealfall sind die Rahmenbedingungen klar definiert und somit das Vorgehen juristisch geklärt.

Und wenn es nicht klar ist? Wie sollte man mit Grauzonen umgehen?

Bei Grauzonen oder Fällen mit Interpretationsspielraum ist es durchaus empfehlenswert, eine professionelle Rechtsberatung hinzuzuziehen, die eine gewisse Verbindlichkeit bietet. Auch hier geht es wieder darum, vorausschauend zu handeln und zu verstehen, welche Konsequenzen eine potenzielle Klage hätte. Eine OSS Komponente nicht gemäß den Lizenzbedingungen zu nutzen kann zu Schadenersatzforderungen führen und dazu, ein ganzes Produkt vom Markt nehmen zu müssen. Das gilt es zu vermeiden.

Welche Tools erleichtern den Umgang mit Open Source Software?

Die Anzahl von Open-Source-Komponenten in unseren Lösungen nimmt stetig zu: Bei Capgemini bauen wir Webapplikationen mit 200 bis weit über 1000 verschiedenen OS-Komponenten, jede mit eigener Lizenz. Um das sicher zu managen, gibt es eine ganze Reihe von Tools, die den Code prüfen. Sie zeigen an, welche Komponenten enthalten sind, welche Lizenzen hinter den Komponenten hängen oder zum Teil auch welche Quellcodes enthalten sind. Das schützt auch vor unbeabsichtigten Plagiaten. Das systematische Abarbeiten der Ergebnisse ist sehr aufwendig und beinhaltet oft einen intensiven Austausch mit der Rechtsabteilung – aber man ist auf der sicheren Seite.

Um den Prozess besser zu managen, arbeitet die OS-Community, wie beispielsweise die Linux-Foundation, aktuell an der Einführung von Automatismen. Diese sollen nicht nur die Komponenten bereitstellen, sondern gleichzeitig auch die Lizenzen prüfen, z. B. Lizenztexte auf Kompatibilität prüfen. Das würde den Umgang mit OSS in Zukunft erleichtern.

Du hast selbst ein OSS Tool entwickelt. Welche Funktionen bietet „Solicitor“?

Es gibt bei Capgemini schon lange eine Policy, die definiert, welche Anforderungen beim Einsatz von OSS erfüllt sein müssen. Techniker, Juristen und der Kunde erarbeiten gemeinsam eine Stückliste aller OS-Komponenten, die im Projekt bzw. im Produkt zum Einsatz kommen, mit ihrer jeweiligen Lizenz und anderen wichtigen Details, die für die lizenzrechtliche Beurteilung relevant sind. Beim Einsatz von 1000 Komponenten wäre das ein großer manueller Aufwand. Das von mir entwickelte Tool „Solicitor“ automatisiert große Teile dieses Prozesses, basierend auf konfigurierten, formalen Regeln. Das entlastet die Projekte und steigert Geschwindigkeit und Qualität. Das Tool ist von der Idee und Architektur her allgemein gehalten, sodass wir es nach Bedarf erweitern und anpassen können. Wir rollen „Solicitor“ nach und nach in Projekten aus und das Feedback ist bisher sehr positiv – auch in großen Projektkontexten funktioniert es gut.

Open Source Software Skills

Welche Vorerfahrungen mit Open Source Software sollten Berufseinsteiger*innen für den Job des Software Engineers mitbringen?

Bis zu einem gewissen Grad kommt man mit OSS im Studium in Kontakt – oder in Praktika oder Praxisarbeiten. Die niedrige Einstiegshürde von OSS ist gerade für IT-Neulinge eine Idealsituation. Dadurch, dass wirklich professionelle Systeme Open Source sind und man dazu zahlreiche Informationen bekommt, kann sich jeder Studierende mit den relevanten Systemen befassen und weitere Skills erarbeiten. Daher würde ich empfehlen, sich auch abseits des universitären Bereichs diese Welten anzuschauen und ein Bewusstsein dafür zu entwickeln.

Zudem kann ich Studierenden und Absolvent*innen empfehlen, sich auch für die nicht-funktionalen Aspekte im Kontext von Open Source Software im professionellen Umfeld zu sensibilisieren – beispielsweise IT-Security, Rechtsfragen, Intellectual Property, Kosten.

Hast du abschließend noch einen Tipp für Studierende, die sich tiefer mit Open Source Software auseinandersetzen wollen?

Open Source eignet sich sehr gut, um in verschiedene Frameworks und Ökosysteme reinzuschnuppern – für unsere Arbeit bei Capgemini sind unter anderem Spring und Angular zentrale Frameworks. In YouTube-Tutorials findet man die Antworten zu allen möglichen Fragen rund um OSS. Man ist nicht mehr auf teure Schulungen angewiesen, um dazuzulernen. Ich kann jeder und jedem ans Herz legen, das für sich zu nutzen.

Danke für das spannende Interview, Oliver!

Sie haben Lust bekommen, mit Open Source Software komplexe IT-Architekturen zu bauen? Dann bewerben Sie sich jetzt als Software Engineer (w/m/d). Weitere offene Stellen finden Sie in unserem Jobportal.