Von Softwareentwicklern wird erwartet, dass sie die gesamte Softwarebereitstellungspipeline beherrschen – insbesondere im DevOps-Umfeld. Dadurch riskieren sie kognitive Überlastung und Produktivitätsverluste.
Mario Di Francesco
Mario Di Francesco is a professor in software systems with the Department of Computer Science at Aalto University and a senior DevOps consultant at Eficode. He has more than 15 years of experience with network systems and software technologies, from wireless communications to mobile and distributed computing. He has also been teaching courses on cloud software and DevOps.
Erfolgreiche Unternehmen lösen dieses Problem, indem sie Internal Developer Platforms etablieren – kurz IDPs oder Plattformen. Gartner schätzt sogar, dass bis 2025 95 % der Unternehmen ihre DevOps-Initiativen ohne eine Internal Developer Platform nicht skalieren können.
Es ist also gut, zumindest ein grundlegendes Verständnis für dieses Thema zu haben. Genau deshalb habe ich diesen Blogbeitrag geschrieben.
Im Folgenden beantworte ich diese Fragen:
Was ist eine Internal Developer Platform?
Wie ist die Erfahrung für Entwickler bei der Arbeit damit?
Warum braucht ihr überhaupt eine?
Meine Informationen basieren sowohl auf umfangreicher Recherche zu verwandten Themen als auch auf Erkenntnissen, die ich bei der Bewertung der DevOps-Fähigkeiten einiger unserer Kunden gewonnen habe.
DevOps
DevOps ist ein Ansatz in der Softwareentwicklung, der Automatisierung und Integration zwischen Softwareentwicklung und IT-Betrieb fördert. Die Grundidee besteht darin, eine Kultur des Teilens zu etablieren und Silos zwischen Entwicklern und IT-Administratoren aufzubrechen. Technisch basiert DevOps auf Versionskontrolle, Build-Pipelines und einem Cloud Native Toolset, das auf Software-Containern beruht.
Was der Begriff „Internal Developer Platform“ wirklich bedeutet
Für einen so weit verbreiteten Begriff klingt „Internal Developer Platform“ nicht besonders aussagekräftig. Gehen wir deshalb einen Schritt zurück und erklären wir die einzelnen Schlüsselbegriffe – für mehr Klarheit in umgekehrter Reihenfolge.
„Plattform“
In diesem Kontext bezeichnet Plattform sowohl eine Infrastruktur als auch eine Sammlung von Software-Tools. Typische Funktionen der Plattform beziehen sich auf verschiedene Aspekte der Software-Delivery-Pipeline:
Bereitstellung von Ressourcen;
Durchführung verschiedener Arten von Tests;
Deployment von Artefakten in eine Zielumgebung.
Die nutzerseitige Komponente der Plattform ist ein Entwicklerportal.
Alle Elemente der Plattform sind eng integriert und basieren auf gemeinsamen Abstraktionen, die in Cloud Native Software üblich sind: Container, deklarative Konfiguration und Control Loops.
„Developer“
Entwickler sind die Endnutzer der Plattform. Self-Service ist dabei entscheidend, denn Entwickler:
konzentrieren sich darauf, Mehrwert zu schaffen, indem sie neue Funktionen schnell umsetzen, ohne für die Bereitstellung von Ressourcen von der IT abhängig zu sein;
nutzen Vorlagen, um schnell einen Proof of Concept oder ein Minimum Viable Product zu erstellen;
nutzen ein Dashboard, um einen einheitlichen Überblick über verschiedene Datenquellen zu erhalten – von den Ergebnissen einer Build-Pipeline bis zum Gesundheitsstatus eines laufenden Services.
„Internal“
Dieses Wort betont, dass die Plattform speziell auf jedes Unternehmen zugeschnitten ist – ähnlich wie ein maßgeschneiderter Anzug.
Man kann sie nicht einfach als fertiges Produkt kaufen: Ihr müsst sie aufbauen und pflegen. Sie basiert auf den Prozessen, Governance-Prinzipien und technischen Lösungen, die euer Unternehmen nutzt. Außerdem beschreibt sie klar die sogenannten Golden Paths – die „Rezepte“ dafür, wie ihr Software entwickelt, einschließlich Tutorials, mit denen neue Entwickler schnell starten können.
Etwas eleganter ausgedrückt: Eine Internal Developer Platform ist ein Ansatz, Entwickler durch die sorgfältige Auswahl und Integration von Software-Tools zu befähigen, Mehrwert zu schaffen und dabei interne Praktiken des Unternehmens zu unterstützen.
Platform Engineering
Die Begriffe „Internal Developer Platform“ und „Platform Engineering“ werden meist zusammen verwendet, sind jedoch nicht gleichbedeutend. Platform Engineering bezeichnet den Prozess, eine Internal Developer Platform aufzubauen und zu betreiben – insbesondere im Hinblick auf Kultur und Auswirkungen auf Teams. Dazu gehören das Onboarding von Entwicklern, der Aufbau eines Platform-Teams und die Sicherstellung des Commitments zur Plattform – nicht nur bei Entwicklern, sondern im gesamten Unternehmen. Der Begriff Internal Developer Platform bezieht sich dagegen meist ausschließlich auf technische Aspekte: die ausgewählte Tool-Sammlung und ihre konkrete Integration in die Plattform.
Wie die Arbeit mit einer Internal Developer Platform aussieht: ein kurzes Beispiel
Inzwischen sollte klar sein, dass sich bei der Plattform alles um Entwickler dreht. Doch wie erleben sie die Plattform konkret? Schauen wir uns dazu Amandas Erfahrung an.
Amanda hat gerade ihre Arbeit in einem Unternehmen begonnen. Im Rahmen ihres Onboardings erhält sie Zugriff auf die Internal Developer Platform des Unternehmens. Dort sieht sie ein Dashboard mit kurzen Anleitungen für den Einstieg.
Sie beginnt damit, den Softwarekatalog zu erkunden. Dieser zeigt:
welche Komponenten im Unternehmen verfügbar sind;
den Reifegrad der Komponenten (einige sind in Produktion im Einsatz, andere befinden sich noch im Proof of Concept);
wie sie miteinander zusammenhängen.
Anschließend geht sie zum Bereich mit Software-Templates. Diese bieten eine Assistentenoberfläche, mit der sich verschiedene Projekttypen initialisieren lassen.
Amanda hat bereits Erfahrung in der Backend-Entwicklung und wählt daher ein Template, um einen Microservice mit der Programmiersprache Python zu erstellen. Sie vergibt einen Namen für die Komponente und klickt auf einen Button, um sie zu erstellen. Nach wenigen Minuten erhält Amanda Zugriff auf ein neu erstelltes Software-Repository mit einem Beispiel-Microservice.
Die Plattform:
übernimmt den Source Code;
erstellt eine Testinfrastruktur;
baut die Software;
führt Unit-Tests aus;
stellt den Microservice bereit.
Amanda sieht das Ergebnis der Build-Pipeline und die Verfügbarkeit der neuen Komponente direkt im Dashboard.
Anschließend prüft sie den Inhalt des Software-Repositorys. Der Microservice nutzt das FastAPI-Framework, um eine Programmierschnittstelle zu erstellen. FastAPI ist neu für sie, doch der Source Code enthält einen Link zu Tutorials, die im Dashboard der Plattform verfügbar sind.
Amanda beginnt, das Tutorial zu lesen, und schafft es noch in ihrer ersten Arbeitswoche, Funktionen zum Beispiel-Microservice hinzuzufügen. Die Tutorials sind nicht nur verständlich, sondern auch so ansprechend, dass sie mehr darüber erfahren möchte, wie im Unternehmen Software entwickelt wird.
Die Plattform hat Amanda durch mehr Wissen und Produktivität ein starkes Gefühl von Eigenständigkeit und Erfolg vermittelt. Auch nach mehreren Monaten nutzt sie das Dashboard der Plattform täglich – sie hat sogar neue Templates und Tutorials erstellt.
Warum ihr eine Internal Developer Platform braucht
Es ist klar, dass die Verbesserung der Developer Experience das Hauptziel einer Internal Developer Platform ist. Doch nicht nur Entwickler profitieren davon.</i>
Stellt eure Mitarbeiter zufrieden
Die Zufriedenheit der Mitarbeiter steht im Mittelpunkt erfolgreicher Unternehmen: Sie hilft dabei, qualifizierte Fachkräfte zu gewinnen, die Fluktuation zu senken und die Produktivität zu steigern.
Eine erfolgreiche Plattform ist ein einladendes und freundliches Umfeld, das Orientierung und Unterstützung bietet, um Softwareprojekte zu erkunden, zu starten oder sich daran zu beteiligen. Außerdem ermöglicht sie sicheres Experimentieren, ohne die Qualität zu beeinträchtigen.
Technologie vereinfachen
Auf technischer Ebene bietet die Plattform eine kuratierte Auswahl an Funktionen über ein sorgfältig integriertes Toolset, das die gesamte Software-Delivery-Pipeline abdeckt.
So lassen sich die Komplexität von Tools und der Aufwand für die Pflege mehrerer unterschiedlicher Softwareprodukte reduzieren. Zudem verringert ein einheitliches, unterstütztes Serviceangebot die kognitive Belastung. Dadurch könnt ihr den Aufwand senken und Entwicklern ermöglichen, sich auf das Wesentliche zu konzentrieren: Mehrwert für Kunden zu liefern.
Self-Service ermöglichen
Die Plattform bündelt architektonische und technische Entscheidungen entwicklerfreundlich. Dadurch können Entwickler unternehmensweite Best Practices leichter übernehmen. Mit Self-Service stärkt die Plattform außerdem das Vertrauen und erleichtert es allen, Governance-Prinzipien und Compliance-Vorgaben einzuhalten.
Die Kontrolle behalten
Die Plattform verhindert außerdem Fragmentierung und eine Bring-your-own-Tool-Mentalität. So könnt ihr Zugriffskontrollen, Sicherheitsprüfungen und Monitoring vereinfachen – bei minimalen Eingriffen in den Workflow der Entwickler.
Kurz gesagt: Eine Internal Developer Platform optimiert die schnelle Bereitstellung von Mehrwert für Kunden. Sie konzentriert sich auf die Developer Experience und gewährleistet zugleich Sicherheit und Compliance.
Die Plattform bildet die Grundlage dafür, wie in eurem Unternehmen gearbeitet wird. Sie orientiert sich an euren Werten und Governance-Vorgaben, ist aber flexibel genug, um sich dynamischen Umgebungen anzupassen. Indem sie die Software-Delivery-Pipeline überblickt, vereinfacht sie die damit verbundenen Prozesse und ermöglicht gleichzeitig die Skalierung von DevOps.
Zusammenfassung
Ihr solltet jetzt ein klareres Bild davon haben, was eine Internal Developer Platform ist, was sie leistet und warum sie benötigt wird. Mein Ziel war es, euch kurz in das Thema einzuführen und den Mehrwert für DevOps hervorzuheben – vor allem im Hinblick auf die Developer Experience. Eine erfolgreiche Plattform aufzubauen, ist jedoch nicht einfach. Es ist ein langer Weg, aber jetzt ist genau der richtige Zeitpunkt, um zu starten.
- DevOps
- Cloud
- CI/CD
Subscribe to our newsletter
Related blogs