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:

https://CDNNameBlaBlaBla.azureedge.net

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 MicrosoftS1 Standard VerizonS2 Standard AkamaiP1 Premium Verizon
Custom domain SSLCustom domain SSLCustom domain SSLAll standard features
Content PurgeContent Purge/LoadContent PurgeToken authentication
CompressionCompressionCompressionPerformance analytics
Geo-filteringGeo-filteringGeo-filteringRealtime analytics
Realtime analyticsCore analyticsMedia optimizationMobile device rules
Rules engineCore analyticsCustom rules engine
Web Application FirewallDynamic deliveryCache/Header settings
HTTP Raw LogURL 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
  • 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 BehaviorDaysHoursMinutesSeconds
Set if Missing7000

EnforceHTTPS

If Request protocol

OperatorValue
EqualsHTTP

Then URL Redirect

TypeProtocol
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.