Skip to main content

Softwareprofis sind berüchtigt dafür, coole Namen für Dinge zu erfinden, die eigentlich gesunder Menschenverstand sind. „Plattform-Engineering“ ist ein aktuelles Beispiel, das bewährte Prinzipien mit der Innovation cloud-native Frameworks verbindet.

Im Kern geht es beim Plattform-Engineering darum, die Softwareentwicklung durch die Einführung eines einheitlichen, verwalteten Toolsets zu vereinheitlichen und so die Grundlage für eine gesteigerte Teamproduktivität zu schaffen. Reifere Industrien wissen das schon seit Jahrzehnten.

Was ist Plattform-Engineering?

Plattform-Engineering ist die Praxis, die grundlegende Software-Infrastruktur und Systeme für Anwendungen und Services zu entwerfen, zu bauen und zu verwalten. Es umfasst die Verwaltung physischer und Cloud-basierter Infrastrukturen, die Automatisierung von Prozessen, die Integration verschiedener Tools, die Sicherstellung von Sicherheit und Compliance, Leistungsüberwachung sowie die Aufrechterhaltung von Hochverfügbarkeit und Disaster Recovery.

Dieser Bereich ist entscheidend, um robuste, skalierbare und sichere technische Umgebungen zu gewährleisten, die eine effiziente Entwicklungs- und Bereitstellungsumgebung von Applikationen ermöglichen.

Plattform-Engineering markiert die Entwicklung von isolierten Bemühungen hin zu einem harmonisierten Ökosystem und verbessert so die Entwicklererfahrung und operative Effizienz.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

This field is for validation purposes and should be left unchanged.
By submitting you agree to receive occasional emails and acknowledge our Privacy Policy. You can unsubscribe at anytime.

Der Wandel von Einzelleistungen zu kollektiver Kompetenz

Ein einzelner Entwickler oder „Software-Kunsthandwerker“ mag anfangs mit seinem maßgeschneiderten Werkzeugkasten ein Kollektiv überragen. Doch mit dem Wachstum eines Softwareunternehmens rücken Teamarbeit – Kommunikation, Zusammenarbeit und der strategische Austausch von Tools und Prozessen – in den Vordergrund.

Plattform-Engineering ist eine ausgereifte Antwort auf diese Skalierungsprobleme. Es umfasst die Auswahl und Verwaltung eines Anwendungspakets und von Tools, die eine gemeinschaftliche Grundlage bieten und es Entwicklern ermöglichen, durch die Integration und Erweiterung vorhandener Module Innovationen zu schaffen.

Die Aufgabe eines Plattform-Engineering-Teams ist die Schaffung einer internen Entwicklerplattform (IDP), die die Grenzen traditioneller Anwendungsentwicklung durch die Einbindung von Frameworks wie Kubernetes überwindet und eine Self-Service-Umgebung fördert, die Entwicklern mehr Eigenständigkeit gibt. 

Das Kunsthandwerker-Prinzip gilt auch beim Testen: Ein kompetenter, automatisierungsfähiger Explorations-Tester ist wahrscheinlich das effektivste QA-Mitglied, das man finden kann. Die Herausforderung liegt jedoch in der Skalierbarkeit. Testautomatisierung findet oft in Silos statt, in denen Einzelpersonen Lösungen mit Tools wie Selenium auf ihre ganz eigene Weise erstellen. Der Weggang oder Aufstieg solcher Fachkräfte führt häufig dazu, dass ihre Nachfolger die Systeme komplett umbauen, da sie einen anderen Ansatz für die Tool-Nutzung haben. 

Gemeinsame Testplattformen: Zusammenarbeit fördern

Eine gemeinsame Testplattform hingegen ermöglicht eine produktive Zusammenarbeit zwischen professionellen Testern, Businessexperten und Entwicklern. Eine solche Plattform – wie Copados Robot Testing – erleichtert nicht nur das Teilen und Wiederverwenden von Tests, Daten und Ergebnissen, sondern fördert auch die Transparenz bei der Qualitätsbewertung. Mit Infrastructure-as-Code (wieder ein cooler Name für etwas sehr Logisches) können Testumgebungen effizient in der Cloud bereitgestellt werden und bieten allen Beteiligten bedarfsgerechten Zugang und Transparenz.

Im Zeitalter von Microservices müssen die Funktionalitäten einzelner Komponenten, orchestriert von Plattformen wie Docker und Kubernetes, insbesondere hinsichtlich kognitiver Belastung und Benutzerwirkung hinterfragt werden. Hier kommen die Prinzipien des Site Reliability Engineerings (SRE) ins Spiel, die dafür sorgen, dass Systeme zuverlässig bleiben und die Betriebsteams mit soliden Alarmierungstools wie Puppet und Monitoring-Lösungen für die Observierbarkeit ausgestattet werden.

Herausforderungen des Plattform-Engineerings

Trotz der offensichtlichen Vorteile ist das Plattform-Engineering nicht ohne Herausforderungen. Es erfordert akribisches Management und ständige Weiterentwicklung. Viele erfolgreiche Produktunternehmen tun sich schwer mit der Entwicklung einer gemeinsamen Plattform für ihre Produkte – und es ist unrealistisch zu erwarten, dass IT-Abteilungen diese Fähigkeiten von Natur aus besitzen. Deshalb setzen sich breit aufgestellte, hochentwickelte Anwendungsplattformen wie Salesforce und Entwicklerplattformen wie Git oder Azure DevOps immer mehr durch. Bei den Testplattformen geschieht dies ebenfalls, wenn auch etwas langsamer.

Da Anwendungen durch die Zusammenstellung von Komponenten aus einer gemeinsamen Plattform entstehen, wird die Qualität und Robustheit dieser Plattform zum zentralen Faktor. Jedes Problem auf Plattformeite kann potenziell alle darauf aufbauenden Anwendungen beeinträchtigen. Daher müssen sich Plattform und Anwendungen gemeinsam weiterentwickeln, wobei die Plattform stets einen Schritt voraus sein sollte, um Stabilität zu gewährleisten.

Das Testen der Plattform muss getrennt vom Testen der Applikationen erfolgen, egal ob Sie in der Produktion testen oder nicht. Ersteres ist meist technischer Natur und konzentriert sich auf Unit Tests, APIs, Skalierbarkeit und Performance, während Letzteres naturgemäß geschäftsprozess-orientiert und End-to-End ist.

Qualität über den gesamten Plattform-Lebenszyklus sichern

Da Organisationen zunehmend Cloud-native Ansätze übernehmen, ist die Robustheit ihrer Plattform von entscheidender Bedeutung. Jegliches Problem innerhalb der Plattform kann weitreichende Auswirkungen haben, weshalb eine klare Trennung zwischen Plattform-Tests und Anwendungs-Tests unerlässlich ist. Diese Aufteilung ermöglicht einen gezielten Ansatz für Skalierbarkeit und Performance, wobei sich ersterer auf technische Aspekte wie APIs konzentriert und letzterer auf die Funktionalität für Endanwender.

Plattform-Engineering-Software & Tools erklärt


Im Plattform-Engineering verwalten und optimieren verschiedene Software-Tools die Prozesse, die beim Aufbau, beim Deployment und bei der Wartung von Infrastruktur und Anwendungen anfallen.

Nehmen wir zum Beispiel ein Tool wie Postman. Ursprünglich als Nebenprojekt entwickelt, um den API-Workflow in Entwicklung und Test zu vereinfachen, ist Postman ein hervorragendes Tool für einzelne Tester. Wird es jedoch in einen Continuous Integration/Continuous Delivery (CI/CD)-Workflow eingebunden, vergrößern sich seine Möglichkeiten und es dient einem breiteren Zweck innerhalb einer Cloud-Plattform. Es ermöglicht ein schnelles und einfaches Testen von APIs und liefert dem Nutzer sofortiges Feedback.

Mit wachsendem Team werden jedoch die Einschränkungen von Postman deutlich. Obwohl es für manuelle Tests und Erkundung hervorragend geeignet ist, stößt es in kollaborativen Umgebungen an Grenzen, in denen automatisierbare, wiederholbare und skalierbare Tests erforderlich sind. Mit der Ausweitung des Softwarebetriebs werden Aspekte wie Kommunikation, Teilen und Wiederverwendung entscheidend – sie übertreffen oft die Leistung des Einzelnen.

Weitere wichtige Tools für das Plattform-Engineering sind:

  • Containerisierungs-Tools
    • Docker: Zum Erstellen, Bereitstellen und Ausführen von Anwendungen in Containern.
    • Kubernetes: Eine Plattform für Container-Orchestrierung zur Automatisierung von Deployment, Skalierung und Betrieb von Anwendungs-Containern in Clusterumgebungen.
  • Infrastructure as Code (IaC)-Tools:
    • Terraform: Für den sicheren und effizienten Aufbau, die Änderung und Versionierung von Infrastruktur.
    • Ansible: Ein Open-Source-Tool für Software-Bereitstellung, Konfigurationsmanagement und Anwendungs-Deployment.
    • Puppet: Ein weiteres beliebtes Tool für Konfigurationsmanagement.
  • Continuous Integration/Continuous Deployment (CI/CD)-Tools:
    • Jenkins: Ein Open-Source-Automatisierungsserver, der Teile der Softwareentwicklung automatisiert.
    • GitLab CI/CD: Bietet eine einfache Möglichkeit, die Phasen des App-Entwicklungszyklus zu automatisieren.
    • CircleCI: Ermöglicht kontinuierliche Integration und Lieferung, damit Entwicklungsteams Code schnell veröffentlichen können.
  • Monitoring- und Observability-Tools:
    • Prometheus: Ein Open-Source Monitoring-System mit einer Zeitreihen-Datenbank.
    • Grafana: Für die Visualisierung und Überwachung von Metriken.
    • Elasticsearch, Logstash und Kibana (ELK Stack): Beliebt für Logging und Datenvisualisierung.
  • Cloud-Service-Anbieter:
    • Amazon Web Services (AWS): Bietet eine breite Palette von Cloud-Services.
    • Microsoft Azure: Stellt Cloud-Computing-Dienste bereit.
    • Google Cloud Platform (GCP): Bietet eine Vielzahl von Cloud-Computing-Diensten.
  • Versionskontrollsysteme:
    • Git: Ein verteiltes Versionskontrollsystem zur Nachverfolgung von Änderungen im Quellcode.
    • GitHub: Eine Plattform zum Hosten und Verwalten von Git-Repositories.
  • Sicherheits- und Compliance-Tools:
    • HashiCorp Vault: Zur sicheren Speicherung und Zugriffskontrolle auf Tokens, Passwörter, Zertifikate, API-Keys und andere Geheimnisse.
    • SonarQube: Bewertet Codequalität und identifiziert Schwachstellen.
  • Service-Mesh-Tools:
    • Istio: Eine offene Plattform, um Microservices zu verbinden, zu managen und abzusichern.
    • Linkerd: Sorgt für Transparenz, Zuverlässigkeit und Sicherheit bei Microservices.
  • Serverless-Frameworks:
    • AWS Lambda: Ermöglicht das Ausführen von Code ohne Bereitstellen oder Verwalten von Servern.
    • Serverless Framework: Vereinfacht die Entwicklung von Anwendungen mit Serverless-Architekturen.
  • Datenbankverwaltung:
    • MongoDB: Eine beliebte NoSQL-Datenbank.
    • PostgreSQL: Eine fortschrittliche Open-Source-Relationaldatenbank.

Das Versprechen des Platform Engineerings

Auch wenn Platform Engineering eine gesteigerte Entwicklerproduktivität verspricht, ist es leichter gesagt als getan, dieses Potenzial zu realisieren. Die Plattform muss sorgfältig verwaltet, auf Stabilität geprüft werden und darf nicht zum Engpass werden. Dieses ehrgeizige Ziel erfordert eine koordinierte Anstrengung aller DevOps-Teams – vom DevOps-Ingenieur bis zum Produktteam. Eine erfolgreiche Umsetzung hängt von nahtloser Orchestrierung, der Effizienz der Pipelines und einem klaren Bekenntnis zu Continuous Integration und Continuous Deployment ab. Effektive Testverfahren und ein auf Automatisierung ausgerichteter Werkzeugkasten sind Voraussetzung für erfolgreiches Platform Engineering.

Interessieren Sie sich für weitere Informationen zu KI und Softwaretests? Abonnieren Sie den QA Lead Newsletter, um über alle aktuellen Trends informiert zu bleiben.