- AI, insights & Innovazione
- 25.02.2022
Cos'è l'Open Source? Intervista ad Andrea Stagi
Iniziamo una conversazione
100% 0% 5% 35% 100%
Uno degli aspetti principali dello sviluppo web è l’ottimizzazione delle immagini presenti sul sito, ma perché è così importante? Le ragioni principali sono 3:
- Velocità della pagina: immagini grandi e non ottimizzate possono rendere il tuo sito web lento e ingolfato come non mai. I tuoi utenti non aspetteranno a lungo il caricamento e, per renderlo rapido, l’ottimizzazione delle immagini è imprescindibile.
- Esperienza utente: quando il caricamento del tuo sito Web impiega un'eternità, non fornisce esattamente la migliore esperienza per i tuoi utenti, che si aspettano rapidità e fruibilità immediata. L'ottimizzazione delle immagini soddisfa le aspettative degli utenti.
- SEO: l'ottimizzazione delle immagini ti aiuta a garantire che le tue immagini vengano classificate nelle ricerche di immagini su Google ed è quindi vantaggiosa per il posizionamento sui motori di ricerca. Inoltre, la velocità della pagina gioca un ruolo importante nell'algoritmo di ricerca di Google e l'ottimizzazione delle immagini ti evita quindi penalizzazioni dovute alla lentezza.
Naturalmente, sono tante le azioni volte a migliorare la velocità di un sito web, ma il ruolo delle immagini non è trascurabile. L’area Technology di Lotrèk ha sviluppato il tool open source Piuma, un microservizio scritto in Go che ottimizza le immagini “al volo”, ovvero semplicemente passando la url dell’immagine principale con dei parametri che indicano l’ottimizzazione desiderata, come le dimensioni e la qualità. L’utilizzo di un microservizio, invece di una libreria ad hoc per i linguaggi e i framework con i quali sviluppiamo, ci ha permesso di integrare questo sistema in maniera rapida e semplice anche su progetti legacy, in quanto non abbiamo avuto bisogno di installare librerie o tool aggiuntivi ma solo applicare una url diversa a tutte le immagini.
Prima di passare alla parte di installazione, vediamo come funziona Piuma. Il funzionamento di questo microservizio di ottimizzazione di immagini è molto semplice, una volta che avrete l’istanza Piuma deployata su un server, potete tranquillamente passargli la url della vostra immagine usando il seguente schema:
https://<yourpiumahost>/<options>/<image_url>
Dove il parametro options è composto da 3 parametri:
width_height_quality
Il parametro quality è un numero da 0 a 100 mentre i parametri width e height sono misure in pixel.
Ad esempio, per ricevere la tua immagine ridimensionata 100x100 basterà effettuare la seguente chiamata:
https://yourpiumahost/100_100/<image_url>
Ovviamente si può specificare anche soltanto l’altezza e la larghezza in modo da mantenere le proporzioni originali
https://yourpiumahost/100/<image_url>
Per maggiori informazioni su come utilizzare Piuma e per avere tutta la lista possibile di opzioni e formati supportati, potete fare riferimento alla documentazione ufficiale.
Se volete provare Piuma e installarlo su un server o sulla macchina locale è necessario avere una versione di Docker funzionante nella macchina. Potete trovare il codice del microservizio Piuma su Github a questo link.
Una volta installato docker sulla macchina per scaricare e avviare Piuma basterà eseguire il seguente comando da terminale:
docker run -d -p 8080:8080 --name piuma --restart unless-stopped -v $PWD/piumadata:/data piumaio/piuma -mediapath /data
Questo comando avvierà piuma sulla porta 8080 del proprio server e userà la cartella corrente (appunto $PWD) come storage per i file immagine ottimizzati (dentro la cartella “piumadata”). Questo storage sarà utilizzato anche come cache per velocizzare le richieste future della stessa immagine. La directory in cui verrà lanciato il comando visto precedentemente sarà usata dal servizio per salvare le immagini ottimizzate, dunque sarà opportuno prima di avviare il comando creare una directory dedicata al salvataggio di tali immagini e lanciare il comando li dentro.
Dato che il servizio piuma si metterà in ascolto sulla porta 8080 sarà opportuno definire una regola sul web server installato sulla macchina (apache/nginx/...) che redirezioni il traffico di una particolare url a vostra scelta sulla porta 8080.
Se utilizzate NGINX come proxy, potete trovare una configurazione di esempio qui.
Come avete letto da questo articolo, configurare e utilizzare Piuma è veramente molto semplice. Per comodità abbiamo comunque scritto alcune librerie che ci vengono in aiuto durante lo sviluppo, come librerie per VueJS (framework che abbiamo già approfondito relativamente alla tecnica del “transparent wrapping”), Django ed un plugin Wordpress. Potete trovare tutti questi software all’interno dell’organizzazione Piuma su GitHub dove potete seguire lo sviluppo e contribuire.
Scopri di più
Idee Idee Idee
Cos'è l'Open Source? Intervista ad Andrea Stagi
PyVerificaC19: il nostro SDK in Python per la verifica del Green Pass
Quando e perché scegliere AVIF come formato immagine