Was ist DevOps?
DevOps bezeichnet eine Arbeitsmethode bei der Softwareentwicklungs- sowie Betriebsteams enger zusammenarbeiten. Der Begriff „DevOps“ und die DevOps-Kultur ist eng verwoben mit der agilen Entwicklung. „DevOps“ setzt sich aus „Dev“ (Development, Entwicklung) und „Ops“ (Operations, Betrieb) zusammen und vereint Menschen, Prozesse und Technologien, um Kund:innen kontinuierlich hochwertige (Software)-Produkte zur Verfügung zu stellen.
Für Teams bedeutet DevOps, dass die traditionell getrennte Rollenverteilung von Softwareentwicklung und -betrieb zusammenwächst. Diese sieht vor, dass Entwickler:innen eine Anwendung entwerfen, schreiben und dazu Ressourcen wie Datenbanken oder Server von den Betriebsteams zur Verfügung gestellt bekommen. Betriebsteams betreiben die Anwendung, managen Rollouts auf Test-, Staging und Produktivsystemen und konfigurieren anwendungsspezifische Parameter wie Rechenleistung und Speicherplatz. Zusätzlich unterstützt das Betriebsteam beim Debugging der Anwendung.
Durch die Einführung der DevOps-Kultur können Teams, mit entsprechenden Tools, schneller auf Anforderungen reagieren. Um diesen Wandel zu unterstützen bricht DevOps die Trennung von Infrastruktur, Release-Rollout, Anwendungskonfiguration und Monitoring auf. Essentiell hierfür ist die Einführung neuer Prozesse sowie Tools, um die Teams in der neuen Kultur und dem Erreichen der Erfolgsversprechen von DevOps zu unterstützen.
Vorteile von DevOps
DevOps im Workflow
An erster Stelle steht die Einführung einer DevOps-Kultur in der Organisation und bei den Personen, die an den Prozessen mitwirken. Im besten Fall werden nun die Silos „Dev-Team“ und „Ops-Team“ aufgebrochen und eine enge Zusammenarbeit entsteht. Beide Teams planen ihre Aufgaben gemeinsam und stimmen ihre Ziele und Erfolgskriterien aufeinander ab. Nachdem sich die Teams neu formiert haben, ändern sich auch die Zuständigkeiten und Verantwortlichkeiten der Teams. So sind Entwickler:innen nun auch für Leistung und Stabilität zuständig, während Mitarbeiter:innen des Betriebsteams bereits aktiv in der Planungsphase des Produkts mitwirken. Ein weiterer Effekt einer erfolgreich eingeführten DevOps-Kultur sind kürzere Releasezyklen, welche zu inkrementellen Planungsschritten führen und sich positiv auf die Systemstabilität auswirken.
Im zweiten Schritt werden Tools eingeführt, die die DevOps-Kultur unterstützen. Dies lässt sich in verschiedene Kategorien aufteilen:
- Da meist agil gearbeitet wird, kommen Kanban– sowie Scrum-Methoden und Tools zum Einsatz. Hierbei liegt der Schwerpunkt auf der Verbesserung des Teamworks, sowie der Einarbeitung von Kund:innen- und Benutzer:innenfeedback.
- Zentral ist ebenfalls die Einführung von Continuous Integration und Continuous Delivery (CI/CD). Continuous Integration bezeichnet hier das kontinuierliche, automatisierte Testen von Codeänderungen nach jedem Commit auf die Softwareversionskontrolle (z.B.: Git). Hierdurch wird sichergestellt, dass die Stabilität des Codes zu jedem Zeitpunkt gewährleistet ist. Continuous Delivery bezeichnet die regelmäßige Auslieferung neuer Versionen der Anwendung in kurzen Releasezyklen. Durch die Automatisierung von Bereitstellungsschritten können Teams häufiger und schneller Updates liefern.
- Zusätzlich ändert sich oft die Verwaltung der Infrastruktur und die Konfigurationsverwaltung. Infrastruktur wird auf Infrastructure-as-Code (IaC) umgestellt. Hierbei wird die Infrastruktur durch Frameworks wie Terraform oder AWS CloudFormation beschrieben und Infrastrukturkomponenten wie Rechenkapazität, Zugriff und Datenbanken werden basierend auf dieser Beschreibung erstellt oder verändert. Auch die Konfigurationsverwaltung (Auslegung der Anwendung) wird auf ein deskriptives System umgestellt.
Beide Neuerungen führen dazu, dass Änderungen an Infrastruktur und Konfiguration kontrolliert und nachvollziehbar werden, da Änderungen immer in ein Softwareverwaltungstool eingepflegt sind. Im Fall von Infrastructure-as-Code ergibt sich zusätzlich der Vorteil, dass sich ganze Infrastrukturlandschaften einfach duplizieren lassen und so in unterschiedlichen Rechenzentren und Coudplattformen aufbauen lassen.
Bei PROTOS beraten wir Sie gerne zum Thema Prozessmanagement, unterstützen bei der technologischen Einführung von DevOps und schulen ihre Mitarbeitenden im Umgang mit neuen Tools und Arbeitsweisen.