Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Migrieren Sie von Oracle WebLogic zu Apache Tomcat (ToMEE) auf Amazon ECS
Erstellt von Anya Epishcheva () und Harshad Gohil () AWS AWS
R-Typ: Replatform | Quelle: Containers | Ziel: Apache Tomcat (ToMEE) auf Amazon ECS |
Erstellt von: AWS | Umgebung: PoC oder Pilot | Technologien: Container und Mikroservices; Migration |
Arbeitslast: Oracle | AWSdienstleistungen: Amazon ECS |
Übersicht
In diesem Muster werden die Schritte für die Migration eines lokalen Oracle SPARC Solaris-Systems, auf dem Oracle ausgeführt wird, WebLogic zu einer Docker-Container-basierten Installation beschrieben, auf der Apache TomEE (Apache Tomcat
Informationen zur Migration von Datenbanken, die mit den Anwendungen verknüpft sind, die Sie von Oracle zu Tomcat migrieren, finden Sie in den Datenbankmigrationsmustern WebLogic in diesem Katalog.
Bewährte Methoden
Die Schritte für die Migration von Java- und Java Enterprise Edition (Java EE) -Webanwendungen variieren je nach der Anzahl der containerspezifischen Ressourcen, die von der Anwendung verwendet werden. Spring-basierte Anwendungen sind in der Regel einfacher zu migrieren, da sie nur eine geringe Anzahl von Abhängigkeiten vom Bereitstellungscontainer aufweisen. Im Gegensatz dazu erfordern Java EE-Anwendungen, die Enterprise JavaBeans (EJBs) und verwaltete Container-Ressourcen wie Thread-Pools, Java Authentication and Authorization Service (JAAS) und Container-Managed Persistence (CMP) verwenden, mehr Aufwand.
Anwendungen, die für Oracle Application Server entwickelt wurden, verwenden häufig die Oracle Identity Management Suite. Kunden, die auf Open-Source-Anwendungsserver migrieren, entscheiden sich häufig dafür, Identitäts- und Zugriffsmanagement mithilfe eines SAML basierten Verbunds neu zu implementieren. Andere verwenden Oracle HTTP Server Webgate für Fälle, in denen eine Migration von der Oracle Identity Management Suite keine Option ist.
Java- und Java EE-Webanwendungen eignen sich hervorragend für die Bereitstellung auf Docker-basierten AWS Diensten wie AWS Fargate und Amazon. ECS Kunden entscheiden sich häufig für ein Docker-Image, auf dem die neueste Version des Zielanwendungsservers (z. B. TomEE) und das Java Development Kit () vorinstalliert sind. JDK Sie installieren ihre Anwendungen auf dem Basis-Decker-Image, veröffentlichen es in ihrer Amazon Elastic Container Registry (AmazonECR) -Registrierung und verwenden es für die skalierbare Bereitstellung ihrer Anwendungen auf AWS Fargate oder Amazon. ECS
Im Idealfall ist die Anwendungsbereitstellung elastisch, d. h. die Anzahl der Anwendungsinstanzen skaliert je nach Traffic oder Arbeitslast nach oben oder unten. Das bedeutet, dass Anwendungsinstanzen online gehen oder beendet werden müssen, um die Kapazität an den Bedarf anzupassen.
Wenn Sie eine Java-Anwendung zu verschiebenAWS, sollten Sie erwägen, sie zustandslos zu machen. Dies ist ein zentrales Architekturprinzip des AWS Well-Architected Framework, das eine horizontale Skalierung mithilfe von Containerisierung ermöglicht. Beispielsweise speichern die meisten Java-basierten Webanwendungen Benutzersitzungsinformationen lokal. Um die Beendigung der Anwendungsinstanz aufgrund der automatischen Skalierung in Amazon Elastic Compute Cloud (AmazonEC2) oder aus anderen Gründen zu überstehen, sollten Benutzersitzungsinformationen global gespeichert werden, sodass Benutzer von Webanwendungen weiterhin nahtlos und transparent arbeiten können, ohne sich erneut mit einer Webanwendung verbinden oder erneut anmelden zu müssen. Für diesen Ansatz gibt es mehrere Architekturoptionen, darunter Amazon ElastiCache for Redis oder das Speichern des Sitzungsstatus in einer globalen Datenbank. Anwendungsserver wie TomEE verfügen über Plug-ins, die die Speicherung und Verwaltung von Sitzungen über Redis, Datenbanken und andere globale Datenspeicher ermöglichen.
Verwenden Sie ein gemeinsames, zentralisiertes Protokollierungs- und Debugging-Tool, das sich leicht in Amazon CloudWatch und AWS X-Ray integrieren lässt. Die Migration bietet die Möglichkeit, die Funktionen des Anwendungslebenszyklus zu verbessern. Möglicherweise möchten Sie den Erstellungsprozess automatisieren, sodass Änderungen mithilfe einer CI/CD-Pipeline (Continuous Integration and Continuous Delivery) problemlos vorgenommen werden können. Dies kann Änderungen an der Anwendung erfordern, sodass sie ohne Ausfallzeiten bereitgestellt werden kann.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS Konto
Java-Quellcode und JDK
Mit Oracle erstellte Quellanwendung WebLogic
Definierte Lösung für Identitäts- und Zugriffsmanagement (SAMLoder Oracle Webgate)
Definierte Lösung für die Verwaltung von Anwendungssitzungen (Umzug like-for-like oder mit Amazon oder Zustandslosigkeit der Anwendung ElastiCache, falls erforderlich)
Erläuterung, ob das Team J2EE-spezifische Bibliotheken umgestalten muss, um die Portabilität auf Apache ToMEE zu gewährleisten (siehe Status der Implementierung von Java EE 7
auf der Apache-Website) Gehärtetes ToMEE-Image auf der Grundlage Ihrer Sicherheitsanforderungen
Container-Image mit vorinstalliertem Ziel-TomEE
Vereinbarte und bei Bedarf durchgeführte Anwendungskorrektur (z. B. Protokollierung, Debug-Erstellung, Authentifizierung)
Versionen der Produkte
Oracle WebLogic OC4J, 9i, 10g
Tomcat 7 (mit Java 1.6 oder höher)
Architektur
Quelltechnologie-Stack
Mit Oracle erstellte Webanwendung WebLogic
Webanwendung, die Oracle Webgate oder SAML Authentifizierung verwendet
Webanwendungen, die mit Oracle Database Version 10g und höher verbunden sind
Zieltechnologie-Stack
ToMee (Apache Tomcat mit zusätzlicher Container-Unterstützung) läuft auf Amazon ECS (siehe auch Bereitstellen von Java-Webanwendungen und Java-Microservices
auf Amazon) ECS Amazon Relational Database Service (AmazonRDS) für Oracle; Informationen zu den von Amazon RDS unterstützten Oracle-Versionen finden Sie unter Amazon RDS for
Oracle
Zielarchitektur
Tools
Um mit TomEE arbeiten zu können, muss eine Java-Anwendung in eine WAR-Datei neu erstellt werden. In einigen Fällen können Änderungen an der Anwendung erforderlich sein, um die Anwendung auf ToMEE ausführen zu können. Sie sollten überprüfen, ob die erforderlichen Konfigurationsoptionen und Umgebungseigenschaften korrekt definiert sind.
Außerdem sollten die Lookups für Java Naming und Directory Interface (JNDI) und die Namespaces für JavaServer Pages (JSP) korrekt definiert sein. Erwägen Sie, die von der Anwendung verwendeten Dateinamen zu überprüfen, um Namenskonflikte mit integrierten T-Bibliotheken zu vermeiden. Beispielsweise ist persistence.xml ein Dateiname, der vom Apache JPA Open-Framework (das im Lieferumfang von Open EJB in ToMEE enthalten ist) für Konfigurationszwecke verwendet wird. Die Datei persistence.xml in PUI enthält Bean-Deklarationen für das Spring Framework.
ToMee Version 7.0.3 und höher (Tomcat 8.5.7 und höher) gibt eine HTTP 400-Antwort (schlechte Anfrage) für Rohdaten (uncodiert) mit Sonderzeichen zurück. URLs Die Serverantwort wird dem Endbenutzer als leere Seite angezeigt. Frühere Versionen von ToMee und Tomcat erlaubten die Verwendung bestimmter uncodierter Sonderzeichen inURLs; dies gilt jedoch als unsicher, wie auf der Website -2016-6816 angegeben. CVE
Nachdem Sie die .war-Datei in ToMee bereitgestellt haben, überprüfen Sie das Startprotokoll für Linux Cat auf fehlende gemeinsam genutzte Bibliotheken und Oracle-spezifische Erweiterungen, um fehlende Komponenten aus Tomcat-Bibliotheken hinzuzufügen.
Allgemeines Verfahren
Konfigurieren Sie die Anwendung auf TomEE.
Identifizieren und rekonfigurieren Sie anwendungsserverspezifische Konfigurationsdateien und Ressourcen vom Quell- bis zum Zielformat.
Identifizieren und JNDI rekonfigurieren Sie Ressourcen.
Passen Sie den EJB Namespace und die Lookups an das vom Zielanwendungsserver benötigte Format an (falls zutreffend).
Konfigurieren Sie JAAS anwendungscontainerspezifische Sicherheitsrollen und Prinzipalzuordnungen neu (falls zutreffend).
Package Sie die Anwendung und die gemeinsam genutzten Bibliotheken in eine WAR-Datei.
Stellen Sie die .war-Datei in TomEE mithilfe des bereitgestellten Docker-Containers bereit.
Überwachen Sie das Startprotokoll, um alle fehlenden Erweiterungen für gemeinsam genutzte Bibliotheken und Bereitstellungsdeskriptoren zu identifizieren. Wenn welche gefunden wurden, kehren Sie zur ersten Aufgabe zurück.
Testen Sie die installierte Anwendung anhand der wiederhergestellten RDS Amazon-Datenbank.
Starten Sie die komplette Architektur mit einem Load Balancer und einem ECS Amazon-Cluster, indem Sie den Anweisungen unter Deploy Docker
Containers folgen. Aktualisieren Sie dasURLs, um auf den Load Balancer zu verweisen.
Aktualisieren Sie die Datenbank für das Konfigurationsmanagement (CMDB).
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Führen Sie eine Anwendungserkennung durch (aktueller Status und Leistungsbasis). | BA, Leiter der Migration | |
Validieren Sie die Versionen und Engines der Quell- und Zieldatenbank. | DBA | |
Validieren Sie das Design der Quell- und Zielanwendung (Identitäts- und Sitzungsmanagement). | DBA, Migrationsingenieur, App-Besitzer | |
Identifizieren Sie die Hardware- und Speicheranforderungen für die Zielserverinstanz. | DBA, SysAdmin | |
Wählen Sie den richtigen Instanztyp auf der Grundlage von Kapazität, Speicherfunktionen und Netzwerkfunktionen aus. | DBA, SysAdmin | |
Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff für die Quell- und Zieldatenbanken. | DBA, SysAdmin | |
Identifizieren Sie die Strategie und die Tools für die Anwendungsmigration. | DBA, Leiter der Migration | |
Vervollständigen Sie das Migrationsdesign und den Migrationsleitfaden für die Anwendung. | Leitung aufbauen, Leitung Migration | |
Vervollständigen Sie das Runbook zur Anwendungsmigration. | Leiter Aufbau, Leiter der Umstellung, Leiter des Tests, Leiter der Migration |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie eine virtuelle private Cloud (VPC). | SysAdmin | |
Erstellen Sie Sicherheitsgruppen. | SysAdmin | |
Konfigurieren und starten Sie die Amazon RDS DB-Instance. | DBA, SysAdmin | |
Konfigurieren Sie die ECS Amazon-Bereitstellung. | SysAdmin | |
Package Sie Ihre Anwendung als Docker-Image. | SysAdmin | |
Senden Sie das Image in die ECR Amazon-Registrierung (oder überspringen Sie diesen Schritt und übertragen Sie es in den ECS Amazon-Cluster). | SysAdmin | |
Konfigurieren Sie die Aufgabendefinition für die Anwendung und die ECS Amazon-Serviceoptionen. | SysAdmin | |
Konfigurieren Sie Ihren Cluster, überprüfen Sie die Sicherheitseinstellungen und legen Sie AWS Identity and Access Management Zugriffsverwaltungsrollen (IAM) fest. | SysAdmin | |
Starten Sie Ihr Setup und führen Sie die Tests gemäß Ihrem Runbook für die Anwendungsmigration aus. | SysAdmin |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Holen Sie die Erlaubnis Ihres Sicherheitsteams ein, Produktionsdaten nach zu verschiebenAWS. | DBA, Migrationsingenieur, App-Besitzer | |
Erstellen Sie Endpunkte und erhalten Sie Zugriff auf diese, um Datenbank-Backupdateien abzurufen. | DBA | |
Verwenden Sie die native Datenbank-Engine oder Tools von Drittanbietern, um Datenbankobjekte und Daten zu migrieren. | DBA | |
Führen Sie die erforderlichen Tests im Runbook für die Anwendungsmigration aus, um die erfolgreiche Datenmigration zu bestätigen. | DBA, Migrationsingenieur, Besitzer der App |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie einen Änderungsantrag (CR) für die Migration. | Leitung der Umstellung | |
Besorgen Sie sich die CR-Genehmigung für die Migration. | Übernahme (Leitung) | |
Folgen Sie der Strategie zur Anwendungsmigration aus dem Runbook zur Anwendungsmigration. | DBA, Migrationsingenieur, App-Besitzer | |
Aktualisieren Sie die Anwendung (falls erforderlich). | DBA, Migrationsingenieur, Besitzer der App | |
Führen Sie funktionale, nicht funktionale, Datenvalidierungs- SLA und Leistungstests durch. | Testleiter, App-Besitzer, App-Nutzer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Lassen Sie sich vom Antrag oder Geschäftsinhaber unterschreiben. | Übernahme (Leitung) | |
Führen Sie eine Übung mit einem Tabellenthema durch, in der Sie alle Schritte des Cutover-Runbooks durchgehen. | DBA, Migrationsingenieur, Besitzer der App | |
Wechseln Sie zu den Anwendungsclients auf die neue Infrastruktur. | DBA, Migrationsingenieur, App-Besitzer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Temporäre AWS Ressourcen abschalten. | DBA, Migrationsingenieur, SysAdmin | |
Überprüfen und validieren Sie die Projektdokumente. | Leiter der Migration | |
Erfassen Sie Kennzahlen zum Zeitpunkt der Migration, zum prozentualen Anteil manueller Änderungen im Vergleich zu Tools, zu Kosteneinsparungen usw. | Leiter der Migration | |
Schließen Sie das Projekt ab und geben Sie Feedback. | Leiter der Migration, Inhaber der App |
Zugehörige Ressourcen
Referenzen
Tutorials und Videos
Bewährte Methoden für den Betrieb von Oracle-Datenbanken auf Amazon RDS
(Präsentation re:Invent 2018)