Deploy finale dell’applicazione su OpenShift
Adesso che abbiamo configurato le due risorse mancanti, il broker AMQP e
MongoDB, è possibile procedere con il deploy finale dell’applicazione
Quarkus su OpenShift. Per fare ciò, è necessario eseguire il comando
mvn clean package -Dquarkus.openshift.deploy=true
o
quarkus build -Dquarkus.openshift.deploy=true
che effettuerà la build
dell’applicazione Quarkus e il deploy su OpenShift.
A meno di “catastrofi”, l’operazione di build e deploy dovrebbe andare a
buon fine e l’applicazione Quarkus dovrebbe essere pronta per ricevere
il traffico. Potete fare un veloce controllo utilizzando il comando
oc get pods
che adesso dovrebbe restituire l’output mostrato a
seguire.
Da notare che l’applicazione è pronta per ricevere il traffico, come
indicato dallo stato Running
del pod dell’applicazione
eventbus-logging-filter-jaxrs-7f8b5cd8b7-4z4ms
.
Output del comando oc get pods
per verificare che
l’applicazione sia pronta
NAME READY STATUS RESTARTS AGE
activemq-artemis-f9584d88c-pgf68 1/1 Running 0 144m
eventbus-logging-filter-jaxrs-7f8b5cd8b7-4z4ms 1/1 Running 0 7m26s
mongo-dc76d7f8d-p7dv7 1/1 Running 0 58m
Adesso, è quindi possibile chiamare l’API del servizio di echo e aspettarci una risposta positiva.
Output del comando cURL per chiamare l’API del servizio di echo
# Chiamata all'API del servizio di echo tramite cURL
curl -v -H "Content-Type: application/json" \
-d '{"message": "Test di tracking richiesta JAX-RS su Dev Sandbox OpenShift"}' \
http://eventbus-logging-filter-jaxrs-antonio-musarra-dev.apps.sandbox-m2.ll9k.p1.openshiftapps.com/api/rest/echo
= Output del comando cURL
* Trying 18.220.238.101:80...
* Connected to eventbus-logging-filter-jaxrs-antonio-musarra-dev.apps.sandbox-m2.ll9k.p1.openshiftapps.com (18.220.238.101) port 80
> POST /api/rest/echo HTTP/1.1
> Host: eventbus-logging-filter-jaxrs-antonio-musarra-dev.apps.sandbox-m2.ll9k.p1.openshiftapps.com
> User-Agent: curl/8.4.0
> Accept: */*
> Content-Type: application/json
> Content-Length: 73
>
< HTTP/1.1 200 OK
< content-type: application/json;charset=UTF-8
< content-length: 73
< set-cookie: user_tracking_id=9319d019-fc84-4077-b9c4-005c896e8fcb;Version=1;Comment="Cookie di tracciamento dell'utente";Path=/;Max-Age=2592000
< x-correlation-id: cefda5e4-346f-46f6-8494-a621e634b1bc
< set-cookie: 7eb8860bc15109552408e7020c87e397=a31130c8ef37120c72b3115bf77a7334; path=/; HttpOnly
< Date: Sun, 14 Apr 2024 18:32:09 GMT
< Connection: keep-alive
<
* Connection #0 to host eventbus-logging-filter-jaxrs-antonio-musarra-dev.apps.sandbox-m2.ll9k.p1.openshiftapps.com left intact
{"message": "Test di tracking richiesta JAX-RS su Dev Sandbox OpenShift"}
Ottimo! Il servizio di echo ha risposto correttamente alla richiesta
HTTP e come aspettato. Questo significa che l’applicazione Quarkus è
pronta per ricevere il traffico; tramite il comando
oc logs <nome-del-pod>
possiamo verificare che il sistema di
tracciamento delle richieste e delle risposte HTTP funzioni
correttamente.
Dall’estratto dai log del pod dell’applicazione a seguire, possiamo vedere che il sistema di tracciamento delle richieste verso il broker AMQP e il database NoSQL MongoDB sta funzionando correttamete.
Estratto dai log del pod dell’applicazione Quarkus per verificare il funzionamento del sistema di tracciamento
2024-04-14 18:32:09,370 DEBUG [it.don.eve.con.eve.han.Dispatcher] (vert.x-eventloop-thread-0) Received response from target virtual address: nosql-trace with result: Documents inserted successfully with Id BsonObjectId{value=661c21291140b32ae7b43ea9}
2024-04-14 18:32:09,371 DEBUG [it.don.eve.con.eve.han.Dispatcher] (vert.x-eventloop-thread-0) Received response from target virtual address: nosql-trace with result: Documents inserted successfully with Id BsonObjectId{value=661c21291140b32ae7b43eaa}
2024-04-14 18:32:09,377 DEBUG [it.don.eve.con.eve.han.Dispatcher] (vert.x-eventloop-thread-0) Received response from target virtual address: queue-trace with result: Message sent to AMQP queue successfully!
2024-04-14 18:32:09,378 DEBUG [it.don.eve.con.eve.han.Dispatcher] (vert.x-eventloop-thread-0) Received response from target virtual address: queue-trace with result: Message sent to AMQP queue successfully!
Lascio a voi il divertimento di fare le verifiche su MongoDB e AMQP per vedere se i dati sono stati effettivamente inseriti e se i messaggi sono correttamente in coda.
Lavoro finito; l’applicazione che abbiamo sviluppato è cloud native!