Esegui la migrazione da Oracle WebLogic ad Apache Tomcat (ToMee) su Amazon ECS - Prontuario AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esegui la migrazione da Oracle WebLogic ad Apache Tomcat (ToMee) su Amazon ECS

Creato da Anya Epishcheva () e Harshad Gohil () AWS AWS

Tipo R: Replatform

Fonte: contenitori

Target: Apache Tomcat (ToMee) su Amazon ECS

Creato da: AWS

Ambiente: PoC o pilota

Tecnologie: contenitori e microservizi; migrazione

Carico di lavoro: Oracle

AWSservizi: Amazon ECS

Riepilogo

Questo modello illustra i passaggi per la migrazione di un SPARC sistema Oracle Solaris locale che esegue Oracle WebLogic verso un'installazione basata su container Docker che esegue Apache Tomee (Apache Tomcat con supporto aggiuntivo per container) con Amazon Elastic Container Service (Amazon). ECS

Per informazioni sulla migrazione dei database associati alle applicazioni che stai migrando da Oracle a Tomcat, consulta i modelli di migrazione dei database in questo catalogo. WebLogic  

Best practice

I passaggi per la migrazione delle applicazioni Web Java e Java Enterprise Edition (Java EE) variano a seconda del numero di risorse specifiche del contenitore utilizzate dall'applicazione. Le applicazioni basate su Spring sono in genere più facili da migrare, perché hanno un numero limitato di dipendenze dal contenitore di distribuzione. Al contrario, le applicazioni Java EE che utilizzano Enterprise JavaBeans (EJBs) e risorse container gestite come pool di thread, Java Authentication and Authorization Service (JAAS) e Container-Managed Persistence () richiedono uno sforzo maggiore. CMP 

Le applicazioni sviluppate per Oracle Application Server utilizzano spesso la suite Oracle Identity Management. I clienti che migrano a server applicativi open source spesso scelgono di reimplementare la gestione delle identità e degli accessi utilizzando SAML la federazione basata. Altri utilizzano Oracle HTTP Server Webgate nei casi in cui la migrazione dalla suite Oracle Identity Management non è un'opzione. 

Le applicazioni web Java e Java EE sono ottimi candidati per l'implementazione su AWS servizi basati su Docker, come AWS Fargate e Amazon. ECS I clienti scelgono spesso un'immagine Docker con la versione più recente dell'application server di destinazione (come ToMee) e il Java Development Kit () preinstallato. JDK Installano le loro applicazioni sull'immagine Docker di base, la pubblicano nel registro Amazon Elastic Container Registry (AmazonECR) e la utilizzano per la distribuzione scalabile delle loro applicazioni su AWS Fargate o Amazon. ECS 

Idealmente, la distribuzione delle applicazioni è elastica; vale a dire, il numero di istanze dell'applicazione aumenta o diminuisce, a seconda del traffico o del carico di lavoro. Ciò significa che le istanze delle applicazioni devono essere online o chiuse per adattare la capacità alla domanda. 

Quando sposti un'applicazione Java inAWS, valuta la possibilità di renderla stateless. Questo è un principio architettonico chiave del AWS Well-Architected Framework che consentirà la scalabilità orizzontale utilizzando la containerizzazione. Ad esempio, la maggior parte delle applicazioni Web basate su Java archivia localmente le informazioni sulla sessione utente. Per sopravvivere alla chiusura dell'istanza dell'applicazione dovuta al ridimensionamento automatico in Amazon Elastic Compute Cloud (AmazonEC2) o per altri motivi, le informazioni sulla sessione utente devono essere archiviate a livello globale in modo che gli utenti delle applicazioni Web possano continuare a lavorare senza interruzioni e in modo trasparente senza riconnettersi o riaccedere a un'applicazione Web. Esistono diverse opzioni architettoniche per questo approccio, tra cui Amazon ElastiCache for Redis o l'archiviazione dello stato della sessione in un database globale. I server di applicazioni come TomEE dispongono di plug-in che consentono l'archiviazione e la gestione delle sessioni tramite Redis, database e altri archivi di dati globali.

Utilizza uno strumento di registrazione e debug comune e centralizzato, facilmente integrabile con Amazon e X-Ray. CloudWatch AWS La migrazione offre l'opportunità di migliorare le funzionalità del ciclo di vita delle applicazioni. Ad esempio, potresti voler automatizzare il processo di creazione in modo che le modifiche possano essere apportate facilmente utilizzando una pipeline di integrazione e distribuzione continua (CI/CD). Ciò potrebbe richiedere modifiche all'applicazione in modo che possa essere distribuita senza tempi di inattività. 

Prerequisiti e limitazioni

Prerequisiti

  • Un account attivo AWS 

  • Codice sorgente Java e JDK

  • Applicazione sorgente creata con Oracle WebLogic

  • Soluzione definita per la gestione delle identità e degli accessi (SAMLo Oracle Webgate)

  • Soluzione definita per la gestione delle sessioni delle applicazioni (spostamento like-for-like o con Amazon o creazione dello stato dell'applicazione ElastiCache, se necessario)

  • Capire se il team deve rifattorizzare le librerie specifiche di J2EE per la portabilità su Apache ToMee (vedi Java EE 7 Implementation Status sul sito web di Apache)

  • Immagine ToMee rafforzata in base ai requisiti di sicurezza

  • Immagine del contenitore con destinazione ToMee preinstallata 

  • Correzione dell'applicazione concordata e implementata se necessario (ad esempio, registrazione, debug, build, autenticazione)

Versioni del prodotto

  • Oracle WebLogic OC4J, 9i, 10g 

  • Tomcat 7 (con Java 1.6 o successivo)

Architettura

 Stack tecnologico di origine

  • Applicazione Web creata con Oracle WebLogic

  • Applicazione Web che utilizza Oracle Webgate o SAML l'autenticazione

  • Applicazioni Web connesse a Oracle Database versione 10g e successive

Stack tecnologico Target

Architettura di Target

Cloud AWS architecture diagram showing VPC, application subnets, and shared services integration.

Strumenti

Per funzionare su TomEE, un'applicazione Java deve essere ricostruita in un file.war. In alcuni casi, potrebbero essere necessarie modifiche all'applicazione per far funzionare l'applicazione su TomEE; è necessario verificare che le opzioni di configurazione e le proprietà dell'ambiente necessarie siano definite correttamente.  

Inoltre, le ricerche Java Naming and Directory Interface (JNDI) e gli spazi dei nomi JavaServer Pages (JSP) devono essere definiti correttamente. Prendete in considerazione la possibilità di controllare i nomi dei file utilizzati dall'applicazione per evitare collisioni di denominazione con le librerie T integrate. Ad esempio, persistence.xml è un nome di file utilizzato dal JPA framework Apache Open (fornito in bundle con Open EJB in ToMee) per scopi di configurazione. Il file persistence.xml PUI contiene le dichiarazioni dei bean del framework Spring.  

TomEE versione 7.0.3 e successive (Tomcat 8.5.7 e successive) restituisce una risposta HTTP 400 (richiesta errata) per raw (non codificato) con caratteri speciali. URLs La risposta del server viene visualizzata come una pagina vuota per l'utente finale. Le versioni precedenti di ToMee e Tomcat consentivano l'uso di determinati caratteri speciali non codificati inURLs; tuttavia, è considerato non sicuro, come indicato nel sito Web -2016-6816. CVE Per risolvere il problema di URL codifica, i file URLs passati direttamente al browser JavaScript devono essere codificati con il metodo URIencode () anziché essere utilizzati come stringhe non elaborate.

Dopo aver distribuito il file.war in TomEE, monitora il log di avvio su Linux cat per rilevare eventuali librerie condivise mancanti ed estensioni specifiche di Oracle per aggiungere componenti mancanti dalle librerie Tomcat. 

Procedura generale

  • Configura l'applicazione su TomEE.

  • Identifica e riconfigura i file e le risorse di configurazione specifici del server delle applicazioni dal formato di origine a quello di destinazione.

  • Identifica e riconfigura le risorse. JNDI

  • Adatta lo EJB spazio dei nomi e le ricerche al formato richiesto dal server delle applicazioni di destinazione (se applicabile).

  • Riconfigurate i ruoli di sicurezza e le mappature principali specifici del contenitore dell'JAASapplicazione (se applicabile).

  • Package dell'applicazione e delle librerie condivise in un file.war.

  • Distribuisci il file.war in TomEE utilizzando il contenitore Docker fornito.

  • Monitora il registro di avvio per identificare eventuali estensioni mancanti della libreria condivisa e del descrittore di distribuzione. Se ne vengono trovate, tornate alla prima attività.

  • Testa l'applicazione installata con il RDS database Amazon ripristinato.

  • Avvia l'architettura completa con un sistema di bilanciamento del carico e un ECS cluster Amazon seguendo le istruzioni in Deploy Docker Containers.

  • Aggiorna il punto URLs di bilanciamento del carico.

  • Aggiornare il database di gestione della configurazione (CMDB).

Epiche

AttivitàDescrizioneCompetenze richieste
Esegui l'individuazione delle applicazioni (impronta dello stato attuale e baseline delle prestazioni).BA, responsabile della migrazione
Convalida le versioni e i motori del database di origine e destinazione.DBA
Convalida la progettazione dell'applicazione di origine e di destinazione (gestione dell'identità e della sessione).DBA, Ingegnere addetto alla migrazione, proprietario dell'app
Identifica i requisiti hardware e di storage per l'istanza del server di destinazione.DBA, SysAdmin
Scegli il tipo di istanza corretto in base alla capacità, alle funzionalità di archiviazione e alle funzionalità di rete.DBA, SysAdmin
Identifica i requisiti di sicurezza dell'accesso alla rete per i database di origine e di destinazione.DBA, SysAdmin
Identifica la strategia e gli strumenti per la migrazione delle applicazioni.DBA, Responsabile della migrazione
Completa la progettazione e la guida alla migrazione per l'applicazione.Build Lead, Migration Lead
Completa il runbook sulla migrazione delle applicazioni.Build Lead, Cutover Lead, Testing Lead, Migration Lead
AttivitàDescrizioneCompetenze richieste
Crea un cloud privato virtuale (VPC).SysAdmin
Crea gruppi di sicurezza.SysAdmin
Configura e avvia l'istanza Amazon RDS DB.DBA, SysAdmin
Configura la ECS distribuzione di Amazon.SysAdmin
Package della tua applicazione come immagine Docker.SysAdmin
Invia l'immagine al ECR registro Amazon (o salta questo passaggio e inviala al ECS cluster Amazon).SysAdmin
Configura la definizione delle attività per l'applicazione e le opzioni ECS del servizio Amazon.SysAdmin
Configura il cluster, rivedi le impostazioni di sicurezza e imposta i ruoli AWS Identity and Access Management (IAM).SysAdmin
Avvia la configurazione ed esegui i test in base al runbook di migrazione delle applicazioni.SysAdmin
AttivitàDescrizioneCompetenze richieste
Ottieni l'autorizzazione del tuo team addetto al controllo della sicurezza per trasferire i dati di produzione inAWS.DBA, Ingegnere addetto alla migrazione, proprietario dell'app
Crea e ottieni l'accesso agli endpoint per recuperare i file di backup del database.DBA
Utilizza il motore di database nativo o strumenti di terze parti per migrare oggetti e dati del database.DBA
Esegui i test necessari dal runbook di migrazione delle applicazioni per confermare la corretta migrazione dei dati.DBA, Ingegnere addetto alla migrazione, proprietario dell'app
AttivitàDescrizioneCompetenze richieste
Crea una richiesta di modifica (CR) per la migrazione.Cutover Lead
Ottieni l'approvazione CR per la migrazione.Cutover Lead
Segui la strategia di migrazione delle applicazioni riportata nell'Application Migration Runbook.DBA, Ingegnere addetto alla migrazione, proprietario dell'app
Aggiorna l'applicazione (se necessario).DBA, Ingegnere addetto alla migrazione, proprietario dell'app
Test completi, funzionali, non funzionali, di convalida dei dati e delle prestazioni. SLAResponsabile del test, proprietario dell'app, utenti dell'app
AttivitàDescrizioneCompetenze richieste
Ottenere l'approvazione dall'applicazione o dal titolare dell'attività.Cutover Lead
Esegui un esercizio tematico da tavolo per illustrare tutti i passaggi del cutover runbook.DBA, Ingegnere addetto alla migrazione, proprietario dell'app
Passa i client applicativi alla nuova infrastruttura.DBA, Ingegnere addetto alla migrazione, proprietario dell'app
AttivitàDescrizioneCompetenze richieste
Chiudi le AWS risorse temporanee.DBA, Ingegnere addetto alla migrazione, SysAdmin
Rivedi e convalida i documenti del progetto.Responsabile della migrazione
Raccogli le metriche in tempo utile per la migrazione, la percentuale di utilizzo manuale rispetto agli strumenti, i risparmi sui costi, ecc.Responsabile della migrazione
Chiudi il progetto e fornisci feedback.Responsabile della migrazione, proprietario dell'app

Riferimenti

Tutorial e video