Was ist eine interne Entwicklungsplattform (IDP)?

Eines der Hauptziele der Softwareentwicklung ist es, Probleme zu lösen und Wert zu schaffen. Doch dieser Fokus kann im täglichen Kleinkrieg der modernen Entwicklung verloren gehen. Eine interne Entwicklungsplattform (IdP) soll Entwickler entlasten, damit sie sich auf die Softwareentwicklung konzentrieren können. Das Hauptziel eines IdP ist nicht nur, Software schneller bereitzustellen, sondern auch die geistige Belastung der Entwickler zu reduzieren, indem sichere, effiziente und gut unterstützte Vorlagen und Automatisierung – oft als Golden Paths bezeichnet – für die Entwicklung und Bereitstellung von Anwendungen geschaffen werden.

Interne Entwicklungsplattform auf Google Kubernetes Engine Enterprise erstellen

Definition von „interne Entwicklungsplattform“ (IdP)

Eine interne Entwicklerplattform integriert eine ausgewählte Reihe von Technologien und Tools, die von einem dedizierten Plattformteam entwickelt und verwaltet werden. Dieser Stack umfasst oft Lösungen für die Containerorchestrierung, IaC-Tools (Infrastructure as Code) und CI/CD-Pipelines, die auf Open-Source-Projekten basieren.

Eine interne Entwicklungsplattform (IdP) sollte als Produkt betrachtet werden, dessen Nutzer die Entwickler sind. Es ist wichtig, auf ihre Anwendungsfälle einzugehen, ihr Feedback einzuholen und die Plattform durch Iteration kontinuierlich zu verfeinern. Die IDP ist die Ebene, die diese Tools verbindet und ihre Komplexität abstrahiert, sodass Entwickler Aufgaben über ein einfaches Self-Service-Modell ausführen können. Ziel ist es, den richtigen Weg zum einfachen Weg zu machen, damit Entwickler mit Zuversicht und Autonomie entwickeln und bereitstellen können.

H2: Was ist kognitive Belastung?

Kognitive Belastung bezeichnet die gesamte Menge an mentaler Anstrengung, die im Arbeitsgedächtnis einer Person verwendet wird. Stellen Sie sich das wie die mentale Bandbreite eines Entwicklers vor. Wenn diese Bandbreite durch Aufgaben verbraucht wird, die nichts mit Programmieren zu tun haben, sinkt die Fähigkeit, sich auf komplexe Problemlösungen zu konzentrieren.

Entwickler müssen oft zwischen Dutzenden von verschiedenen Tools, Dashboards und Konfigurationsdateien wechseln, nur um eine einfache Änderung bereitzustellen. Jeder Kontextwechsel zwingt das Gehirn, neue Informationen zu laden, was mental anstrengend ist. Dieses ständige Jonglieren mit Tools und Prozessen erhöht die kognitive Belastung, was zu Burnout, mehr Fehlern und langsameren Innovationen führen kann.

Die Rolle der Plattformentwicklung

Platform Engineering ist die Disziplin, eine interne Entwicklungsplattform zu entwerfen, zu erstellen und zu verwalten. Wenn die IdP das Produkt ist, dann ist das Plattformentwicklungsteam das Produktteam, das für seinen Lebenszyklus verantwortlich ist. Ihre Kunden sind die Entwickler des Unternehmens.

Das bedeutet, dass die Plattform wie jedes andere Softwareprodukt behandelt wird. Das Plattformtechnikteam ist dafür verantwortlich, die Anforderungen der Entwickler zu verstehen, eine Roadmap zu definieren und ein zuverlässiges, sicheres und einfach zu verwendendes Toolset bereitzustellen.

Interne Entwicklungsplattform im Vergleich zum internen Entwicklungsportal

Häufig wird nach dem Unterschied zwischen einer Plattform und einem Portal gefragt. Die Begriffe werden zwar manchmal synonym verwendet, bezeichnen aber unterschiedliche Aspekte der Entwicklererfahrung. Die interne Entwicklungsplattform (IdP) ist wie ein Motor, der alle Tools, Workflows und die Infrastruktur umfasst, die den Entwicklungszyklus antreiben.

Das interne Entwicklerportal ist dagegen das Dashboard für diese Engine. Die grafische Benutzeroberfläche (GUI) bietet Entwicklern einen zentralen Ort, um auf die Funktionen der Plattform zuzugreifen. Ein Entwicklerportal kann Entwicklern helfen, Tools zu finden und zu verwenden, Dokumentationen einzusehen, neue Dienste zu erstellen und den Status ihrer Builds zu überprüfen, ohne die komplexe Maschinerie zu verstehen, die darunter läuft. Eine umfassende IDP umfasst oft ein Entwicklerportal, um die Benutzerfreundlichkeit und Auffindbarkeit zu verbessern. Die Plattform selbst ist jedoch das vollständige Set an zugrunde liegenden Technologien und automatisierten Prozessen.

Wichtige Komponenten eines IdP

Die Anforderungen jedes Unternehmens sind unterschiedlich, aber die meisten IdPs bestehen aus einigen Kernkomponenten, die zusammenarbeiten. Diese Komponenten konzentrieren sich auf die Schaffung eines optimierten, sicheren und effizienten Pfads von der Entwicklung bis zur Produktion.

Die Entwicklerumgebung ist die zentrale Schnittstelle, die die zugrunde liegende Komplexität der Infrastruktur abstrahiert. Oft ist es ein Entwicklerportal oder eine Befehlszeilenschnittstelle (CLI), die Entwicklern Self-Service-Zugriff auf die Tools, Dokumentationen und Ressourcen bietet, die sie benötigen. IDE-Plug-ins wie Cloud Code helfen Entwicklern beispielsweise, Code direkt in ihrer gewohnten Umgebung zu schreiben und zu debuggen. Portale, die mit Lösungen wie Backstage in Google Cloud erstellt wurden, bieten eine einheitliche, konsolidierte Ansicht des gesamten Software-Ökosystems.

App-Vorlagen, auch „Golden Paths“ genannt, bieten Entwicklern eine vordefinierte Struktur mit Best Practices für neue Anwendungen. Diese Vorlagen können Boilerplate-Code, konfigurierte CI/CD-Pipelines, Infrastructure-as-Code-Dateien und Monitoring-Dashboards enthalten. Ressourcen wie das App Design Center können Teams dabei helfen, einen Katalog dieser Vorlagen zu erstellen und zu verwalten, sodass Best Practices leicht auffindbar und wiederverwendbar sind. Dieser Ansatz beschleunigt das Onboarding von Entwicklern und sorgt für Konsistenz bei allen Diensten.

Diese Komponente integriert die Sicherheit direkt in den Entwicklungs-Workflow. Es automatisiert die Durchsetzung von Sicherheitsrichtlinien wie Identity and Access Management (IAM), rollenbasierte Zugriffssteuerung (RBAC), Netzwerkrichtlinien, Scannen auf Sicherheitslücken und Härten der Infrastruktur. Durch die Einbettung von Sicherheitsfunktionen in die Plattform können Teams die Sicherheit nach dem Shift-Left-Ansatz verbessern und potenzielle Probleme frühzeitig im Entwicklungszyklus angehen. So wird verhindert, dass die Sicherheit kurz vor der Produktion zum Engpass wird.

Eine anwendungszentrierte Grundlage schafft eine standardisierte Abstraktionsebene über der zugrunde liegenden Infrastruktur. Es bietet ein einheitliches Modell für wichtige betriebliche Belange und einen Ansatz für Netzwerk, Sicherheit und Beobachtbarkeit, der in allen Umgebungen funktioniert. Diese Konsistenz vereinfacht die Verwaltung und reduziert die kognitive Belastung für Entwickler, die sich nicht um die spezifischen Details jedes Bereitstellungsziels kümmern müssen, wie z. B. eine bestimmte Google Kubernetes Engine (GKE) Clusterkonfiguration.

Eine IdP verwaltet die Anwendungslaufzeiten, in denen der Code ausgeführt wird. Diese Laufzeiten können Container-Orchestrierungsplattformen wie GKE, serverlose Plattformen wie Cloud Run oder andere Rechenumgebungen sein. Der IdP automatisiert die Bereitstellung, Konfiguration und Wartung dieser Laufzeiten. So können Entwickler ihre Anwendungen schnell und zuverlässig bereitstellen, ohne dass sie über umfassende Kenntnisse der zugrunde liegenden Rechenressourcen verfügen müssen.

Die Cloud-Anwendungsplattform ist das integrierte Set von Cloud-Diensten, das als Rückgrat für die gesamte IDP dient. Sie vereint Rechenleistung, Speicher, Netzwerk, Cloud-APIs, CI/CD-Tools und Beobachtbarkeit in einem kohäsiven System. Wenn Sie einen IdP auf einer umfassenden Grundlage wie Google Cloud aufbauen, können Teams leistungsstarke, verwaltete Dienste nutzen, um die Entwicklung zu beschleunigen, die Zuverlässigkeit zu verbessern und sicherzustellen, dass die Plattform bei Bedarf skaliert werden kann.

Vorteile von IdPs

Die Einführung einer internen Entwicklungsplattform kann für Engineering-Organisationen erhebliche Vorteile bieten.

Für die Entwicklung optimiert

Durch die Reduzierung der kognitiven Belastung und die Bereitstellung einfacher Selfservice-Workflows können IdPs die Entwicklererfahrung verbessern.

Kürzere Produkteinführungszeit

Automatisierung und Standardisierung können den Prozess der Softwareentwicklung und -bereitstellung beschleunigen, sodass Teams schneller einen Mehrwert für Kunden schaffen können.

Mehr Zuverlässigkeit und Konsistenz

IdP können dazu beitragen, Best Practices durch Golden Paths durchzusetzen und zu konsistenteren und zuverlässigeren Anwendungsbereitstellungen zu führen.

Mehr Sicherheit und Compliance

Sicherheitsrichtlinien können direkt in die Vorlagen und automatisierten Workflows der Plattform eingebunden werden, sodass alle neuen Dienste von Anfang an die Compliance-Anforderungen erfüllen.

Mehr Autonomie für Entwicklungsteams

Durch die Zentralisierung der Plattformverwaltung können sich Entwickler auf die Funktionen konzentrieren und haben die Autonomie, den Lebenszyklus ihrer Anwendungen zu verwalten.

So verbindet ein IdP Ihren bestehenden Stack

Sehen wir uns ein gängiges Beispiel für eine interne Entwicklungsplattform mit Google Cloud an, um zu sehen, wie eine IDP in der Praxis funktioniert. Stellen Sie sich vor, ein Entwickler muss einen neuen Mikrodienst einrichten, der eine eigene Datenbank und CI/CD-Pipeline benötigt.

Ohne IdP

Der Entwickler müsste manuell ein Cloud Source Repository erstellen, ein Terraform-Modul schreiben, um eine Cloud SQL-Datenbank bereitzustellen, eine Google Kubernetes Engine-Bereitstellungsdatei (YAML) erstellen und konfigurieren, einen neuen Trigger in Cloud Build einrichten und IAM-Berechtigungen für alles verwalten. Das kann Tage dauern und mehrere Teams einbeziehen.

Mit einem IdP

Der Vorgang ist viel einfacher.

Anfrage über das Portal: Der Entwickler meldet sich im Entwicklerportal an und findet eine vordefinierte Vorlage für einen „Python-Mikrodienst mit einer Cloud SQL-Datenbank“.

Einfache Eingaben: Sie füllen ein kurzes Formular mit dem Namen des Dienstes und dem Namen ihres Teams aus.

Orchestrierung beginnt: Der Entwickler klickt auf „Erstellen“ und der Plattform-Orchestrator übernimmt.

Automatisierte Aktionen: Im Hintergrund führt der Orchestrator eine Reihe automatisierter Aufgaben mit Google Cloud APIs aus:

  • Es wird ein neues Repository in Cloud Source Repositories aus der Vorlage erstellt.
  • Es wird ein Terraform-Plan ausgeführt, um eine neue Cloud SQL for PostgreSQL-Instanz bereitzustellen.
  • Es erstellt die erforderlichen Manifeste und wendet sie auf den Google Kubernetes Engine-Cluster (GKE) an, um eine neue Bereitstellungsumgebung zu schaffen.
  • Es wird eine neue CI/CD-Pipeline in Cloud Build konfiguriert, um den Dienst automatisch zu erstellen und bereitzustellen.

Abschluss: Der Vorgang ist innerhalb weniger Minuten abgeschlossen. Der Entwickler erhält eine Benachrichtigung mit Links zu seinem neuen Repository, seiner laufenden Anwendung in der GKE-Stagingumgebung und den Datenbankanmeldedaten – und das alles, ohne eine einzige Zeile Konfigurationscode schreiben zu müssen.

Meistern Sie Ihre geschäftlichen Herausforderungen mit Google Cloud

Neukunden erhalten ein Guthaben im Wert von 300 $ für Google Cloud.
Welches Problem möchten Sie lösen?
What you'll get:
Detaillierte Anleitung
Referenzarchitektur
Vorkonfigurierte Lösungen
Dieser Dienst wurde mit Vertex AI erstellt. Nutzer müssen mindestens 18 Jahre alt sein, um ihn verwenden zu können. Geben Sie keine vertraulichen oder personenbezogenen Daten ein.

Weitere Ressourcen

Weitere Informationen zu den Konzepten und Technologien, aus denen sich eine interne Entwicklungsplattform zusammensetzt, finden Sie in diesen zusätzlichen Ressourcen:

  • Platform Engineering in Google Cloud: Hier erfahren Sie mehr über die Disziplin des Entwerfens und Erstellens von Toolchains und Workflows, die Self-Service-Funktionen für Entwickler ermöglichen.
  • DevOps: Hier erfahren Sie mehr über die Kultur, die Praktiken und die Tools, mit denen Unternehmen Anwendungen und Dienste schnell bereitstellen können.

Gleich loslegen

Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“ Produkte kennenzulernen.

Google Cloud