Um technische Rückstände zu vermeiden, ist in regelmäßigen Abständen ein größeres WSO2-Versionsupgrade erforderlich. Doch viele Unternehmen schieben ein Upgrade vor sich her, so dass die zu überbrückende Lücke immer größer wird.
Dieser Blog entstand anlässlich eines kürzlich durchgeführten Upgradeprojekts für einen Yenlo Connext-Kunden. Weitere Informationen zu Yenlo Connext, unserer rund um die Uhr gehosteten und verwalteten WSO2-Cloudlösung, finden Sie unter Lösungen.
Warum überhaupt upgraden?
Mit einem Upgrade bleibt Ihre WSO2 integration in Schuss. Allerdings sollten Sie beachten, dass dringende (Sicherheits-)Patches unmittelbar nach ihrer Veröffentlichung durchgeführt werden müssen. Je länger Ihr letztes großes Upgrade zurückliegt, desto mehr Probleme wird Ihnen ein dringender Patch bereiten. Unter Umständen bleiben Ihnen dann nur noch schlechte Lösungen. Selbst wenn Sie es schaffen würden, diesen Patch isoliert und vielleicht mit einigen Anpassungen zu installieren, wird Ihre Produktkonfiguration nicht mehr offiziell unterstützt.
Erinnern Sie sich an das log4j-Problem von Ende 2021? Es hat Unternehmen, die bei der Softwarekonfiguration hinterherhinkten, eine Menge Ärger bereitet. Man sollte einfach nicht in kürzester Zeit und unter großem Stress ein Upgrade durchführen, während die Sicherheit auf dem Spiel steht.
Die eigentliche Version der Yenlo Connext-Plattform war bereits gegen die log4j-Schwachstelle geschützt. Nichtsdestotrotz hat Yenlo als vorübergehende Vorsichtsmaßnahme eine Zwischenversion mit zusätzlichen Sicherheitseinstellungen herausgegeben. Log4j hat weltweit für Aufsehen gesorgt, weil man nicht wusste, was als Nächstes passieren würde. Jedenfalls war jeder Connext-Kunde, der die neueste und beste Plattformversion verwendete, bereits abgesichert.
Unsere Botschaft: Vermeiden Sie eine veraltete Konfiguration!
Upgrade-Konzept
Bei Yenlo wollen wir die Integrationsplattform von den darauf laufenden Artefakten trennen. Dadurch wird das Upgrade und Kopieren/Wiederherstellen einer Umgebung so viel einfacher. Eine geeignete automatisierte Bereitstellungspipeline dient der schnellen und konsistenten Neubereitstellung von Plattformversionen und Artefakten. Außerdem möchten wir Stateful-Transaktionsdaten separat speichern. Dementsprechend wurde Yenlo Connext realisiert.
Im vorliegenden Projekt wurde das Upgrade nach Kundenplanung umgesetzt. Zunächst wurde eine neue und temporäre Upgrade-Umgebung bereitgestellt, die einem In-Place-Upgrade vorzuziehen war, um die laufende Entwicklungsarbeit nicht zu beeinträchtigen.
Anschließend wurden die Artefakte bereitgestellt und es wurden (Regressions-)Tests durchgeführt. In Vorbereitung auf die PROD-Einführung wurde ein Runbook erstellt und befolgt.
Schritte
Genauer gesagt umfasste das Upgrade die folgenden Schritte.
- Bereitstellung einer separaten Upgrade-Umgebung. Für Yenlo Connext ist dieser Schritt einfach, da die automatisierte Plattform-Pipeline von Connext verwendet wird, wodurch manuelle Eingriffe vermieden werden.
- Viele Kunden stellen benutzerdefinierte Komponenten in einer Umgebung bereit, wenn dies für bestimmte Integrationen erforderlich ist. Zum Beispiel eine bestimmte Bibliothek für Verschlüsselung, Hashing usw. Daher sollte unbedingt dokumentiert werden, welche benutzerdefinierten Komponenten gelten. Die Pipeline der Yenlo Connext-Plattform kann so angepasst werden, dass sie solche benutzerdefinierten Komponenten enthält, damit die Umgebungen konsistent bleiben (TEST, UAT, PROD) – und manuelle Eingriffe vermieden werden.
- Als Nächstes muss die Konnektivität mit den jeweiligen Endpunkten hergestellt werden. Konnektivität gibt es oft in verschiedenen Formen, z. B. als öffentlichen Internetzugang, als privaten Netzzugang (über VPN) oder als IP-Whitelisting. Auch hier ist eine ordnungsgemäße Dokumentation wichtig, um ein Reverse Engineering während des Upgrade-Projekts zu vermeiden.
- Zertifikate müssen auch berücksichtigt werden. Sie können für verschiedene Zwecke verwendet werden, z. B. zur Authentifizierung von Anrufern und zum Response Signing. Behalten Sie auch hier den Überblick durch eine ordnungsgemäße Dokumentation. Wenn Sie die ordnungsgemäße Funktionsfähigkeit der Zertifikate in der Upgrade-Umgebung überprüfen wollen, macht es durchaus Sinn, die entsprechenden Zertifikate anzufordern und zu installieren. In der Praxis ist das oft ein zeitaufwändiger Prozess auf dem kritischen Pfad der Planung.
- Danach können die Dienste im EI der Upgrade-Umgebung bereitgestellt werden. Das geschieht oft lange nachdem die ursprünglichen Entwickler zu anderen Projekten oder Unternehmen übergelaufen sind. Deshalb benötigen Sie dokumentierte Bereitstellungsrichtlinien für Ihr Support-Team, damit es mit minimalem Wissen und Aufwand arbeiten kann.
- Außerdem müssen die APIs in der Upgrade-Umgebung bereitgestellt werden. Geben Sie bei Bedarf Client-ID und Geheimnis an, damit API-Anrufer Zugangstokens generieren können. Für Yenlo Connext ist dies eine der Standardmaßnahmen des Support-Teams von Yenlo.
- Im vorliegenden Projekt wurde der WSO2 Identity Server nicht verwendet. Wenn das auf Ihren Fall zutrifft, ermitteln Sie die vorbereitenden Maßnahmen, um den IS in Verbindung mit dem Plattform-Upgrade zu testen.
- Jetzt ist Ihre Upgrade-Umgebung testbereit. Standard-Regressionstests (Happy Flows und Grenzfälle) in Verbindung mit Postman-Sanity-Checks sind dabei hilfreich. Das durchschnittlich große Upgrade hat nur geringe Auswirkungen auf Nichtfunktionale. In der Praxis sind die Empfangssysteme meist der begrenzende Faktor, wenn es um große Datenmengen geht. Dies wird sich durch ein Plattform-Upgrade voraussichtlich nicht ändern. Im vorliegenden Projekt ergaben die Tests keine Probleme, was uns für die PROD-Einführung zuversichtlich stimmt.
- Vor der Inbetriebnahme stellt sich noch die Frage, ob ein Inplace-Upgrade durchgeführt oder PROD komplett ersetzt werden soll. Jede Entscheidung hat ihre Vor- und Nachteile. Für Yenlo Connext haben wir uns für das In-Place-Upgrade entschieden, weil es durch die verfügbaren automatisierten Pipelines erleichtert wird.
- Als letzter vorbereitender Schritt muss ein Runbook für die UAT- und PROD-Bereitstellung erstellt werden. Auch wenn Sie sicher sind, dass das geplante Upgrade unter Kontrolle ist, müssen Sie dennoch über konkrete Dinge nachdenken, wie zum Beispiel:
- Den Input für die Integrationsplattform blockieren und auf den Abschluss laufender Vorgänge warten (z. B. darauf achten, dass die Warteschlangen leer werden), so dass keine unvollendeten Arbeiten zurückbleiben;
- Upstream- und Downstream-Anwendungsmanager über Ausfallzeiten informieren;
- Bereitschaft der Spezialisten beim Neustart organisieren;
- Überprüfung der ordnungsgemäßen Verarbeitung der ersten Datensätze nach dem Neustart und
- auf ein Rollback-Szenario achten.
Das war’s! Diese Schritte sollten Ihnen den Weg weisen. Im vorliegenden Projekt verlief das Upgrade reibungslos.
Fazit
Wenn Sie Ihre WSO2– oder Yenlo Connext-Umgebung aktualisieren, werden Sie von der bisherigen Wartungsdisziplin profitieren:
- zustandslose Umgebungen
- eine automatisierte Bereitstellungspipeline für die Plattform, die die laufende Aktualisierung der Konfiguration und ihre Synchronisierung zwischen verschiedenen Umgebungen erleichtert
- eine automatisierte Bereitstellungspipeline für Artefakte, die die (erneute) Bereitstellung von Artefakten nach Bedarf erleichtert
- Dokumentation für Artefakte, benutzerdefinierte Komponenten, Konnektivität, Zertifikate, Bereitstellungsrichtlinien, Sequenzdiagramme und mehr
- Regressionstest-Sets
- eingebaute Sanity-Checks (z. B. Postman), sinnvolle Protokollierung, Überwachung und Dashboards
Wenn Sie von diesem Pfad abweichen, steigen die Kosten für Ihren Upgrade-Aufwand und verzögern ihn erheblich. Außerdem steigen auch die Risiken zum Zeitpunkt eines größeren Versionsupgrades.
Yenlo Connext stellt die erforderlichen Werkzeuge wie beschrieben zur Verfügung. Zusammen mit dem Yenlo Way of Working werden Sie bei einem großen Versionsupgrade ans Ziel geführt. Außerdem kann Yenlo mit reichlich Fachwissen unterstützen. Dadurch können Sie regelmäßiger upgraden und empfinden es nicht als große Hürde. So lassen sich die Probleme einer aufgeschobenen Wartung vermeiden.