Wo ist das Backup?
Es ist immer eine gute Idee ein Backup zu haben. Ein Backup das funktioniert ist noch besser. Wenn man beides hat, dann ist auch ein etwas größeres Update an einem SAP-System relativ stressfrei machbar. Nicht vergessen sollte man aber auch die Verfügbarkeit eines Backups.
Ein ehemaliger Kunde war in der Cloud. Also, zumindest nahm er das an, denn ein eigenes Rechenzentrum hatte man nicht mehr. Anfragen, Probleme, Projekte, etc. wurde über Tickets gelöst. Server dynamisch bereitgestellt. Okay, es gab eine Mindestvorlaufzeit von Monaten und man musste durchaus etwas Papier ausfüllen, Meetings überstehen aber nach ein paar Monaten stand dann ein Server bereit. Vieles war dafür fest vorgegeben – serviceorientiert und Standardisiert – kurz: buchbare Dienste aus dem Portfolio wie Benutzer anlegen, Service Packs installieren, Server bereitstellen, Transporte durchführen, etc gab es. Ich durfte damals als Architekt für SAP EHS arbeiten und es kam die Zeit, wo für ein Update für Environmental Compliance 3.0 anstand. Das erste seit Einführung von EC vor mehreren Jahren (finde den Fehler).
EHS war eine Lösung auf Basis NetWeaver Java, inkl. viel Web Dynpro Java. Damit stand neben dem EHS Update auch eines für die NWDI an. Das erste seit der Einführung von NWDI vor vielen, vielen Jahren (finde den Fehler 2.0). Wer NWDI nicht mehr kennt: diese war für die Web Dynpro Java Entwicklung vorgesehen. Da außer EC keine weiteren Projekte WDJ mehr verwendeten war die Nutzung eigentlich nur noch auf EC beschränkt. Nicht vergessen: bei der Einführung hatte man sich etwas ausgetobt und etliche eigene WDJ Apps entwickelt. Build und Deploy in DEV erfolgte aus NWDS heraus, nicht über die NWDI. Der Partner hatte das damals unter Zeitdruck nicht hinbekommen und die Partner vom Rechenzentrum – pardon, Cloud Provider – hatte diese Aufgabe nicht übernommen, da der Kunde ja hier was bei einem andere Partner eingekauft hatte. Man würde nur im Rahmen des Vertrags unterstützen was Teil der Übernahme war. An sich war der Nutzen der NWDI auf das Auflösen der Java Abhängigkeiten beschränkt. Also: NWDS für die eigenen WDJ Entwicklung, WD Abhängigkeiten über NWDI, Code checkin in NWDI, build und deploy über NWDS. Der aktuelle Stand des Source Codes war in der NWDI.
Natürlich waren Updates von SAP Software ein buchbarer Service. Somit wurde der Dienst Update in Anspruch genommen. Schritt 1 war: Backup erstellen. Danach startete der Dienstleister das Update über das Wochenende und gab die Systeme auch wieder wie versprochen nach Tests wieder frei. Nun ja, EC wurde am Montag wieder freigegeben. NWDI nicht. Auch nicht am Dienstag. Auf Nachfrage hieß es das der Update Service durchaus mehrere Tage in Anspruch nehmen darf. Freitags war die NWDI immer noch nicht verfügbar, und ja: das blockierte die Entwicklung. Es wurde genauer nachgefragt. Das Problem war: das Update der NWDI hing gefühlt an Schritt 0. Alles was der Cloud Provider Mitarbeiter versuchte, um das Update doch noch zum nächsten Schritt zu bewegen, scheiterte. Nach dem Hinweis das man ja SAP Kunde sei und doch ein Ticket aufmachen könnte, alleine da ja schon das Update seit mehreren Tagen die Entwicklung blockierte, wurde ein Ticket aufgemacht. Nach etwas Informationsaustausch schaute sich ein SAP Support Mitarbeiter das Ganze an und gemeinsam mit dem Service Provider wurde das Problem gelöst. Die NWDI war aktualisiert.
Die Entwickler konnten wieder entwickeln. Nur: da fehlte was. Die vom NWDI bereitgestellten Sourcen enthielten nicht so ganz den letzten Stand. Das, was bereitgestellt wurde, war Jahre alt. Da dämmerte mir was wohl passiert war. Und was das Update verhindert hatte. Die WDJ Entwickler hatten die NWDI nie wirklich verwendet. Der Source Code war eingecheckt, aber von der NWDI nie kompiliert und deployed worden. Somit waren die Entwicklungen der letzten Jahre in einem Zwischenstatus abgelegt. Damit es reibungslos klappt, hätten die Entwickler die Sourcen nicht nur einchecken müssen, sondern auch die einzelnen DC/SC bauen. Das ist, als würde man Code in git nur in der staging area haben, aber nie committen. Als jetzt das Update ausgeführt wurde, hat die NWDI dies blockiert mit dem Hinweis das hier noch Code in der Warteschlange wäre den man doch bitte erst bauen sollte. Dieser Hinweis wurde leider ignoriert. Und damit wurde der ganze Code der letzten Jahre beim Update gelöscht.
Das waren jetzt natürlich mehrere Fehlerketten, die hier kumuliert sind. Entwickler haben die Infrastruktur nicht wie empfohlen verwendet. SAP Support hatte eine Lösung angeboten die darin bestand den Code zu löschen. Der Support Mitarbeiter hatte nichts verstanden was genau passiert und dankend die SAP Lösung angenommen. So weit, so gut. Fehler passieren und bis auf Zeit hatte man nichts verloren. Nur: bis man festgestellt hatte was passiert war und dem Zeitpunkt, an dem das Backup gestartet war, waren einige Tage vergangen. Das Standardbackup hatte eine Vorhaltzeit von 2 Wochen. Und ja: da war man schon lange drüber. Das Gute: wir hatten die erweiterte Option gebucht, damit war es 3 Wochen verfügbar. Das Schlechte: die 21 Tage waren auch schon vorbei (Hallo SAP Support Ping Pong). Die Achterbahn der Gefühle startete aber erst so richtig als wir rausfanden das die Backups aber nicht direkt nach Ablauf der Fristen gelöscht werden. Der Cloud Provider kannte halt seine Kundschaft. Es gab meistens noch ein paar Tage extra. Wir waren nur 3 Tage drüber. Als wir alle im Meeting Raum waren, es war wie im Endspiel: erst liegt man in der 90. Minuten hinten. Dann kommt die Nachricht das es das Backup ja noch gäben könnte. Elfmeter! Die Stimmung hellt auf, man schaut gespannt darauf wie im Backup Manager nachgeschaut wird. Der Ordner mit der Kundennummer geöffnet wird und … der Ball segelt 20 Meter über das Tor. Kein Backup mehr vorhanden.
Was dann folgte war: die Entwickler schauten in ihrem NWDS nach (lokaler Cache) und spielten dann manuell allen Code wieder ein. Und nein, das klappte nicht zu 100%. Es gab Schwund. Zum Glück aber weder viel noch war etwas kritisches weg. Aber: es wurde viel gelernt. Die Entwickler waren danach darauf bedacht die NWDI richtig zu verwenden. Und bei Backups: die Vorhaltezeit wurde danach genau beachtet. Wenn ein Update nicht bis zu einem Tag X durch ist, dann halt zurück auf Los. Immer noch besser als Daten zu verlieren. Ein Backup lohnt sich halt auch nur dann, wenn es vorhanden ist. Ein gelöschtes Backup ist nutzlos.
0 Comments