Was der Bauer nicht kennt
Bei einem Kunden hatte ich mal vor Jahren den Web Dispatcher als Reverse Proxy für das SAP Portal eingeführt. Das war so um 2009. Ein Vorteil davon war einfach das die Anwender eine benutzerfreundliche und leicht zu merkende URL bekamen, und automatisch dazu Features wie Lastverteilung, ein SSL Zertifikat oder Wartungsseiten. Da der Einsatz des Web Dispatchers eigentlich nur Vorteile hat wurde beschlossen diesen auch für andere Systeme zu verwenden, z.B. für den Webzugriff auf NetWeaver ABAP. Vom Kunden ging ich dann weg, kam aber Ende 2014 wieder zurück, im Rahmen von Fiori und Mobility Projekten.
Das Unternehmen war MaxAttention Kunde und dabei mehrere Fiori Apps für den produktiven Einsatz freizuschalten. Es war ein Projekt mit signifikanter Leuchtturm-Wirkung: Zugriff aus dem Internet, SAML 2.0, 90.000+ Anwender. Kurz: viele SAPler von Beratung in Support waren auf den Fluren unterwegs. Das Portfolio von SAP AGS wurde aktiv verkauft und vom Kunden genutzt: die Landschaft wurde vom Support überprüft, jede Komponente getestet und abgenommen: Landschaft, Lasttests, etc. Man war an sich gut vorbereitet, nur: es gab Probleme. Genauer gesagt: es ging nicht.
Also, es funktionierte für den rein internen getesteten Zugriff, direkt auf dem FLP. Anmeldung auf dem FLP, Apps aufrufen, nutzen, alles kein Problem. Von Extern hingegen gingen die Apps in die Knie. Das Problem wurde nicht gefunden, trotz wochenlanger intensiver Suche. Alle Komponenten wurden separat getestet, keine wurde als Verursacher identifiziert. Der Go-Live war damit ernsthaft in Gefahr. Da ich den Kunden kannte und vor Jahren das SAP Portal zu einer Erfolgsstory geführt hatte, sollte ich das jetzt auch für die Fiori Apps tun.
Zuerst arbeitete ich mich durch die AGS Dokumente durch (viele!), dann setzte ich mich mit dem Basis Team hin und ging die Landschaft durch. Und schaute dabei auf alle URLs und Komponenten. Der Fehler war dann auch schnell gefunden. Keiner hatte die Web Dispatchers berücksichtigt. Der AGS Test intern für das FLP ging direkt auf den NW ABAP, und nicht über den Web Dispatcher. Über den ging man, wenn man die Fiori Apps von Extern aufrief. Warum? Extern ging der Zugriff noch über das SAP Portal wegen dem SSO. Auch hier hatte man den Web Dispatcher vergessen. Und was war das Problem mit dem Web Dispatcher? Der vor dem SAP Portal war ausreichend dimensioniert. Da war bei Lastspitzen schon mal über 150.000 Benutzer gleichzeitig angemeldet. Der vor dem Backend hingegen war wesentlich weniger Last konzipiert. Und ja, beide waren noch in der Version von 2009 installiert. Waren also auch in den 5 Jahren nicht aktualisiert worden. Man hätte das vielleicht über das SSL Zertifikat herausfinden können, aber das hatte eine Gültigkeit von 10 Jahren.
Wie konnte es sein das der Web Dispatcher vergessen wurde? Eine an sich kritische Komponente? Denn jeglicher Zugriff auf das SAP Portal und von dort auf das Backend ging über einen Web Dispatcher. Der Kollege von dem Basis Team 2009 das bei der Einführung involviert war hatte kurz danach das Unternehmen verlassen und leider im Stress vergessen die Dokumentation aktuell zu halten. Die Kollegen von SAP AGS hatten im Stress des Fiori Projektes nicht daran gedacht auch mal alle URLs zu prüfen, um festzustellen, ob es einen Reverse Proxy gibt. Oder wie einer in der Lagebesprechung sagte: was ist ein Reverse Proxy? Was macht dieser Web Dispatcher? Ist das nicht überflüssig?
Die Lösung des Problems war einfach: Web Dispatcher auf einer Maschine mit genügend Ressourcen laufen lassen und alle Architekturdiagramme aktualisieren auf das er niemals mehr vergessen wird. Danach viel AGS noch ein das der Kunde ja noch mal für alle Tests bezahlen könnte und … naja, manchmal liegt viel Geld auf der Straße rum.
Lektion gelernt: dokumentiert eure Landschaft. Wissen das im Kopf existiert ist weg wenn die Person mit dem Kopf weg ist. Nimmt ausgehändigte Architekturdiagramme nicht für die unantastbare Wahrheit. Geht es auch mal Komponente für Komponente durch, vor allem wenn es einen Fehler gibt den man sich nicht erklären kann. Überprüft die URLs. Im DNS steckt die Wahrheit.
0 Comments