Am 09.08.2016 um exakt 17:17 Uhr war es endlich soweit: Die Funktionalitäten rund um die neue Rezeptplattform für ein Multifunktions-Küchengerät erblickten das Licht der Welt. Ich möchte euch an dieser Stelle – stellvertretend für das gesamte Team – einen kurzen Einblick in unsere Erlebnisse aus den letzten Wochen und Monaten geben und die Gründe für den – aus Entwicklersicht – nahezu reibungslosen Ablauf etwas genauer betrachten.
Die Arbeiten an dem Projekt begannen für uns bereits vor über einem Jahr unter dem Stichwort „Cloud“. Damals hatten sicherlich nur wenige von uns eine ungefähre Vorstellung von dem, was uns in den nächsten Monaten erwarten würde. Doch die beiden wichtigsten Personen und Ansprechpartner für uns seitens des Kunden führten uns mit der Zeit immer näher an ihre Vision des digitalen Kochens heran. Eine Besonderheit dieses Projektes ist selbstverständlich die große Anzahl an Dienstleistern, die für die unterschiedlichsten Themengebiete interdisziplinär zuständig sind.
Hier eine kurze Auflistung:
- Entwicklung
- Testing
- Operations
- ERP
- Hosting
- Consulting
- Content
- Service-Management
- Support
- Projektmanagement
- Qualitätsmanagement
Bei der Umsetzung des Rezept-Portals kümmern wir von communicode uns um die Bereiche Softwareentwicklung, Projektmanagement, Content, Support und Service-Management. An der Anzahl dieser Bereiche erkennt man, wie zentral unsere Rolle im Ökosystem des Programms des Kunden ist.
Die Zusammenarbeit mit den weiteren Dienstleistern klappt ziemlich gut. Nach einer so langen gemeinsamen Zeit hat man sich schließlich ausreichend kennengelernt und auf einander abgestimmt. Mittlerweile hat der Kunde zudem auch Slack als zentralen Instant Messenger eingeführt, wodurch themenbezogene Kommunikation ohne den üblichen organisatorischen Overhead effizient geführt werden kann. In den verschiedensten Channels tauschen sich hier die Experten zu aufkommenden Fragestellungen und Problemen aus.
Die Zusammenarbeit erfolgt in einem agilen Entwicklungsprozess. Unsere Iterationen verlaufen im Rhythmus von zwei Wochen Sprints, in denen wir die geplanten Features implementieren und auf den Zielsystemen bereitstellen. Für Plannings, Reviews und allgemeine Meetings treffen wir uns regelmäßig vor Ort beim Kunden.
Das soll es zum Rahmenprogramm vorerst gewesen sein, nun einige Informationen zur Software, die wir für unseren Kunden herstellen. Im Wesentlichen liefern wir folgende zwei Komponenten aus:
- E-Commerce Suite
- Microservices für user generated Content
Bei der E-commerce Suite handelt es sich um das eigentliche hybris-Projekt, welches bereits seit 2013 produktiv ist. Hinter Microservices für user generated Content verbergen sich eine Vielzahl an Funktionen, die wir für das Rezepte-Portal bereitstellen, beispielsweise „Custom Lists“, „Notes“ oder „Favorites“. Hierbei kommen verschiedenste interessante Technologien wie z.B. Spring Boot, RabbitMQ, AWS DynamoDB und auch der ELK-Stack zum Einsatz.
Der Launch stellte einige besondere Anforderungen an alle Beteiligten. Da es sich bei dem aktuellen Produktivsystem um ein komplett neu aufgesetztes System handelt, war es zwingend notwendig eine Migration der bestehenden Daten durchzuführen. Gemeinsam mit den Solution Architects und beteiligten Dienstleistern haben wir diese Migration sowohl konzipiert, implementiert als auch überwacht. Auch hier konnten wir durch zwei Generalproben einige Probleme im Voraus erkennen und beheben. Neben einer ausgereiften Migrationsstrategie hatte sich der Kunde zudem eine umfassende Launch-Begleitung aller beteiligten Experten gewünscht (Hypercare). In der ersten Woche nach dem Launch sollte der Zeitraum von 8:00-22:00 Uhr in einer dauerhaften Co-Location abgedeckt sein. Um die Hypercare stemmen zu können, haben wir bei uns im DEV-Team kurzfristig einen Dienstplan von zwei Schichten organisiert. So konnten wir dem Wunsch des Kunden nach dauerhafter Vor-Ort Betreuung am besten nachkommen. Begleitet wurde die Hypercare von dauerhaft ca. 20 Personen, die sich ausschließlich um die Systeme und deren Zustand gekümmert haben.
Nach insgesamt zwei Feldtests, unzähligen Test-Deployments, 38 Microservice-Releases, 100+ E-Commerce-Suite-Releases, sowie einem ganzen Regenbogen an Systemen startete also die Hypercare am Montag, dem 08.08.2016 mit der Migration der bestehenden Daten auf das neue Produktivsystem. Das Zeitfenster für die notwendige Maintenance (die Liveseite informiert mit einem Wartungsfenster, über die momentane Nicht-Erreichbarkeit) wurde durch die Testmigrationen auf 1 PT eingeschätzt. Wie ein Uhrwerk wurden die unzähligen Schritte des Migrationsplans unter unserer Aufsicht abgearbeitet. Sogar früher als erwartet konnten wir den letzten Schritt im Migrationsplan abschließen, dem Launch stand also nichts mehr im Wege. Das große Ziel war erreicht!
Entgegen der allgemeinen Erwartung des Kunden blieben die ersten Tage jedoch sehr ruhig. Die bereits ausgelieferten Rezept-Sticks benötigten noch etwas Zeit, um bei ihrem Empfänger anzukommen. Erst langsam stieg die Anzahl an Aktivierungen und wir verzeichneten eine wahrnehmbare Last auf den Systemen.
Schlüsselfaktoren für den erfolgreichen Launch:
- Ausreichend Zeit durch Verzögerung
- Gute Organisation und Kommunikation
- Mehrstufige Testphasen inkl. Last- und Stresstests
- Komplexe Test-Suite (Code-Coverage > 80%)
- Ein funktionierendes Release-Management
- Umfangreiches Monitoring, Logging und Profiling
- Insgesamt der Launch nach IOS-App und Web-App
Nachdem nun also der Launch erfolgreich abgeschlossen ist, beschäftigen wir uns aktuell bereits mit den kommenden Anforderungen an unser Team. Dazu gehört beispielsweise auch der Aufbau einer Knowledge-Base für den 2nd Level Support.