Mit DevOps auf ein neues Level im E-Commerce Business
In der Vergangenheit ging es in der Regel darum, große Shopsysteme mit teilweise komplexen Ansprüchen zu realisieren. Es wurden zu Projektbeginn viele Anforderungen gestellt und mit großem Aufwand wurden diese Systeme realisiert.
Wenn es Änderungen an dem System gab, so war dies regelmäßig mit einem größeren Aufwand verbunden was Entwicklung, Testing und Livegang angeht.
In den letzten Jahren – u. a. gefördert durch den zunehmend eingesetzten agilen Ansatz – verlangt der Markt aber immer mehr, dass Änderungen mit größerer Geschwindigkeit umgesetzt werden können. Cloud-Anbieter wie Amazon Web Services (AWS), Microsoft Azure oder Google Cloud Platform (GCP) tragen dem mit ihrem Angebot Rechnung. Die Strategie im E-Commerce-Business ist eine Sache, aber das wirkliche Schlachtfeld liegt im Bereich der Software-Bereitstellung und insbesondere im Speed-to-Market bei gleichzeitig steigenden Anforderungen an die Softwarequalität (siehe auch: https://blog.iese.fraunhofer.de/high-quality-short-time-to-market/).
Diese Marktanforderung – schneller zu sein und gleichzeitig die Qualität zu verbessern – ist das Feld, in dem DevOps zum Einsatz kommt und dieses scheinbare Paradoxon dabei auflöst.
Definition DevOps
DevOps ist ein Kunstwort zusammengesetzt aus den Wörtern
„Development“ (Entwicklung)
und
„Operations“ (genauer IT-Operations, also IT-Betrieb).
Die Grundidee dieses Ansatzes wurde ab 2008 von Andrew Clay Shaver und Patrick Debois mit ihrer Teilname an der „Agile 2008 conference“ und einer Serie darauf folgender „DevOpsDays“ etabliert (siehe auch: http://www.jedi.be/presentations/agile-infrastructure-agile-2008.pdf und https://blog.newrelic.com/engineering/devops-name/).
Es geht hierbei um eine Sammlung von Verfahren, die die Software-Entwicklung und den IT-Betrieb kombinieren. DevOps ergänzt sich mit agiler Softwareentwicklung und nutzt dabei auch dessen Methoden.
Vorteile von DevOps
DevOps bringt eine Reihe von Vorteilen mit sich, die es ermöglichen, schneller und besser als der Wettbewerb zu sein:
- innovative Lösungen schneller ausspielen
- Steigerung der Kundenzufriedenheit
- Aufbrechen von Barrieren bzw. Silos zwischen verschiedenen Unternehmensabteilungen
- Etablierung einer Agilitätskultur und damit schnellere Anpassung an sich ständig ändernde Anforderungen
- Erhöhung der Softwarequalität
Aber wie kann dessen Grundidee im Unternehmen umgesetzt werden?
Integration von DevOps im Unternehmen
Viele würden als erstes nach den passenden Tools suchen. Aber leider Bedarf es deutlich mehr, als Softwaretools zu kaufen. Entwicklungsabteilung und Systemadministration zu sagen, sie sollen zukünftig enger zusammenarbeiten, hilft ebenso wenig, wie eine DevOps-Abteilung zu gründen und auf Ergebnisse zu warten.
DevOps ist kein Verfahren oder Workflow, sondern eine Kultur, die es zu etablieren gilt!
Ein möglicher Ansatz zur Umsetzung bietet das CALMS-Modell (Abkürzung für Culture, Automation, Lean, Measurement und Sharing). Das Modell wurde von den Autoren des Podcasts „DevOps Cafe“ Damon Edwards und John Willis unter dem Namen CAMS geprägt (siehe auch: https://devopscafe.libsyn.com/webpage/category/podcasts) und später von Jez Humble um das L ergänzt.
Die Stärke dieses Modells liegen darin, dass es zeigt, worum es bei DevOps geht: Menschen, Prozesse, Tools und zwar genau in dieser Reihenfolge und mit der größten Gewichtung beim Menschen (Damon Edwards: „people over processes over tools“).
C - CULTURE
Dies ist der Eckpfeiler von DevOps. Hier geht es um das Verhalten der Menschen und Gruppen untereinander. In der Vergangenheit gab es eine Aufteilung in Development und Operations, die auf Ihre eigenen unterschiedlichen Ziele hingearbeitet haben.
Dieses Silodenken muss aufgebrochen werden, alle Abteilungen müssen als Einheit zum gemeinsamen Ziel hinarbeiten, sicher und zuverlässig Code schnell zu deployen.
A - AUTOMATION
Ziel ist die Automatisierung (und damit die Wiederholbarkeit) von Routineaufgaben (z. B. Testautomatisierung, Ausführung von Deployments oder auch Codekompilierung). Sie ist der Ausgangspunkt für Problemlösungen und hilft dabei, alle anderen Vorteile von DevOps zu gewinnen. Sie ermöglicht, dass sich Entwicklungsteams auf Nicht-Routineaufgaben mit hoher Variabilität konzentrieren können.
Automatisierung verbessert spürbar Workflow und Produktivität einer Organisation.
Zur Umsetzung gilt es, eine „Toolchain“ (z. B. Ansible, Git, Jenkins) zu etablieren, die einen dabei unterstützt, die folgenden Schlüsselkonzepte umzusetzen:
- Infrastructure as Code
- Continuous Integration
- Continuous Delivery
L - LEAN
Lean ist der agile Aspekt in DevOps. Es geht darum, die Arbeit in kleine, überschaubare Pakete aufzuteilen (Code Deployments auf Live-Systeme sollen klein und häufig sein) und so schrittweise Verbesserungen zu erreichen.
Bei der Automatisierung soll u. a. darauf fokussiert werden , dass möglichst viel minimal gehalten wird und so die Infrastruktur nicht unnötig verkompliziert wird.
Das Prinzip lässt sich auch auf Teamgrößen beziehen, da größere Teams sich schwieriger auf etwas einigen können.
Beispiele für die Umsetzung:
- Minimierung von „Work in Progress“ (WIP)
- Reduzierung der Wartezeiten und Komplexität
- Arbeit sichtbar machen
M - MEASUREMENT
Es ist notwendig Metriken und KPIs (Key Performance Indicators) festzulegen, um prüfen zu können, ob Änderungen zu einer Verbesserung geführt haben. Es geht also um die Überwachung und Nachverfolgung des Fortschritts verschiedener Aspekte der DevOps-Umgebung.
Hierbei ist zum Einen zu beachten, dass die Messungen über die ganze Organisation hinweg durchgeführt werden und zum Anderen sollten die Metriken so festgelegt werden, dass teamübergreifende Ziele definiert werden, dessen Erfüllung dann gemessen werden kann. Außerdem sollten diese Metriken offen und transparent für alle in der Organisation sein.
Beispiele:
- MTTR (mean time to recovery)
- Cycle Time
- Lead Time
- Kosten
- Erlöse
- Mitarbeiterzufriedenheit
S - SHARING
Das Teilen von Ideen und Problemen ist das Herz der Zusammenarbeit und insbesondere auch das Herz von DevOps. Teilen ist der Grund, warum im DevOps ein so großer Fokus auf Offenheit und Transparenz gelegt wird und ist außerdem die Feedback-Schleife, die eine andauernde Verbesserung ermöglicht.
Menschen machen Fehler und es ist wichtig, eine Kultur zu etablieren, in der diese Fehler offen geteilt werden können, ohne Nachteile zu befürchten. Nur so kann eine Verbesserung erreicht werden.
Aspekte sind hier:
- Transparenz
- Sichtbarkeit
- Wissenstransfer
Diese 5 Bestandteile des Modells sind die Kernwerte, um DevOps umzusetzen. Sie sind das „Warum“ hinter den Technologien zum Umsetzen von DevOps und liefern eine Blaupause, wie die DevOps Idee in einer Organisation realisiert werden kann.
Du brauchst dabei Unterstützung?
Wir erleichtern für unsere Kunden mit Strategie-Workshops und Marktanalysen den Einstieg in ihre digitale Transformationen und entwickeln für sie erfolgreiche, skalierbare und zukunftsorientierte digitale Lösungen und Individualentwicklungen.