Distribuisci WildFly connesso a un Autonomous Database
WildFly supporta gli standard più recenti per l'accesso ai dati basato su REST, tra cui JAX-RS 2 e JSON-P. B
WildFly, conosciuto in precedenza come Application Server JBoss, è un Application Server open source conforme alle specifiche di Jakarta EE 8/9 e Java EE 8. Include un componente server Web denominato Undertow. Il server applicazioni può essere configurato per eseguire e gestire una topologia multi-server o come server standalone. WildFly supporta gli standard più recenti per l'accesso ai dati basato su REST, tra cui JAX-RS 2 e JSON-P. Fornisce una gestione efficiente della memoria basata su sottosistemi collegabili. WildFly accelera il ciclo di sviluppo grazie alla struttura Arquillian di facile utilizzo.
Architettura
Questa architettura di riferimento contiene un load balancer, un livello applicazione con l'architettura multi-server WildFly, un livello di database con Oracle Autonomous Transaction Processing e un host bastion per l'accesso sicuro alla console di amministrazione WildFly.
I componenti si trovano in subnet diverse. Il load balancer e l'host bastion si trovano in una subnet pubblica. I server WildFly condividono una subnet privata e vengono distribuiti tra i domini di disponibilità nelle aree che lo consentono, e tra i domini di errore, per un'elevata disponibilità.
Il database si trova nella propria subnet privata. L'accesso esterno ai server applicazioni avviene tramite il load balancer tramite un gateway Internet, mentre l'accesso alla console di amministrazione avviene tramite un host bastion.
Il seguente diagramma illustra questa architettura di riferimento.

Descrizione dell'illustrazione Architecture-wildfly-oci.png
architettura-wildfly-oci-oracle.zip
L'architettura ha i seguenti componenti:
- Area
Un'area Oracle Cloud Infrastructure è un'area geografica localizzata che contiene uno o più data center, denominati domini di disponibilità. Le regioni sono indipendenti da altre regioni, e vaste distanze possono separarle (tra paesi o addirittura continenti).
- Domini di disponibilità
I domini di disponibilità sono data center indipendenti e autonomi all'interno di un'area. Le risorse fisiche in ogni dominio di disponibilità vengono isolate dalle risorse negli altri domini di disponibilità, il che fornisce tolleranza agli errori. I domini di disponibilità non condividono infrastrutture quali l'alimentazione o il raffreddamento o la rete di dominio di disponibilità interna. È quindi improbabile che un errore a un dominio di disponibilità influenzi gli altri domini di disponibilità nell'area.
- Domini di errore
Un dominio di errore è un raggruppamento di hardware e infrastruttura all'interno di un dominio di disponibilità. Ogni dominio di disponibilità dispone di tre domini di errore con alimentazione e hardware indipendenti. Quando si distribuiscono risorse su più domini di errore, le applicazioni possono tollerare errori fisici del server, manutenzione del sistema e errori di alimentazione all'interno di un dominio di errore.
- Rete cloud virtuale (VCN) e subnet
Una VCN è una rete personalizzabile definita dal software che si imposta in un'area Oracle Cloud Infrastructure. Analogamente alle reti di data center tradizionali, i VCN offrono un controllo completo sull'ambiente di rete. Una VCN può avere più blocchi CIDR non sovrapposti che è possibile modificare dopo aver creato la VCN. Puoi suddividere una VCN in subnet, che possono essere definite in un'area o in un dominio di disponibilità. Ogni subnet è composta da un intervallo contiguo di indirizzi che non si sovrappongono alle altre subnet nella VCN. Puoi modificare la dimensione di una subnet dopo la creazione. Una subnet può essere pubblica o privata.
- Load balancer
Il servizio Oracle Cloud Infrastructure Load Balancing fornisce la distribuzione automatica del traffico da un singolo punto di accesso a più server nel backend.
- Lista di sicurezza
Per ogni subnet è possibile creare regole di sicurezza che specifichino l'origine, la destinazione e il tipo di traffico che devono essere consentiti all'interno e all'esterno della subnet.
- Tabella instradamento
Le tabelle di instradamento virtuale contengono regole per instradare il traffico dalle subnet alle destinazioni al di fuori di un VCN, in genere tramite gateway.
- Gateway Internet
Il gateway Internet consente il traffico tra le subnet pubbliche in un VCN e Internet pubblico.
- Server WildFly
I server WildFly ospitano le applicazioni.
- Sistema Autonomous Database
WildFly può connettersi a qualsiasi database che offre JDBC (Java Database Connectivity). Questa architettura offre la possibilità di eseguire il provisioning di un Oracle Autonomous Database.
Suggerimenti
Le vostre esigenze potrebbero differire dall'architettura descritta qui. Utilizzare i suggerimenti riportati di seguito come punto di partenza.
- VCN
Quando crei una rete VCN, determina il numero di blocchi CIDR necessari e la dimensione di ciascun blocco in base al numero di risorse che intendi collegare alle subnet nella VCN. Usare i blocchi CIDR che si trovano all'interno dello spazio di indirizzi IP privati standard.
Selezionare i blocchi CIDR che non si sovrappongono ad altre reti (in Oracle Cloud Infrastructure, nel data center on premise o in un altro provider cloud) in cui si desidera impostare connessioni private.
Dopo aver creato una VCN, puoi modificare, aggiungere e rimuovere i relativi blocchi CIDR.
Quando si progettano le subnet, prendere in considerazione il flusso di traffico e i requisiti di sicurezza. Allegare tutte le risorse all'interno di uno specifico livello o ruolo alla stessa subnet, che può fungere da limite di sicurezza.
- Larghezza di banda del load balancer
Durante la creazione del load balancer, puoi selezionare una forma predefinita che fornisce una larghezza di banda fissa oppure specificare una forma (flessibile) personalizzata in cui impostare un intervallo di larghezza di banda e lasciare che il servizio scali automaticamente la larghezza di banda in base ai pattern di traffico. Grazie a entrambi i metodi, puoi modificare la forma in qualsiasi momento dopo aver creato il load balancer.
- Calcola istanze
Tutte le tenancie ottengono due istanze di Virtual Machine (VM) sempre gratuite, che questa architettura può utilizzare.
Se è richiesta più potenza di elaborazione, è possibile selezionare forme diverse.
- Sistemi di database
Tutte le tenancie ottengono due database autonomi Oracle sempre gratuiti. I database autonomi utilizzano l'infrastruttura Exadata condivisa, in cui Oracle gestisce il provisioning e la gestione dell'infrastruttura.
Se sono necessari più di due database, utilizzare un Oracle Autonomous Database non libero. - Memorizzazione a blocchi
Le istanze di questa architettura utilizzano una normale memorizzazione a blocchi; non sono necessarie prestazioni aggiuntive.
- Connettività di rete
È possibile gestire l'ambiente connettendosi all'infrastruttura locale esistente utilizzando una VPN site-to-site o una connessione dedicata a FastConnect.
Se è necessario separare l'ambiente dall'infrastruttura esistente o accedervi esternamente, un host bastione può proteggere le connessioni di gestione. L'host bastione viene in genere eseguito il provisioning in una zona demilitarizzata (DMZ). Protegge le risorse sensibili inserendole in reti private a cui non è possibile accedere direttamente dall'esterno del cloud. È possibile evitare di esporre i componenti più sensibili dell'architettura senza comprometterne l'accesso.
Considerazioni
Quando si distribuisce questa architettura di riferimento, prendere in considerazione i seguenti punti.
- Prestazioni
Questa architettura può utilizzare le risorse sempre libere di Oracle Cloud Infrastructure. A causa delle limitazioni della potenza di lavorazione nel livello Sempre libero, non è destinato alla produzione. Per carichi di lavoro più intensi, è necessario utilizzare le forme regolari delle istanze, dei load balancer e dei database.
- Sicurezza
Ad eccezione dell'host bastione e dei load balancer, tutti i componenti devono essere posizionati in subnet private.
- Disponibilità
I load balancer e i database sono ridondanti, senza richiedere alcun intervento per sfruttare queste funzioni. I server WildFly vengono distribuiti come coppia e bilanciati dal load balancer. È possibile aggiungere altri nodi, ma non sono inclusi nel livello Sempre libero.
- Costo
Questa architettura può utilizzare il livello Sempre libero. Tuttavia, le risorse di livello libero potrebbero non essere adeguate per i carichi di lavoro di produzione, nel qual caso sarà necessario fornire risorse e servizi informatici alle tariffe regolari.
Distribuzione
Il codice Terraform per questa architettura di riferimento è disponibile come stack di esempio in Oracle Cloud Infrastructure Resource Manager. È inoltre possibile scaricare il codice da GitHub e personalizzarlo in base alle specifiche esigenze.
- Distribuisci utilizzando Oracle Cloud Infrastructure Resource Manager:
- Fare clic su
Se non si è già connessi, immettere la tenancy e le credenziali utente.
- Rivedere e accettare i termini e le condizioni.
- Selezionare l'area in cui distribuire lo stack.
- Seguire le istruzioni e i prompt sullo schermo per creare lo stack.
- Dopo aver creato lo stack, fare clic su Azioni Terraform e selezionare Piano.
- Attendere il completamento del job e rivedere il piano.
Per apportare eventuali modifiche, tornare alla pagina Dettagli stack, fare clic su Modifica stack e apportare le modifiche necessarie. Eseguire di nuovo l'azione Piano.
- Se non sono necessarie ulteriori modifiche, tornare alla pagina Dettagli stack, fare clic su Azioni Terraform e selezionare Applica.
- Fare clic su
- Distribuzione con il codice Terraform in GitHub:
- Andare a GitHub.
- Duplicare o scaricare il repository nel computer locale.
- Seguire le istruzioni contenute nel documento
README
.
Visualizza altro
Collegamenti a informazioni aggiuntive che possono aiutarti a conoscere, modificare, utilizzare o implementare questa architettura.
-
Articoli tecnici, white paper, campioni di codice, domande frequenti e altro ancora che descrivono come utilizzare JDBC, Universal Connection Pool e la JVM incorporata per connettersi a Oracle Database.
-
Repository in GitHub con esempi di codice per un servlet Java che si connette a Oracle Database utilizzando il driver Oracle JDBC.
-
Framework basato sulle migliori prassi per Oracle Cloud Infrastructure