Die Reise zum effektiven Plattform-Engineering

Entdecken Sie, wie Sie bessere Software und Systeme in schnell wachsenden Umgebungen bereitstellen. Treten Sie unserer Community bei

Plattform-Engineering revolutioniert die Softwareentwicklung, indem es Werkzeuge und Praktiken für maximale Produktivität und Skalierbarkeit standardisiert – unterstützt durch solides DevOps, strategisches Testen und einen starken Fokus auf Automatisierung.

Softwarefachleute sind bekanntermaßen gut darin, für Dinge des gesunden Menschenverstands coole Namen zu erfinden. „Plattform-Engineering“ ist ein aktuelles Beispiel dafür, das etablierte Prinzipien mit der Innovation cloudnativer Frameworks verbindet.

Im Kern geht es beim Plattform-Engineering darum, die Softwareentwicklung durch die Einführung eines konsistenten, verwalteten Toolsets zu vereinheitlichen und so die Grundlage für eine höhere Teamproduktivität zu schaffen. Reifere Branchen wissen das bereits seit Jahrzehnten.

Was ist Plattform-Engineering?

Plattform-Engineering bezeichnet die Entwicklung, den Aufbau und die Verwaltung der grundlegenden Softwareinfrastruktur und Systeme für Anwendungen und Dienste. Dazu gehören die Verwaltung physischer und cloudbasierter Infrastruktur, die Automatisierung von Prozessen, die Integration verschiedener Tools, die Gewährleistung von Sicherheit und Compliance, die Überwachung der Leistung sowie die Aufrechterhaltung hoher Verfügbarkeit und die Notfallwiederherstellung.

Dieser Bereich ist entscheidend für die Gewährleistung robuster, skalierbarer und sicherer technischer Umgebungen, die eine effiziente Entwicklung und Bereitstellung von Anwendungen ermöglichen.

Plattform-Engineering markiert den Übergang von isolierten Bemühungen zu einem harmonisierten Ökosystem und verbessert dadurch die Entwicklererfahrung und die betriebliche Effizienz.

WERDE TEIL DER COMMUNITY
Bereichern Sie Ihren Posteingang mit mehr Führungserkenntnissen aus der Tech-Welt für bessere Software und Systeme.
Get Free Access

Have an account? Log In

Der Wandel von individueller Spitzenleistung zu gemeinsamer Kompetenz

Ein einzelner Entwickler oder „Softwarehandwerker“ kann eine Gruppe mit seinem individuellen Toolkit zunächst übertreffen. Mit den Anforderungen eines wachsenden Softwareunternehmens gewinnt jedoch bald die Kunst der Teamarbeit an Bedeutung – Kommunikation, Zusammenarbeit und die strategische gemeinsame Nutzung von Tools und Prozessen.

Plattform-Engineering ist eine ausgefeilte Antwort auf diese Herausforderungen der Skalierung. Es umfasst die Zusammenstellung und Verwaltung einer Reihe von Anwendungen und Tools, die als gemeinsames Fundament dienen und es Entwicklern ermöglichen, durch die Integration und Weiterentwicklung bereits vorhandener Module Innovationen voranzutreiben.

Die Aufgabe eines Plattform-Engineering-Teams besteht darin, eine interne Entwicklerplattform (IDP) zu schaffen, die die Grenzen der herkömmlichen Anwendungsentwicklung durch die Einbindung von Frameworks wie Kubernetes überwindet und eine Self-Service-Umgebung fördert, die Entwickler unterstützt. 

Das Handwerkerprinzip gilt auch für das Testen: Ein kompetenter, zur Automatisierung fähiger explorativer Tester ist wahrscheinlich die effektivste Qualitätssicherungskraft, die man finden kann. Die Herausforderung liegt jedoch in der Skalierbarkeit. Testautomatisierung findet häufig in Silos statt, wobei Einzelpersonen mithilfe von Tools wie Selenium auf ihre jeweils eigene Weise Lösungen entwickeln. Der Weggang oder die Beförderung dieser Personen führt häufig dazu, dass ihre Nachfolger die bestehenden Systeme vollständig überarbeiten, da sie möglicherweise einen anderen Ansatz für die Verwendung der Tools verfolgen. 

Gemeinsame Testplattformen: Zusammenarbeit fördern

Eine gemeinsame Testplattform würde dagegen eine produktive Zusammenarbeit zwischen professionellen Testern, Fachanwendern und Entwicklern ermöglichen. Eine solche Plattform wie Copados Robot Testing würde nicht nur die gemeinsame Nutzung und Wiederverwendung von Tests, Daten und Ergebnissen erleichtern, sondern auch die Transparenz bei der Qualitätsbewertung fördern. Mit Infrastruktur als Code (ein weiterer cooler Name für eine Sache des gesunden Menschenverstands) lassen sich Testumgebungen effizient in der Cloud bereitstellen, sodass alle Beteiligten bei Bedarf Zugriff und Transparenz erhalten.

Im Zeitalter der Microservices muss die Funktionalität einzelner Komponenten, die von Plattformen wie Docker und Kubernetes orchestriert werden, im Hinblick auf die kognitive Belastung und die Auswirkungen auf die Benutzer untersucht werden. Hier kommen die Prinzipien des Site Reliability Engineering (SRE) zum Einsatz. Sie stellen sicher, dass Systeme zuverlässig sind und die Betriebsteams mit robusten Alarmierungswerkzeugen wie Puppet sowie Überwachungslösungen ausgestattet sind, um die Beobachtbarkeit aufrechtzuerhalten.

Herausforderungen des Plattform-Engineerings

Trotz seiner offensichtlichen Vorteile ist Plattform-Engineering nicht frei von Herausforderungen. Es erfordert eine sorgfältige Verwaltung und kontinuierliche Weiterentwicklung. Viele leistungsfähige Produkthersteller haben Schwierigkeiten, eine gemeinsame Plattform für ihre Produkte zu entwickeln, weshalb es unrealistisch ist, von IT-Abteilungen zu erwarten, dass sie diese Fähigkeiten von sich aus besitzen. Deshalb gewinnen umfassende, übergeordnete Anwendungsplattformen wie Salesforce sowie Entwicklerplattformen wie Git oder Azure DevOps an Bedeutung. Dasselbe geschieht bei Testplattformen, allerdings etwas langsamer.

Da Anwendungen durch die Zusammenstellung von Komponenten aus einer gemeinsamen Plattform erstellt werden, sind die Qualität und Robustheit dieser Plattform von größter Bedeutung. Jedes Problem mit der Plattform kann potenziell alle darauf aufbauenden Anwendungen beeinträchtigen. Daher müssen sich die Plattform und die Anwendungen gleichzeitig weiterentwickeln, wobei die Plattform stets einen Vorsprung behalten muss, um Stabilität zu gewährleisten.

Das Testen der Plattform muss vom Testen der Anwendungen getrennt werden, unabhängig davon, ob Sie in der Produktion testen oder nicht. Ersteres ist tendenziell technischer und konzentriert sich auf Unit-Tests, APIs, Skalierbarkeit und Leistung, während Letzteres eher geschäftsprozessbezogen und von Natur aus ein Ende-zu-Ende-Test ist.

Qualität über den gesamten Plattformlebenszyklus hinweg gewährleisten

Da Unternehmen Cloud-native-Ansätze übernehmen, ist die Robustheit ihrer Plattform von größter Bedeutung. Jedes Problem innerhalb der Plattform könnte weitreichende Auswirkungen haben. Deshalb ist eine klare Abgrenzung zwischen Plattformtests und Anwendungstests entscheidend. Diese Trennung ermöglicht einen gezielten Ansatz für Skalierbarkeit und Leistung: Ersterer konzentriert sich auf technische Aspekte wie APIs, während Letzterer die Funktionalität für Endbenutzer in den Mittelpunkt stellt.

More Articles

Software und Werkzeuge für Plattform-Engineering erklärt


Im Plattform-Engineering verwalten und optimieren verschiedene Softwarewerkzeuge die Prozesse, die am Erstellen, Bereitstellen und Warten von Infrastrukturen und Anwendungen beteiligt sind.

Betrachten wir ein Werkzeug wie Postman. Ursprünglich als Nebenprojekt entwickelt, um API-Abläufe bei der Entwicklung und beim Testen zu vereinfachen, ist Postman ein hervorragendes Werkzeug für einzelne Tester. Wenn es jedoch in einen Arbeitsablauf für kontinuierliche Integration/kontinuierliche Bereitstellung (CI/CD) integriert wird, vervielfachen sich seine Möglichkeiten, und es erfüllt innerhalb einer Cloud-Plattform einen umfassenderen Zweck. Es ermöglicht ein schnelles und unkompliziertes Testen von APIs und liefert dem Benutzer sofortige Rückmeldung.

Mit zunehmender Größe des Teams werden die Einschränkungen von Postman deutlich. Obwohl es sich hervorragend für manuelle Tests und die Erkundung eignet, stößt es in kollaborativen Umgebungen an seine Grenzen, in denen automatisierte, wiederholbare und skalierbare Tests erforderlich sind. Wenn ein Softwarebetrieb wächst, werden Elemente wie Kommunikation, gemeinsame Nutzung und Wiederverwendung entscheidend und überschatten häufig die Leistung einer einzelnen Person.

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

  • Werkzeuge zur Containerisierung
    • Docker: Zum Erstellen, Bereitstellen und Ausführen von Anwendungen in Containern.
    • Kubernetes: Eine Plattform zur Container-Orchestrierung, die die Bereitstellung, Skalierung und den Betrieb von Anwendungscontainern über Cluster von Hosts hinweg automatisiert.
  • Werkzeuge für Infrastruktur als Code (IaC):
    • Terraform: Wird verwendet, um Infrastrukturen sicher und effizient zu erstellen, zu ändern und zu versionieren.
    • Ansible: Ein Open-Source-Werkzeug für die Softwarebereitstellung, das Konfigurationsmanagement und die Anwendungsbereitstellung.
    • Puppet: Ein weiteres beliebtes Werkzeug für das Konfigurationsmanagement.
  • Werkzeuge für kontinuierliche Integration/kontinuierliche Bereitstellung (CI/CD):
    • Jenkins: Ein Open-Source-Automatisierungsserver, der zur Automatisierung von Teilen der Softwareentwicklung eingesetzt wird.
    • GitLab CI/CD: Bietet eine optimierte Möglichkeit, Phasen des Lebenszyklus der Anwendungsentwicklung zu automatisieren.
    • CircleCI: Bietet kontinuierliche Integration und Bereitstellung, damit Entwicklungsteams Code schnell veröffentlichen können.
  • Werkzeuge für Überwachung und Beobachtbarkeit:
    • Prometheus: Ein Open-Source-Überwachungssystem mit einer Zeitreihendatenbank.
    • Grafana: Zur Visualisierung und Überwachung von Metriken.
    • Elasticsearch, Logstash und Kibana (ELK-Stack): Beliebt für die Protokollierung und Visualisierung von Daten.
  • Cloud-Dienstanbieter:
    • Amazon Web Services (AWS): Bietet eine große Bandbreite an Cloud-Diensten.
    • Microsoft Azure: Bietet Cloud-Computing-Dienste.
    • Google Cloud Platform (GCP): Bietet eine Reihe von Cloud-Computing-Diensten.
  • Versionskontrollsysteme:
    • Git: Ein verteiltes Versionskontrollsystem zur Nachverfolgung von Änderungen am Quellcode.
    • GitHub: Eine Plattform zum Hosten und Verwalten von Git-Repositorys.
  • Werkzeuge für Sicherheit und Compliance:
    • HashiCorp Vault: Zur Absicherung, Speicherung und Kontrolle des Zugriffs auf Token, Passwörter, Zertifikate, API-Schlüssel und andere Geheimnisse.
    • SonarQube: Bewertet die Codequalität und identifiziert Schwachstellen.
  • Tools für Servicenetzwerke:
    • Istio: Eine offene Plattform zum Verbinden, Verwalten und Absichern von Microservices.
    • Linkerd: Bietet Microservices Beobachtbarkeit, Zuverlässigkeit und Sicherheit.
  • Serverlose Frameworks:
    • AWS Lambda: Ermöglicht die Ausführung von Code, ohne Server bereitzustellen oder zu verwalten.
    • Serverless Framework: Vereinfacht die Entwicklung von Anwendungen mit serverlosen Architekturen.
  • Datenbankverwaltung:
    • MongoDB: Eine beliebte NoSQL-Datenbank.
    • PostgreSQL: Eine fortschrittliche relationale Open-Source-Datenbank.

Das Versprechen des Plattform-Engineerings

Obwohl Plattform-Engineering eine höhere Produktivität von Entwicklern verspricht, ist die Umsetzung dieses Potenzials leichter gesagt als getan. Die Plattform muss sorgfältig verwaltet, auf Stabilität getestet werden und darf nicht zum Engpass werden. Dieses ambitionierte Ziel erfordert eine gemeinsame Anstrengung aller DevOps-Teams – vom DevOps-Ingenieur bis zum Produktteam. Eine erfolgreiche Implementierung hängt von einer nahtlosen Orchestrierung, der Effizienz der Pipelines und dem Engagement für kontinuierliche Integration und kontinuierliche Bereitstellung ab. Effektive Testverfahren und ein auf Automatisierung ausgerichtetes Toolkit sind Voraussetzungen für erfolgreiches Plattform-Engineering.

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

Esko Hannula

Esko Hannula ist Vice President Product Line Management bei Copado, einer DevOps- und Testlösung für Low-Code-SaaS-Plattformen, die die größten digitalen Transformationen der Welt ermöglichen. Unterstützt von Insight Partners, Salesforce Ventures und SoftBank Vision Fund beschleunigt Copado Multi-Cloud-Enterprise-Einführungen, indem der gesamte Softwarebereitstellungsprozess automatisiert wird, um die Cloud-Investitionsrendite der Kunden zu maximieren.

Follow the author:

You may also like