Esegui la migrazione da IBM WebSphere Application Server ad Apache Tomcat su Amazon EC2 con Auto Scaling - 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 IBM WebSphere Application Server ad Apache Tomcat su Amazon EC2 con Auto Scaling

Creato da Kevin Yung () e Afroz Khan () AWS AWS

Tipo R: Replatform

Fonte: Applicazioni

Target: Apache Tomcat su un'EC2istanza Amazon con Auto Scaling abilitato

Creato da: AWS

Ambiente: PoC o pilota

Tecnologie: app Web e mobili; migrazione

Carico di lavoro: open source; IBM

AWSservizi: Amazon EC2

Riepilogo

Questo modello fornisce indicazioni per la migrazione di un'applicazione Java da IBM WebSphere Application Server ad Apache Tomcat su un'EC2istanza Amazon Elastic Compute Cloud (Amazon) con Amazon Auto EC2 Scaling abilitato. 

Utilizzando questo modello, puoi ottenere:

  • Una riduzione dei costi IBM di licenza

  • Elevata disponibilità grazie all'implementazione Multi-AZ

  • Resilienza delle applicazioni migliorata con Amazon EC2 Auto Scaling

Prerequisiti e limitazioni

Prerequisiti

  • Applicazioni Java (versione 7). x o 8. x) dovrebbe essere sviluppato in LAMP pile.

  • Lo stato di destinazione è ospitare applicazioni Java su host Linux. Questo modello è stato implementato con successo in un ambiente Red Hat Enterprise Linux (RHEL) 7. Altre distribuzioni Linux possono seguire questo schema, ma è necessario fare riferimento alla configurazione della distribuzione Apache Tomcat.

  • È necessario comprendere le dipendenze dell'applicazione Java.

  • È necessario avere accesso al codice sorgente dell'applicazione Java per apportare modifiche.

Limitazioni e modifiche alla ripiattaforma

  • È necessario conoscere i componenti di enterprise archive (EAR) e verificare che tutte le librerie siano incluse nei file dei componenti Web. WAR È necessario configurare il WARplug-in Apache Maven e produrre artefatti di file. WAR

  • Quando si utilizza Apache Tomcat 8, esiste un conflitto noto tra servlet-api.jar e i file jar incorporati nel pacchetto dell'applicazione. Per risolvere questo problema, eliminate servlet-api.jar dal pacchetto dell'applicazione.

  • È necessario configurare WEB - INF /resources che si trova nel classpath della configurazione di Apache Tomcat. Per impostazione predefinita, le JAR librerie non vengono caricate nella directory. In alternativa, puoi distribuire tutte le risorse in src/main/resources.

  • Verifica la presenza di eventuali root contestuali codificate all'interno dell'applicazione Java e aggiorna la nuova radice di contesto di Apache Tomcat.

  • Per impostare le opzioni JVM di runtime, è possibile creare il file di configurazione setenv.sh nella cartella bin di Apache Tomcat; ad esempio, _, _, ecc. JAVA OPTS JAVA HOME  

  • L'autenticazione è configurata a livello di contenitore ed è configurata come realm nelle configurazioni di Apache Tomcat. L'autenticazione viene stabilita per uno dei tre ambiti seguenti: 

    • JDBCDatabase Realm cerca gli utenti in un database relazionale a cui accede il driver. JDBC

    • DataSource Database Realm cerca gli utenti in un database a cui si accede da. JNDI

    • JNDIDirectory Realm cerca gli utenti nella directory Lightweight Directory Access Protocol (LDAP) a cui accede il JNDI provider. Le ricerche richiedono: 

      • LDAPdettagli di connessione: base di ricerca utente, filtro di ricerca, base di ruoli, filtro di ruolo 

      • La chiave JNDI Directory Realm: connetteLDAP, autentica gli utenti e recupera tutti i gruppi di cui un utente è membro

  • Autorizzazione: nel caso di un contenitore con un'autorizzazione basata sui ruoli che verifica i vincoli di autorizzazione in web.xml, le risorse web devono essere definite e confrontate con i ruoli definiti nei vincoli. Se LDAP non dispone della mappatura dei ruoli di gruppo, è necessario impostare l'attributo < > in web.xml per ottenere la mappatura dei ruoli di gruppo. security-role-ref Per vedere un esempio di documento di configurazione, consulta la documentazione di Oracle. 

  • Connessione al database: crea una definizione di risorsa in Apache Tomcat con un endpoint URL Amazon Relational Database Service (AmazonRDS) e dettagli di connessione. Aggiorna il codice dell'applicazione in modo che faccia riferimento a utilizzando lookup DataSource . JNDI Una connessione DB esistente definita in non WebSphere funzionerebbe, poiché utilizza i WebSphere JNDI nomi. È possibile aggiungere una <resource-ref>voce in web.xml con il JNDI nome e la definizione del DataSource tipo. Per visualizzare un documento di configurazione di esempio, consultate la documentazione di Apache Tomcat.

  • Registrazione: per impostazione predefinita, Apache Tomcat accede alla console o a un file di registro. È possibile abilitare la traccia a livello di realm aggiornando logging.properties (vedi Registrazione in Tomcat). Se utilizzi Apache Log4j per aggiungere log a un file, devi scaricare tomcat-juli e aggiungerlo al classpath.

  • Gestione delle sessioni: se si utilizza IBM Web per il bilanciamento del carico delle applicazioni e la gestione delle sessioni, non è richiesta alcuna SEAL modifica. Se utilizzi un Application Load Balancer o Network Load AWS Balancer per sostituire IBM il componente SEAL Web, devi configurare la gestione delle sessioni utilizzando un'istanza ElastiCache Amazon con un cluster Memcached e configurare Apache Tomcat per utilizzare la gestione delle sessioni open source. 

  • Se si utilizza il proxy IBM Web SEAL forward, è necessario impostare un nuovo Network Load Balancer su. AWS Utilizza il IPs servizio fornito dal Network Load Balancer per le configurazioni di SEAL giunzione Web.

  • SSLconfigurazione: Si consiglia di utilizzare Secure Sockets Layer (SSL) per le comunicazioni. end-to-end Per configurare una configurazione SSL del server in Apache Tomcat, segui le istruzioni nella documentazione di Apache Tomcat. 

Architettura

Stack di tecnologia di origine

  • IBM WebSphere Server delle applicazioni

Stack tecnologico Target

  • L'architettura utilizza Elastic Load Balancing (versione 2). Se si utilizza IBM Web SEAL for Identify per la gestione e il bilanciamento del carico, è possibile selezionare un Network Load Balancer attivo AWS da integrare con IBM il reverse proxy SEAL Web.

  • Le applicazioni Java vengono distribuite su un server applicativo Apache Tomcat, che viene eseguito su un'EC2istanza in un gruppo Amazon Auto Scaling EC2. Puoi impostare una politica di scalabilità basata su CloudWatch parametri di Amazon come CPU l'utilizzo. 

  • Se stai ritirando l'uso del IBM Web SEAL per il bilanciamento del carico, puoi utilizzare Amazon ElastiCache for Memcached per la gestione delle sessioni.

  • Per il database di back-end, puoi implementare High Availability (Multi-AZ) per Amazon RDS e selezionare un tipo di motore di database.

Architettura Target

Cloud AWS architecture with VPC, two availability zones, load balancer, and database setup.

Strumenti

Epiche

AttivitàDescrizioneCompetenze richieste
Crea un cloud privato virtuale (VPC).
Crea sottoreti.
Se necessario, create tabelle di routing.
Crea elenchi di controllo degli accessi alla rete (ACLs).
Configura AWS Direct Connect o una VPN connessione aziendale.
AttivitàDescrizioneCompetenze richieste
Rifattorizza la configurazione Maven di build dell'applicazione per generare gli artefatti. WAR
Rifattorizza le fonti di dati sulle dipendenze delle applicazioni in Apache Tomcat.
Rifattorizza i codici sorgente dell'applicazione per utilizzare JNDI i nomi in Apache Tomcat.
Distribuisci gli WAR artefatti in Apache Tomcat.
Completa le convalide e i test delle applicazioni.
AttivitàDescrizioneCompetenze richieste
Configura il firewall aziendale per consentire la connessione ai servizi di dipendenza.
Configura il firewall aziendale per consentire l'accesso dell'utente finale a Elastic Load Balancing on. AWS
AttivitàDescrizioneCompetenze richieste
Crea e distribuisci l'applicazione su un'EC2istanza.
Crea un cluster Amazon ElastiCache for Memcached per la gestione delle sessioni.
Crea un'istanza Amazon RDS Multi-AZ per il database di backend.
Crea SSL certificati e importali in AWS Certificate Manager (ACM).
Installa SSL i certificati sui sistemi di bilanciamento del carico.
Installa SSL i certificati per i server Apache Tomcat.
Convalide e test completi delle applicazioni.
AttivitàDescrizioneCompetenze richieste
Chiudere l'infrastruttura esistente.
Ripristina il database dalla produzione ad AmazonRDS.
Riduci l'applicazione DNS apportando modifiche.

Riferimenti

Tutorial e video