L'elaborato affronta come tema principale la sostituzione dell'utilizzo di Hasura GraphQL all'interno di un applicativo software gestionale utilizzato da centrali di sterilizzazione, contesto nel quale affidabilità e coerenza dei dati rappresentano requisiti indispensabili. La necessità di migrare da Hasura è emersa a causa di problemi operativi che hanno compromesso efficienza, manutenibilità e sicurezza dell'applicativo. Le complicazioni sono emerse in particolare su ambienti in gestione ai clienti, che presentano sistemi operativi o componenti software datati, e riguardano principalmente vincoli di compatibilità con versioni di Docker e PostgreSQL, a volte aggravati dall'assenza del modulo pgcrypto, necessario al corretto funzionamento di Hasura. A tali criticità si sono aggiunti problemi legati ad un uso non corretto di tale servizio per quanto riguarda gestione dei ruoli utente e della cache. Ulteriori difficoltà hanno riguardato le prestazioni di alcune query complesse e la lentezza di alcuni processi di deployment, gestiti attraverso le GitHub Actions. Questa situazione ha evidenziato la necessità di implementare una nuova soluzione più controllabile e performante. A seguito di un'approfondita analisi del caso di studio è stata definita e implementata una strategia di sostituzione del motore GraphQL con una nuova architettura basata su un approccio REST, sviluppata con il linguaggio TypeScript e attraverso il runtime Deno. Questo ha consentito di progettare un servizio leggero, indipendente e facilmente manutenibile, in grado di comunicare in modo chiaro ed efficiente con il database sottostante, attraverso query ottimizzate che utilizzano parametri posizionali e prepared statement, garantendo un buon livello di sicurezza contro SQL Injection e una diminuzione dei tempi di risposta. Il nuovo servizio è stato completato, validato e rilasciato in produzione sugli ambienti dei clienti. Ha pienamente sostituito il precedente utilizzo di Hasura GraphQL, dimostrando piena compatibilità con le componenti software presenti. I risultati raccolti evidenziano una notevole riduzione dei tempi di deployment e un significativo miglioramento dei tempi di risposta in alcuni servizi critici. In sintesi, la tesi ha contribuito alla definizione e all'implementazione di un modello architetturale alternativo, dimostratosi efficace, nonostante l'adozione di un approccio concettualmente meno recente come REST, in sostituzione di uno più moderno quale Hasura GraphQL.
Analisi e risoluzione dei limiti di Hasura GraphQL in un caso di studio aziendale
AGUZZOLI, ANDREA
2024/2025
Abstract
L'elaborato affronta come tema principale la sostituzione dell'utilizzo di Hasura GraphQL all'interno di un applicativo software gestionale utilizzato da centrali di sterilizzazione, contesto nel quale affidabilità e coerenza dei dati rappresentano requisiti indispensabili. La necessità di migrare da Hasura è emersa a causa di problemi operativi che hanno compromesso efficienza, manutenibilità e sicurezza dell'applicativo. Le complicazioni sono emerse in particolare su ambienti in gestione ai clienti, che presentano sistemi operativi o componenti software datati, e riguardano principalmente vincoli di compatibilità con versioni di Docker e PostgreSQL, a volte aggravati dall'assenza del modulo pgcrypto, necessario al corretto funzionamento di Hasura. A tali criticità si sono aggiunti problemi legati ad un uso non corretto di tale servizio per quanto riguarda gestione dei ruoli utente e della cache. Ulteriori difficoltà hanno riguardato le prestazioni di alcune query complesse e la lentezza di alcuni processi di deployment, gestiti attraverso le GitHub Actions. Questa situazione ha evidenziato la necessità di implementare una nuova soluzione più controllabile e performante. A seguito di un'approfondita analisi del caso di studio è stata definita e implementata una strategia di sostituzione del motore GraphQL con una nuova architettura basata su un approccio REST, sviluppata con il linguaggio TypeScript e attraverso il runtime Deno. Questo ha consentito di progettare un servizio leggero, indipendente e facilmente manutenibile, in grado di comunicare in modo chiaro ed efficiente con il database sottostante, attraverso query ottimizzate che utilizzano parametri posizionali e prepared statement, garantendo un buon livello di sicurezza contro SQL Injection e una diminuzione dei tempi di risposta. Il nuovo servizio è stato completato, validato e rilasciato in produzione sugli ambienti dei clienti. Ha pienamente sostituito il precedente utilizzo di Hasura GraphQL, dimostrando piena compatibilità con le componenti software presenti. I risultati raccolti evidenziano una notevole riduzione dei tempi di deployment e un significativo miglioramento dei tempi di risposta in alcuni servizi critici. In sintesi, la tesi ha contribuito alla definizione e all'implementazione di un modello architetturale alternativo, dimostratosi efficace, nonostante l'adozione di un approccio concettualmente meno recente come REST, in sostituzione di uno più moderno quale Hasura GraphQL.| File | Dimensione | Formato | |
|---|---|---|---|
|
Aguzzoli.Andrea.pdf
embargo fino al 01/12/2028
Dimensione
6.98 MB
Formato
Adobe PDF
|
6.98 MB | Adobe PDF |
I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/20.500.14251/4126