Nota:

Distribuisci applicazioni Java su Ampere A1 su Oracle Cloud Infrastructure

Scopri come creare e distribuire applicazioni Java come container nella piattaforma di calcolo Ampere A1 in Oracle Cloud Infrastructure(OCI). Puoi distribuire un'applicazione Todo con un database, come container in esecuzione sulla piattaforma di calcolo Ampere A1. Inoltre, utilizzerai il nuovo set di strumenti container come Podman disponibili in Oracle Linux 8.0.

Introduzione

Obiettivi

In questa esercitazione:

Prerequisiti

  1. Un account cloud Oracle Free Tier (Trial), Paid o LiveLabs.
  2. Familiarità con la console OCI
  3. Panoramica sul networking
  4. Familiarità con i compartimenti
  5. Conoscenza concettuale di base dei contenitori e Podman
  6. Conservare le chiavi SSH utili. Se non si dispone delle chiavi, generare le chiavi SSH.

Impostare l'ambiente

Iniziare iniziando l'ambiente cloud Oracle che verrà utilizzato per creare e distribuire l'applicazione Java EE. Questo ambiente sarà contenuto in un compartimento cloud e la comunicazione all'interno del compartimento verrà eseguita tramite una rete cloud virtuale (VCN). Il compartimento e la VCN isolano e proteggono l'ambiente generale. Puoi distribuire un'istanza di computazione Ampere A1 che ospita un'applicazione Java EE utilizzando i container server Tomcat 9.0 e MySQL.

Impostazione di base dell'infrastruttura

  1. Aprire il menu di navigazione. In Governance e amministrazione, andare a Identità e fare clic su Compartimenti. Da questa schermata viene visualizzata una lista di compartimenti, fare clic su Crea compartimento.

  2. Immettere quanto riportato di seguito.

    • Nome: immettere "AppDev".
    • Descrizione: immettere una descrizione (obbligatoria), ad esempio "AppDev compartimento per l'esercitazione introduttiva". Evitare di fornire informazioni riservate.
    • Compartimento padre: selezionare il compartimento in cui si desidera che si trovi questo compartimento. Il valore predefinito è il compartimento radice (o la tenancy).
    • Fare clic su Crea compartimento.
    • Il compartimento è visualizzato nella lista.

Creare un'istanza di calcolo Ampere A1

  1. Per creare un'istanza di computazione Ampere A1, utilizzare il menu di navigazione nell'angolo in alto a sinistra della console, quindi andare a Computazione > Istanze.

  2. Aprire il flusso di creazione dell'istanza.

    1. Verificare di essere presenti nel compartimento AppDev.
    2. Fare clic su Crea istanza.
  3. Nella pagina di creazione dell'istanza verrà creata la nuova istanza insieme alle nuove risorse di rete, quali la rete cloud virtuale (VCN), il gateway Internet (IG) e molto altro ancora.

    1. Assegnare un nome all'istanza JavaApp
    2. Aggiornare la selezione delle immagini per utilizzare Oracle Linux 8 o versioni successive
    3. Fare clic sul pulsante Modifica forma per visualizzare le forme di computazione disponibili.

     Crea istanzaDescrizione dell'illustrazione Crea istanza

  4. Configurare l'immagine per l'istanza.

    1. Fare clic sul pulsante Modifica immagine per visualizzare le immagini del sistema operativo disponibili.
    2. Scegliere Oracle Linux 8 o versioni successive.

    Scegli Oracle Linux 8Descrizione dell'illustrazione Scegliere Oracle Linux 8

  5. Configurare le risorse per l'istanza.

    1. Scegliete il processore Ampere Arm in base alla serie di forme.
    2. Scegliere la forma VM.Standard.A1.Flex dall'elenco di forme con processori basati su Braccio Ampere. Le forme Ampere A1 sono flessibili ed è possibile modificare il numero di memorie centrali e la quantità di memoria. Scegliere 1 core e 6 GB di memoria per la VM.

    Scegli formaDescrizione dell'illustrazione Scegli forma

  6. Selezionare le opzioni di rete. Crea una nuova VCN e una nuova subnet per la tua prossima distribuzione cloud. Assicurarsi di selezionare per assegnare un indirizzo IP pubblico per l'istanza.

  7. Generare e scaricare la coppia di chiavi SSH. Questo passaggio è facoltativo, ma è vivamente consigliato per la manutenzione e gli aggiornamenti successivi. È inoltre possibile portare la chiave pubblica se si dispone già di una coppia di chiavi che si desidera utilizzare. Per informazioni su come generare le chiavi SSH, seguire le istruzioni riportate nell'esercitazione sulla generazione delle chiavi SSH.

    Opzioni di reteDescrizione dell'illustrazione Opzioni di rete

  8. Fare clic su Crea per creare le risorse di rete e avviare l'istanza di computazione. istanza di avvioDescrizione dell'istanza di avvio dell'illustrazione

Esponi porte applicazione agli utenti

Affinché le applicazioni siano accessibili da Internet, è necessario aprire le porte che verranno utilizzate dall'applicazione. In questa sezione, dovrai configurare le liste di sicurezza sulla tua rete cloud e le regole firewall sull'istanza di computazione per consentire alle applicazioni di inviare e ricevere traffico.

Configurare la rete VCN (Virtual Cloud Network)

Un elenco di sicurezza funge da firewall virtuale per un'istanza, con regole di entrata e uscita che specificano i tipi di traffico consentito verso e da. Elenchi di sicurezza configurati a livello di subnet, che applica le regole di sicurezza a tutti gli elementi di rete in tale subnet. La rete è dotata di una lista di sicurezza predefinita, che dispone di un set iniziale di regole. La lista di sicurezza predefinita consente di connettersi all'istanza mediante SSH e affinché l'istanza effettui chiamate di rete in uscita verso qualsiasi destinazione.

  1. Navigare nella pagina dei dettagli dell'istanza per l'istanza creata. Computazione > Istanze > Fare clic sull'istanza creata

  2. Accedere alla subnet a cui è collegata l'istanza facendo clic sulla subnet selezionare la subnet Descrizione dell'illustrazione, selezione della subnet

  3. Nella pagina della subnet, fare clic sulla lista di sicurezza predefinita per visualizzare i dettagli e configurarla.

  4. Fare clic su "Aggiungi regola di entrata" per aggiungere una nuova regola per consentire il traffico in entrata corrispondente alle regole.

  5. Aggiungere una regola di entrata per consentire il traffico in entrata sulla porta 8080

    1. Impostare CIDR di origine su 0.0.0.0/0. Ciò consente il traffico in entrata da tutte le origini.
    2. Impostare l'opzione Intervallo di porte di destinazione su 8080. In questo modo la destinazione viene impostata solo sulla porta 8080. La regola consente ora che il traffico da tutte le origini utilizzi la porta 8080. Questo è ciò di cui abbiamo bisogno, in modo che la nostra applicazione possa essere raggiunta da qualsiasi luogo.
    3. Fornire una descrizione.

    impostare le regole di entrata Descrizione delle regole di entrata per l'impostazione dell'illustrazione

Configurare il firewall sull'istanza

Le regole del firewall controllano il traffico a livello di pacchetto all'interno/esterno di un'istanza. Puoi configurare le regole firewall direttamente sull'istanza stessa e fornire un livello aggiuntivo di sicurezza.

  1. Passare alla pagina dei dettagli dell'istanza per l'istanza creata. Computazione > Istanze > Fare clic sull'istanza creata.
  2. Copiare l'indirizzo IP pubblico dell'istanza.
  3. Eseguire il login all'istanza utilizzando SSH. Utilizzare la chiave generata dall'utente o fornita durante il passo di creazione dell'istanza. Il nome utente predefinito per le istanze che utilizzano il sistema operativo Oracle Linux è opc.
  4. Eseguire i comandi di configurazione del firewall. Ciò modifica il firewall nell'istanza stessa per esporre la porta 8080 e accettare il traffico in entrata.

    sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
    sudo firewall-cmd --reload
    

Eseguire applicazioni Java EE su Ampere A1 Compute Platform

Per eseguire questa applicazione, preparare prima un'istanza di computazione Ampere A1 con alcuni pacchetti richiesti, come gli strumenti contenitore e git. Quindi, duplicare il repository e creare l'applicazione utilizzando il Maven pom.xml incluso. Infine, avviare i container MySQL e Tomcat docker utilizzando gli strumenti di container.

Installazione degli strumenti del contenitore

Oracle Linux 8 utilizza Podman per eseguire e gestire i container. Podman è un container engine senza daemon per lo sviluppo, la gestione e l'esecuzione di container e immagini di container Open Container Initiative nel sistema Linux. Podman fornisce un'applicazione della riga di comando compatibile con Docker che può essere utilizzata in sostituzione del docker. L'installazione del pacchetto podman-docker fornisce il comando docker che richiama in modo trasparente podman.

  1. Eseguire il login all'istanza utilizzando SSH. Utilizzare la chiave generata dall'utente o fornita durante il passo di creazione dell'istanza. Il nome utente predefinito per le istanze che utilizzano il sistema operativo Oracle Linux è opc.

  2. Installare il modulo container-tools che estrae tutti gli strumenti necessari per utilizzare i contenitori.

    sudo dnf module install container-tools:ol8
    
    sudo dnf install podman-docker git
    

Duplica codice origine

Per iniziare, utilizzare SSH per eseguire il login all'istanza di computazione e duplicare il repository.

git clone https://github.com/oracle-quickstart/oci-arch-tomcat-mds.git
cd oci-arch-tomcat-mds/java

Creare l'applicazione Web

Le applicazioni Web Java vengono inserite in pacchetti come archivi di applicazioni Web o file WAR. I file WAR sono file zip con metadati che descrivono l'applicazione in un contenitore servlet come Tomcat. In questo esempio viene utilizzato Apache Maven per creare il file WAR per l'applicazione. Per creare l'applicazione, eseguire il comando seguente. Assicurarsi di eseguire il comando dalla posizione in cui sono stati clonati i file di origine.

podman run -it --rm --name todo-build \
    -v "$(pwd)":/usr/src:z \
    -w /usr/src \
    maven:3 mvn clean install

Questo comando crea una directory target e il file WAR al suo interno. Tenere presente che non viene installato Maven, ma è in esecuzione lo strumento di creazione all'interno del contenitore.

Eseguire l'applicazione sulla piattaforma di calcolo Ampere A1

L'applicazione utilizza il contenitore servlet Tomcat e il database MySQL. Sia Tomcat che il database MySQL supportano l'architettura ARM64v8 utilizzata dalla piattaforma di calcolo Ampere A1.

  1. Crea un pod usando Podman.

    podman pod create --name todo-app -p 8080:8080 --infra-image k8s.gcr.io/pause:3.1
    
  2. Avviare il contenitore del database nel pod.

    podman run --pod todo-app -d \
    -e MYSQL_ROOT_PASSWORD=pass \
    -e MYSQL_DATABASE=demo \
    -e MYSQL_USER=todo-user \
    -e MYSQL_PASSWORD=todo-pass \
    --name todo-mysql \
    -v "${PWD}"/src/main/sql:/docker-entrypoint-initdb.d:z \
    mysql/mysql-server:8.0
    

    Per il database MySQL, al contenitore vengono forniti gli script di inizializzazione del database, che crea gli utenti e le tabelle di database necessari all'avvio. A tale scopo, attivare la directory /src/main/sql dall'host come /docker-entrypoint-initdb.d all'interno del contenitore. L'immagine MySQL ufficiale che si sta utilizzando qui è configurata per eseguire i file .sql in questa directory all'avvio. Per ulteriori opzioni, incluse le modalità di esportazione e backup dei dati, consulta la documentazione.

  3. Distribuire l'applicazione creata come file WAR con un server Tomcat.

    podman run --pod todo-app -d\
    --name todo-tomcat \
    -v "${PWD}"/target/todo.war:/usr/local/tomcat/webapps/todo.war:z \
    tomcat:9
    podman logs -f todo-tomcat
    

    Le informazioni di connessione al database e l'applicazione vengono fornite al contenitore Apache Tomcat mediante src/main/resources/todo.properties. L'URL JDBC utilizza localhost come host del server MySQL. Questo perché i container all'interno dello stesso pod possono comunicare tra loro utilizzando localhost. Il file WAR dell'applicazione viene fornito come attivazione nel contenitore.

    Tomcat distribuisce l'applicazione all'avvio e il mapping di porte all'host rende disponibile l'applicazione sull'indirizzo IP pubblico per l'istanza di computazione.

  4. Immettere l'indirizzo IP pubblico dell'istanza di computazione in un browser con la porta 8080. Dovrebbe essere possibile visualizzare l'applicazione. http://<ip_address>:8080/todo/

Risoluzione dei problemi

I contenitori Podman possono essere ispezionati come contenitori Docker (è anche possibile alias podman come docker). Di seguito sono riportati alcuni comandi comuni per l'ispezione dei contenitori:

Piattaforma di computazione Ampere A1

Riconoscimenti

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di apprendimento gratuito sul canale Oracle Learning YouTube. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.

Per la documentazione del prodotto, visitare il sito Oracle Help Center.