DevOps, Site Reliability Engineering (SRE) und Platform Engineering sind Konzepte, welche die Agilität, Skalierbarkeit und Zuverlässigkeit von IT-Systemen verbessern. Obwohl sich alle auf die Verbesserung der Zusammenarbeit zwischen Software-Entwicklung und Software-Betrieb konzentrieren, gibt es Unterschiede zwischen ihnen. DevOps legt den Schwerpunkt auf eine enge Zusammenarbeit der Teams und auf die Automatisierung der Prozesse. SRE dagegen stellt die Verbesserung der Zuverlässigkeit sowie Stabilität der IT-Systeme in den Vordergrund. Der Fokus von Platform Engineering liegt auf der Gestaltung, Entwicklung, Wartung und Optimierung von Plattformen, die eine Grundlage für die Softwareentwicklung und Bereitstellung der Software bilden.

was ist DevOps?

In klassischen Projektteams sind Entwicklung und Betrieb als getrennte Teams tätig. Diese Silos werden im Rahmen des DevOps-Modells eingerissen, wodurch die zuvor getrennten Rollen Entwickler („Dev“) und Operations („Ops“) zusammenwachsen. Im gesamten Anwendungslebenszyklus ist das DevOps-Team an jeder Phase von Entwicklung und Test bis zum Betrieb beteiligt. Durch die effizientere und effektivere Zusammenarbeit der beiden Bereiche können in kurzer Zeit qualitativ hochwertigere Produkte entwickelt und der Kunde zufrieden gestellt werden.

Iterativ durchläuft der DevOps-Prozess die Phasen Planung, Code, Build, Test, Release, Deploy, Operate und Monitor (Abbildung 1). Durch diesen inkrementellen Ablauf verbessert sich die Zusammenarbeit zwischen den Teammitgliedern, da diese sich über die Prozesse, Prioritäten und Zuständigkeiten austauschen, sowie die geschäftlichen Ziele und Erfolgskriterien abstimmen müssen. Des Weiteren ist jeder im Team verantwortlich für den gesamten Lebenszyklus. Kürzere Release-Zyklen erlauben eine bessere Planungsmöglichkeit, lassen Risiken frühzeitig erkennen und bieten eine schnelle Reaktion auf verändernde Kundenbedürfnisse. Die Teammitglieder bringen ihre Erfahrungen mit und verbessern ihre Leistung durch kontinuierliches Lernen.

was ist DevOps grafik
was ist DevOps grafik
Abbildung 1: Inkrementeller DevOps Ablauf durch 8 Phasen der Softwareentwicklung (Dev) und des Betriebs (Ops).

DevOps Aufgaben:

  • vereinfachen Prozesse durch Automatisieren manueller Schritte
  • ermöglichen kontinuierliche Integration und Bereitstellung von Software (CI/CD)
  • überwachen und protokollieren die Leistung der Software und die Auswirkung auf die IT-Infrastruktur

was ist site reliability engineering (SRE)?

Unter SRE ist eine Praktik zu verstehen, die den Schnittpunkt zwischen IT und SW-Entwicklung bildet. Durch die Verwendung von Softwaretools werden IT-Infrastrukturaufgaben automatisiert, die sonst von Operations-Teams mehrfach manuell ausgeführt werden. Mithilfe der Automatisierungstools wird die Zuverlässigkeit („Reliability“) der Software durch Überwachung und Beobachtung sichergestellt und Nachhaltigkeit verbessert.

Durch die schnellere Implementierung auf Entwicklerseite sowie Bereitstellung der SRE-Praktiken durch den Betrieb („Operations“) wird die Zusammenarbeit zwischen dem Entwicklungs- und Operations-Team verbessert. Fehler werden durch die Automatisierung mithilfe der SRE-Tools reduziert. Dies erhöht die Kundenzufriedenheit. Das SRE-Team plant die Reaktion und Auswirkungen auf Ausfälle der Software und kann die Ausfallzeiten besser einschätzen.
 

SRE Aufgaben:

SRE stellt Verfügbarkeit, Zuverlässigkeit, Skalierbarkeit und Performance von IT-Systemen und Anwendungen sicher durch:

  • Entwicklung und Verbesserung automatisierter Prozesse
  • Analyse der Anwendungsdaten zur Identifizierung von Problemen
  • Behebung von Problemen im Code der Business-Applikation
  • Sicherstellung ordnungsgemäßer Implementierung, Tests und Bereitstellung von Anwendungen und Systemen
  • Beobachtung und Überwachung der Zuverlässigkeit der Software
  • Implementierung von Sicherheitslösungen

 

platform engineering.

Platform Engineering ist ein Ansatz zur Bereitstellung wiederverwendbarer Tools und Funktionen. Die Entwicklungsplattform („Internal Developer Platform“) baut die technischen Basisfunktionen mit den zugehörigen Automatismen. Erstreckt sich der Bedarf einer neuen Technologie auf mehr als ein Team, so übernimmt das Platform Engineering den aktuellen Stand und stellt dieses für alle Teams zur Verfügung. Durch die wiederverwendbaren Tools wird die Bereitstellung von Anwendungen sowie die Geschwindigkeit zur Erschaffung des Geschäftswertes beschleunigt. Mit dem Einsatz von Platform Engineering können sich die Entwickler auf die Business-Funktionalität fokussieren, wodurch die Produktivität der Entwickler steigt.

Platform Engineering Aufgaben:

  • Auswahl von Tools und Technologien für Plattformen
  • Erstellung der APIs und Schnittstellen für Entwickler
  • Automatisierung von Bereitstellungsprozessen
  • Überwachung und Optimierung der Leistung
  • Gewährleistung der Sicherheit und Zuverlässigkeit

 

organisationsstrukturen.

DevOps

Bei DevOps ist jedes Team für Entwicklung und Betrieb innerhalb des eigenen Projektes verantwortlich. Wie in Abbildung 2 zu erkennen ist, führt jedes Projektteam die Aufgaben Planung, Entwicklung (Code), Bauen (Build), Testen, Deployen, Monitoring, Betrieb (Operate) und Release für das eigene Projekt aus.

 DevOps Organisationsstruktur grafik
 DevOps Organisationsstruktur grafik
Abbildung 2: DevOps Organisationsstruktur - Projekt A und Projekt B unterscheiden sich nicht in den Aufgaben. Jedes Projekt führt die Aufgaben Plan, Code, Build, Test, Release, Deploy, Monitor und Operate für sich aus.

SRE

Die Organisationsstruktur bei SRE stellt sicher, dass die Anwendungen und Systeme zuverlässig und skalierbar sind. Projektmitglieder entwickeln und testen den Code. Die fertige Entwicklung wird an das SRE-Team weitergegeben, welches die Aufgaben Deployment, Monitoring und Operating verantwortet (Abbildung 3). Für diese Aufgaben werden SRE-Tools eingesetzt.

SRE-Organisationsstruktur grafik
SRE-Organisationsstruktur grafik
Abbildung 3: SRE-Organisationsstruktur – SRE-Organisation übernimmt die Aufgaben Deploy, Monitor und Operate für mehrere Projekte.

Platform Engineering

Platform Engineering stellt den fachlichen Projekten ein übergreifendes Produkt zur Verfügung, welches eine Plattform mit wiederverwendbaren Funktionen („Internal Developer Platform“) anbietet, die die Projektteams nach dem Selbstbedienungsprinzip nutzen können. Das Platform Engineering Team übernimmt die Aufgaben Build, Test, Release, Deploy, Monitor und Operate (Abbildung 4). Somit können sich die einzelnen Projektteams auf die Planung, Entwicklung und Test konzentrieren und müssen keine Builds und Releases durchführen.

Die SRE-Organisation spielt im Kontext des Platform Engineerings eine wichtige Rolle, da sie sicherstellt, dass die Anwendungen auf der Plattform zuverlässig und fehlertolerant sind und die Infrastruktur, auf der die Anwendungen laufen, robust und skalierbar ist. Gemeinsam mit den Entwicklerteams stellt sie sicher, dass die Plattformen kontinuierlich verbessert und aktualisiert werden, um den ändernden Anforderungen gerecht zu werden.  

Platform Engineering Organisationsstruktur grafik
Platform Engineering Organisationsstruktur grafik
Abbildung 4: Platform Engineering Organisationsstruktur - Platform Engineering übernimmt die Aufgaben Build, Test, Release, Deploy, Monitor und Operate.
about the author

Alina Thomas

software engineer