Nonostante sia relativamente nuovo, Quarkus si sta facendo conoscere nel mondo Java e in quello dello sviluppo applicativo. Il progetto della comunità open source, che Red Hat supporta come parte di Red Hat Runtimes, è uno stack completo, un framework Java nativo di Kubernetes progettato per lavorare con standard, framework e librerie Java, che rende Quarkus e Java un ottimo strumento per le nuove tecnologie native del cloud, come quelle serverless e i microservizi.
Gli sviluppatori Java possono usare il linguaggio di cui sono già esperti per realizzare questi nuovi framework. Opportunità fondamentale perché Java rimane uno dei linguaggi di programmazione più utilizzati al mondo e, secondo recenti dati IDC, 9,3 milioni dei 13,5 milioni di sviluppatori professionisti in tutto il mondo si autoidentificano come utenti Java “moderate to heavy”.
Arnal Dayaratna, direttore di ricerca e analista dedicato al software development di IDC, ha recentemente analizzato Quarkus in un rapporto IDC Lab Validation sponsorizzato da Red Hat. L’analisi quantifica le metriche di performance di Quarkus rispetto ad altri framework Java utilizzati per lo sviluppo nativo del cloud, noto come Framework A. Il confronto si basa su attributi ed esperienze importanti per gli sviluppatori, oltre che su quelli che contano per i container, Kubernetes e le implementazioni cloud.
Risparmi sui costi
Uno dei vantaggi di Quarkus è il risparmio, e il rapporto IDC lo dimostra, confermando che l’utilizzo di Quarkus JVM e Quarkus Native assicura una riduzione dei costi grazie al minor consumo di memoria e ai più rapidi tempi di avvio, determinando una maggiore densità di distribuzione dei pod Kubernetes e un ridotto utilizzo della memoria. Quarkus ha anche un costo operativo inferiore. Rispetto al Framework A, i risparmi con Quarkus in esecuzione in modalità nativa – che utilizza GraalVM per creare un eseguibile autonomo e ottimizzato che non gira su una Java Virtual Machine tradizionale – possono arrivare fino al 64% (37% su JVM). Questi risparmi derivano anche dall’utilizzo dei container e delle risorse solo quando e come è necessario.
Produttività dello sviluppatore
Il rapporto convalida inoltre che Quarkus migliora la produttività degli sviluppatori rispetto al Framework A. Risultato importante perché può portare a un più rapido time-to-market e a soluzioni più innovative che consentono alle organizzazioni di mantenere il vantaggio competitivo. Rispetto al Framework A, Quarkus ha ridotto il numero di passi operativi necessari per aggiornare le applicazioni, in modo che gli update possano essere effettuati in modo più efficiente. In particolare, il rapporto osserva che con Quarkus uno sviluppatore che effettua e testa le modifiche al codice sorgente ha due fasi – cambiare il codice e salvare – rispetto a uno che utilizza il Framework A che ha fino a sei fasi – fare il cambiamento del progetto, fermare il servizio, avviare il servizio, testare il cambiamento, eseguire l’applicazione del Framework A e testare nuovamente l’applicazione.
Il processo in due fasi di Quarkus – reso possibile della codifica in tempo reale – non solo aumenta la produttività degli sviluppatori, ma rende la compilazione del codice più facile ed efficiente. Gli aggiornamenti delle applicazioni che utilizzano la codifica in tempo reale sono visibili immediatamente, migliorando l’efficienza operativa dello sviluppatore e velocizzando la risoluzione dei problemi grazie alla possibilità di rintracciare l’errore più significativo per primo.
Quarkus unifica anche la programmazione imperativa e reattiva per dare agli sviluppatori la possibilità di combinare liberamente entrambe le opzioni di programmazione, e può ridurre i tempi di manutenzione e la quantità di progetti che gli sviluppatori devono gestire, abilitando un numero minore di progetti e di file sorgente.
Densità di distribuzione
Il rapporto ha rilevato che gli sviluppatori che usano Quarkus possono far girare più pod di quanti se ne possano avviare per il Framework A. In particolare, coloro che usano Quarkus nativo possono far girare 8 volte più pod, mentre quelli che si avvalgono di Quarkus JVM fino a 1,5 volte più pod permettendo ai clienti di fare di più con la stessa quantità di risorse, e consentendo di distribuire più applicazioni con la stessa quantità di memoria. La densità di distribuzione e la riduzione dell’utilizzo della memoria sono alcuni dei modi chiave con cui Quarkus ottimizza Java per i container.
Prestazioni complessive
Uno dei vantaggi iniziali che gli sviluppatori hanno riscontrato quando usano Quarkus è il miglio utilizzo della memoria, che è particolarmente importante perché si dice che Java usa troppa memoria all’avvio e non è compatibile con applicazioni leggere. Lo studio ha rilevato che Quarkus nativo riduce l’uso della memoria di avvio del 90% e Quarkus JVM del 20%. Questo risparmio si traduce in un throughput molto più elevato per la stessa impronta di memoria sia in modalità JVM che nativa, permettendo di fare di più con la stessa quantità di memoria. Inoltre, Quarkus Native è 12 volte più veloce e Quarkus JVM 2 volte più veloce del Framework A, rendendo l’applicazione più reattiva ai cambiamenti di load e più affidabile durante le operazioni di scaling (serverless).
Nel complesso, il rapporto IDC conferma che Quarkus razionalizza e migliora il lavoro degli sviluppatori rispetto al Framework A.