Softwareentwickler bei der Arbeit

Was ist eine interne Entwicklerplattform (IDP)?

Die interne Entwicklerplattform, definiert

Eine interne Entwicklerplattform (Internal Developer Platform, IDP) ist ein zentraler Satz interner Tools, Dienste und Workflows, die ein Unternehmen erstellt, um es Entwicklern zu erleichtern, Software zu entwickeln, bereitzustellen und zu betreiben, ohne die gesamte zugrunde liegende Infrastruktur selbst verwalten zu müssen. 

Anstatt dass jedes Entwicklungsteam seinen eigenen Weg findet, Server, Netzwerke, Sicherheitsprotokolle und Software-Deployments zu konfigurieren, können Teams fertige „goldene Pfade“ nutzen, die bereits den Unternehmensregeln und Best Practices folgen. Die Entwickler folgen einfach den vorgegebenen Pfaden (zum Beispiel, um „einen neuen Microservice zu starten“ oder „eine Vorschauumgebung bereitzustellen“), und die Plattform erledigt den Rest durch Hintergrundautomatisierung.

Die IDP ist eine Möglichkeit, verteilte Prozesse zusammenzuführen, so dass alle Entwicklungsteams innerhalb eines Unternehmens in etwa denselben Regeln folgen. Und sie kümmert sich um die zugrundeliegenden infrastrukturellen Entscheidungen, so dass die Entwickler keine tiefgreifenden Kenntnisse der Infrastruktur benötigen, um den Code auszuliefern.

IDPs werden in der Regel von einem dedizierten DevOps-, Betriebs- oder Plattform-Engineering-Team entworfen und gewartet, deren Hauptnutzer jedoch Anwendungsentwickler sind. Die Plattform vereint verschiedene Toolchains und Technologien – wie Container-Orchestrierung , Infrastructure as Code (IaC), Kontinuierliche Integration/Kontinuierliche Bereitstellung (CI/CD) und Observability-Tools – zu einem zusammenhängenden Ökosystem.

Vorteile einer IDP

Eine IDP bringt Ordnung und Konsistenz in die ansonsten fragmentierten Software-Engineering-, Liefer- und Entwicklungskapazitäten eines Unternehmens. Sie ermöglicht Unternehmen, die Komplexität ihrer Softwareentwicklungsumgebungen und -praktiken zu verwalten und sie zu vereinfachen und zu rationalisieren, was viele Vorteile mit sich bringt.

Minimierter Kontextwechsel

Die Fähigkeit eines Ingenieurs, in einen „Flow-Zustand“ zu gelangen und diesen aufrechtzuerhalten – einen Zustand tiefer Konzentration bei sinnvoller Codierungsarbeit – ist für das Unternehmen, das im Softwarebereich Innovationen vorantreiben will, von unschätzbarem Wert. In diesem Zustand ist die Aufmerksamkeit ungeteilt und der Fortschritt fühlt sich kontinuierlich an. Ingenieure sind in der Lage, komplexere Probleme zu analysieren, weil sie ungestört Zeit haben, sich ihnen zu widmen.

Der Flow-Zustand ist jedoch fragil. Manchmal müssen Entwickler den Kontext wechseln, um sich einer Problemstellung zuzuwenden. Dieser mentale Wechsel kann ihren Fortschritt bei der Bearbeitung des ersten Problems behindern und sie zwingen, bei der Rückkehr zum ersten Problem wieder ganz von vorne anzufangen. Stellen Sie sich beispielsweise einen Programmierer vor, der versucht, ein in einem Fehlerbericht identifiziertes Problem zu beheben: Warum zeigt ein Hotelbuchungsdienstprogramm Zeiten und Daten nicht in der richtigen Zeitzone des Benutzers an? Es ist ein kniffliges Problem, das darauf abzielt, wie JavaScript auf fundamentaler Ebene mit der Zeit umgeht. Es ist kein einfaches Formatierungsproblem. Sie verfolgen, wie sich Zeitstempel durch das Backend und das Frontend und in die Benutzeroberfläche verschieben. Sie beschäftigen sich mit lokalen Browsereinstellungen und dem Verhalten von Datumsobjekten unter verschiedenen Bedingungen. Es sind eine Menge Informationen, die man im Kopf behalten muss, aber sie stehen kurz vor einem Durchbruch.

Dann müssen sie ihren Editor verlassen und ein CI/CD-Tool öffnen, nach der richtigen Pipeline für den Service suchen, versuchen sich daran zu erinnern, wie dieses spezielle Projekt Bereitstellungen handhabt, eine Konfiguration anpassen, warten, bis die Pipeline läuft, ein separates Überwachungstool öffnen, um das Verhalten zu überprüfen...

Sie mussten von der reinen Problemanalyse abschalten und sich stattdessen auf die Navigation durch Infrastruktur, Tools und Prozesse konzentrieren. Und als sie zum Bug zurückkehren, ist das subtile Verständnis, das sie über das Problem aufgebaut hatten, verflogen. Nun müssen sie ganz von vorne anfangen. Das bedeutet Zeitverschwendung für das Unternehmen und Frustration für den Ingenieur. Eine IDP reduziert diese Verschwendung, indem sie sich um tertiäre Anliegen kümmert, was zu schnellerer Markteinführung, höherer Entwicklerproduktivität und verbessertem Entwicklererfahrung führt.

Standardisierte Workflows

Mit dem Wachstum von Unternehmen werden ihre Entwicklungsumgebungen immer komplexer. Einige Teams verwenden möglicherweise ein bestimmtes Tool, während andere ein anderes konkurrierendes Tool auswählen, um eine ähnliche Aufgabe zu erfüllen. Teams entwickeln möglicherweise unterschiedliche Workflows und treffen Entscheidungen hinsichtlich Infrastruktur, Bereitstellung oder Sicherheit, die einzeln betrachtet für ihren Anwendungsfall hilfreich sind, in der Gesamtheit jedoch zu Konflikten oder Ineffizienzen führen. In uneinheitlichen Umgebungen entstehen zahlreiche Engpässe. Diese Inkonsistenzen häufen sich im Laufe der Zeit an, was Systeme schwerer skalierbar macht. Im Gegensatz dazu wandelt die IDP eine fragmentierte und inkonsistente Menge von Praktiken in zusammenhängende, wiederholbare Entwickler-Workflows und Softwarebereitstellungsprozesse um.

Aspekte wie Namenskonventionen, Sicherheitspraktiken, CI/CD-Pipelines – eine IDP reduziert die Variabilität, indem sie Vorlagen bereitstellt und konsistente Arbeitsabläufe durch wiederverwendbare Gerüste etabliert. So müssen Entwickler nicht von vorne anfangen, sondern können eine Vorlage auswählen, die automatisch ein Repository bereitstellt, Entwicklungs- und Bereitstellung-Pipelines konfiguriert und Überwachung sowie Sicherheit integriert.

Durchgesetzte Sicherheit und Compliance

Eine IDP integriert Sicherheits- und Compliance-Funktionalität direkt in ihre Workflows. So kann sie beispielsweise sicherstellen, dass alle Dienste über angemessene Authentifizierungsmechanismen verfügen und die genehmigten Netzwerkkonfigurationen einhalten. Auf diese Weise muss der Entwickler keine Zeit damit verschwenden, darüber nachzudenken, ob ein bestimmter Ansatz die Anforderungen erfüllt. Die richtigen Protokolle werden befolgt, weil die Kontrollen konsequent angewendet werden – sie sind in die Plattform selbst integriert.

Bessere Zusammenarbeit

Wenn alle Teams den gleichen Vorgehensweisen folgen, ist es für Entwickler einfacher, unbekannte Codebasen zu verstehen und dazu beizutragen. Gemeinsame Konventionen reduzieren den kognitiven Aufwand beim Wechsel zwischen Projekten, und neue Entwickler können schneller eingearbeitet werden.

Skalierbarkeit

Ohne ein konsistentes Framework kann das Wachstum einer Organisation zu Chaos führen, da jeder neue Service mehr Variation und Komplexität mit sich bringt. Eine IDP bietet eine stabile Grundlage auf Unternehmensklasse, die Skalierung ermöglicht und die Ressourcenverteilung optimiert. Bewährte Verfahren können automatisch in allen Systemen verbreitet werden, und selbst kleine Platform-Engineering-Teams können die Entwicklungsverfahren eines großen Unternehmens beeinflussen.

Anwendungsentwicklung

Steigen Sie ein: Entwicklung von Enterprise-Anwendungen in der Cloud

In diesem Video erläutert Dr. Peter Haumer, wie die moderne Entwicklung von Unternehmensanwendungen in der Hybrid Cloud heute aussieht, indem er verschiedene Komponenten und Praktiken demonstriert, darunter IBM Z Open Editor, IBM Wazi und Zowe. 

Komponenten der IDP

Die IDP ist nicht nur ein einzelnes Tool, sondern ein System von Funktionen, die zusammenarbeiten, um spezifische Anforderungen von Entwicklern zu erfüllen und eine nahtlosere Erfahrung für Entwickler zu schaffen. Die Umsetzungen unterscheiden sich, aber hier sind die gängigsten Komponenten.

Developer Portal: Oft auch als internes Developer Portal bezeichnet; die primäre Schnittstelle, mit der Entwickler interagieren. Oft mit Open-Source-Tools wie Backstage entwickelt, bietet es ein zentrales Dashboard, einen Servicekatalog, Dokumentation, Vorlagen, Plugins und Workflows. Es ist die Self-Service-Steuerkonsole für Entwickler der Plattform.

Servicekatalog: Der Servicekatalog ist eine strukturierte Bestandsaufnahme aller Dienste, Systeme und Ressourcen. Er definiert Eigentum, Abhängigkeiten und stellt weitere Metadaten bereit, sodass jeder weiß, wem was gehört und wie Dienste miteinander interagieren.

Gerüste und Vorlagen: Hierbei handelt es sich um vordefinierte Blueprints für die Erstellung neuer Dienste, mit denen Benutzer schnell GitHub-Repositorys erstellen, CI/CD-Pipelines einrichten, Standardkonfigurationen anwenden, Protokollierung und Überwachung integrieren und vieles mehr können. Pipelines sind vorkonfiguriert und wiederverwendbar mit Best Practices, sodass Entwickler sie nicht von Grund auf neu entwerfen müssen.

Infrastrukturbereitstellung: Diese Ebene übernimmt die Erstellung und Verwaltung von Umgebungen, Ressourcen und Anwendungs-Workloads über hybride oder Multi-Cloud-Architekturen von verschiedenen Cloud-Providern hinweg, wobei oft GitOps-Prinzipien für Automatisierung verwendet werden.

Umgebungsmanagement: In vielen Unternehmen driften Entwicklungs-, Staging- und Produktionsumgebungen im Laufe der Zeit aufgrund von Konfigurationsunterschieden, ungleichen Abhängigkeiten und inkonsistenten Daten auseinander. Eine IDP begegnet diesem Problem, indem sie die Parität der Umgebungen fördert, Mehrdeutigkeiten beseitigt und die Umgebungen vorhersehbarer macht.

Observability: Sichtbarkeit ist standardmäßig in das Systemverhalten integriert und bietet Echtzeit-Erkenntnisse, einschließlich Protokolle, Metriken und Traces.

Geheimnisse und Konfigurationsmanagement: API-Schlüssel, Zugangsdaten und Umgebungsvariablen werden sicher behandelt, was dazu beiträgt, sicherzustellen, dass Geheimnisse niemals fest kodiert und der Zugriff kontrolliert und prüfbar ist.

Governance: Sicherheits- und Compliance-Richtlinien werden automatisch durchgesetzt, und Governance-Kontrollen wie Scorecards und rollenbasierte Zugriffskontrolle (RBAC) definieren, wer bereitstellen darf, wer auf was zugreifen darf und wie Workflows genehmigt werden.

Dokumentation: Anstelle einer verstreuten Dokumentation wird sie neben den Diensten geführt und ist über das Portal auffindbar.

KI und die IDP

Ein agentischer Codierungsassistent kann zwar nicht selbstständig eine produktionsreife IDP erstellen, aber er kann aktiv planen, generieren und iterativ mehrere Schritte durchlaufen und so den gesamten Prozess beschleunigen – vom Bootstrapping der Plattform über die Erstellung optimaler Pfade bis hin zur Integration von Tools. Architektur erfordert nach wie vor menschliches Urteilsvermögen, da es dabei ebenso sehr um Organisations- und Teamstruktur wie um Technologie geht.

Einmal erstellt, kann ein agentischer Codierungsassistent innerhalb einer IDP arbeiten und dabei helfen, diese von einem statischen Portal in eine dynamischere, aufgabenorientierte Umgebung zu verwandeln. IBM Bob kann beispielsweise mit Plattformkomponenten integriert werden und bei beispielsweise folgenden Aufgaben unterstützen:

  • Lesen von Servicevorlagen und Standards
  • Interaktion mit CI/CD-Konfigurationen und Workflows
  • Generieren und Ändern von Code über verschiedene Repositories hinweg
  • Unterstützung beim Auslösen von Entwicklungen, Tests und Bereitstellungen (mit entsprechenden Genehmigungen)
  • Interpretation von Protokollen und Observability-Daten durch verbundene Tools

Viel mehr als ein Chatbot fungiert er als intelligente Schnittstelle zur Plattform. Anstatt Formulare und Workflows manuell zu durchlaufen, kann ein Entwickler Aktionen wie „Neuen Dienst erstellen“ anfordern, und der Assistent kann dabei helfen, die notwendigen Schritte zu orchestrieren – unter Einhaltung von Standards, Leitplanken und goldenen Pfaden. In klar definierten Umgebungen kann er die Metadaten und den Kontext des Servicekatalogs als Leitfaden für seine Aktionen verwenden und bei Bedarf dennoch Reviews einbeziehen.

Autor

Cole Stryker

Staff Editor, AI Models

IBM Think

Weiterführende Lösungen
IBM Enterprise Application Service für Java

Ein vollständig verwalteter, mandantenfähiger Service für die Entwicklung und Bereitstellung von Java-Anwendungen.

Java-Apps erkunden
DevOps-Lösungen

Verwenden Sie DevOps-Software und -Tools, um cloudnative Anwendungen für mehrere Geräte und Umgebungen zu erstellen, bereitzustellen und zu verwalten.

DevOps-Lösungen erkunden
Services für die Entwicklung von Unternehmensanwendungen

Die Entwicklung von Cloud-Anwendungen bedeutet: einmal erstellen, schnell iterieren und überall bereitstellen.

Services für die Anwendungsentwicklung
Machen Sie den nächsten Schritt

IBM Cloud Application Development Consulting Services bieten fachkundige Beratung und innovative Lösungen zur Optimierung Ihrer Cloud-Strategie. Arbeiten Sie mit den Cloud- und Entwicklungsexperten von IBM zusammen, um Ihre Anwendungen zu modernisieren, skalieren und beschleunigen und so transformative Ergebnisse für Ihr Unternehmen zu erzielen.

  1. Mehr zu Services zur Anwendungsentwicklung
  2. Erste kostenlose Schritte beim Erstellen auf IBM Cloud