Azure Content Delivery Network (CDN)

Content Delivery Network
Utilizzare un Content Delivery Network significa sfruttare una rete di server sparsi in tutto il mondo per agevolare la distruzione di contenuti statici (HTML, Immagini, Video, Audio, ecc) dal proprio sito verso i propri visitatori. L’utilizzo di un CDN comporta un notevole aumento di velocità del proprio sito in quanto l’utente non dovrà attendere i contenuti dal server originario, ma li riceverà dal nodo più vicino.
Azure Content Delivery Network (CDN)
Nel nostro caso specifico andremo ad utilizzare un Azure Content Delivery Network (CDN) e come potrete intuire si tratta di un CDN offerto da Microsoft all’interno della propria struttura Cloud. Il servizio di CDN non è gratuito ed ha dei costi “calcolabili” in base al traffico generato mensilmente. Per maggiori informazioni vi rimando alla pagina ufficiale per le tariffe più aggiornate (Content Delivery Network pricing - A fast and modern global delivery network for high-bandwidth content)
All’interno di Azure i server CDN vengono chiamati Edge Servers e sono sparsi in tutto il mondo. Una volta creato e definito il CDN (passo successivo) il suo indirizzo avrà il seguente aspetto:
Ora la domanda spontanea potrebbe essere: ma dove sono i nodi dal quale vengono presi i miei contenuti? L’elenco (abbastanza aggiornato) lo potrete trovare al seguente link sul sito microsoft: Azure CDN Coverage by Metro
Tipologie di Azure CDN
Prima di procedere con la creazione dovete tenere presente che esistono diverse (al momento sono quattro) versioni offerte nel portale Azure.
S3 Standard Microsoft | S1 Standard Verizon | S2 Standard Akamai | P1 Premium Verizon |
---|---|---|---|
Custom domain SSL | Custom domain SSL | Custom domain SSL | All standard features |
Content Purge | Content Purge/Load | Content Purge | Token authentication |
Compression | Compression | Compression | Performance analytics |
Geo-filtering | Geo-filtering | Geo-filtering | Realtime analytics |
Realtime analytics | Core analytics | Media optimization | Mobile device rules |
Rules engine | Core analytics | Custom rules engine | |
Web Application Firewall | Dynamic delivery | Cache/Header settings | |
HTTP Raw Log | URL redirect/rewrite |
Attenzione: La scelta di una versione influirà sui seguenti fattori
- Dislocazione dei nodi sul territorio
- Costo del traffico generato nelle diverse zone
Quale utilizzare? Personalmente per il mio blog -si, questo che state leggendo ed anche la versione precedente in wordpress- utilizzo ormai da quasi un anno la versione S3 Standard Microsoft con ottimi risultati. Purtroppo non esiste una regola, dovrete analizzare bene le vostre necessità e decidere anche sulla stima dei costi.
Creazione CDN
La creazione di un CDN Azure è davvero semplice e richiede pochi passaggi.
- All’interno del portale dovrete cercare la sezione CDN profiles e fare “Add”
- In questo primo passaggio inserendo Name, Subscription, Resource Group e Pricing Tier andremo a creare un CDN Profile.
- Per creare un CDN Endpoint dovrete selezionare la casella “Create a new CDN Endpoint now "
In questo nuovo passaggio dovremmo stabilire due punti importanti:
- Il nome del nostro azureedge che -essendo un url- dovrà essere univoco in tutto il mondo
- La sorgente dal quale verranno presi i nostri dati
- Storage
- Storage Static Website
- Cloud service
- Web App
- Custom Origin
- Origin Hostname (ad eccezione del “Custom Origin” tutti gli altri mostreranno una tendina con l’elenco dei servizi di quella tipologia nella nostra Subscription)
Nota: usare il CDN con le “Azure App Service Static Web Apps” è possibile inserendo URL della Static Web Apps come origine
Una volta deciso come configurare il tutto dovrete solamente fare “Create”
Regole CDN
Una volta creato il CDN vi consiglio di aggiungere due regole di base per migliorare il vostro sito a livello di performance/SEO entrando nella sezione Rules engine
Always Cache expiration
Cache Behavior | Days | Hours | Minutes | Seconds |
---|---|---|---|---|
Set if Missing | 7 | 0 | 0 | 0 |
EnforceHTTPS
If Request protocol
Operator | Value |
---|---|
Equals | HTTP |
Then URL Redirect
Type | Protocol |
---|---|
Found (302) | HTTPS |
Per questa regola è necessario un sito con supporto HTTPS attivo e certificato SSL valido.
Compressione Dati
Una sezione importante per le performance del sito si trova nella sezione Compression
About This Feature: Compress files on the fly via CDN to reduce size and improve performance. After the feature is on, you may modify the MIME types list to fine tune which content formats to compress. Already compressed files such as jpeg images or mp3 audio may not see much additional gain from compression. Note that files are only compressed on the fly by the CDN if it is served from CDN cache. Compressed by the origin can still be delivered compressed to the client without being cached.
Selezionando ON attiverete questa funzionalità e sotto avrete l’elenco dei Formats to compress e personalmente ho aggiunto
- image/svg+xml
- image/jpeg
- image/png
Cosi facendo ho migliorato le performance all’interno del sito.
Purge CDN
I contenuti che il CDN memorizza per poi servirli ai nostri visitatori possono essere cancellati prima della scadenza reale.
Per farlo dovrete andare nella sezione Overview e selezionare l’icona Purge.
A questo punto potrete decidere se:
- Cancellare tutto il contentuto tramite Purge all
- Cancellare dei path specifici inserendone uno per riga
Una volta decisa la strada, in basso troverete il pulsante Purge
Importante: essendo il CDN distribuito a livello mondiale, la cancellazione del contenuto può richiedere anche due-tre minuti.
CDN & Geo-filtering
Prima di chiudere vorrei segnalarvi un punto molto importante che potrebbe influire su un risparmio economico alla fine del mese. Si tratta del Geo-filtering ossia chi può accedere o chi no al proprio sito.
Abbiamo tre opzioni possibili:
- Not set: tutti possono accedere
- Allow: indicare le nazioni che possono accedere (e tutte le altre verranno respinte con errore 403 se non ricordo male)
- Block: indicare le nazioni che non possono accedere (e tutte le altre verranno ammesse in automatico)
Perchè questa impostazione può incidere sul costo mensile?
Prendiamo il sito di un ristorante o fiorista di paese. Non ha interesse a darsi visibilità da tutto il mondo. Per lui basta solamente un Allow/Italy e tutto il resto verrà escluso.
Oppure prendiamo una società che opera in tutto il mondo tranne una serie di nazioni per motivi politici. A quel punto servirà un Block selezionando la lista delle nazioni dalla tendina.
Interessante come opzione, no?
Nota finale
Utilizzo i CDN da anni e mi sono sempre trovato bene. Ho provato dei CDN free. Ho provato dei CDN a pagamento. Sui miei siti li ho abbandonati entrambi e sono passato ad affidarmi all’infrastruttura Azure/Microsoft ottenendo un miglioramento di performance e spese minori.
Ora -se sei arrivato sino qua in fondo apprezzando l’articolo- mi farebbe piacere una condivisione da parte vostra sui social.