collective.warmup è uno strumento che consente di riscaldare la cache di un sito web leggendo un file di configurazione e passando in rassegna una serie di pagine in maniera automatizzata.

Come riscaldare la cache del nostro CMS con collective.warmup

collective.warmup è uno strumento che consente di riscaldare la cache di un sito web leggendo un file di configurazione e passando in rassegna una serie di pagine in maniera automatizzata.

Quando avviamo un'applicazione web, per esempio un CMS, è una buona pratica riscaldare il sistema di cache sulle pagine principali del sito. Questa operazione consente di avere subito risposte più veloci da parte dell'applicazione e può essere automatizzata in vari modi.

Per rendere questa procedura maggiormente configurabile, replicabile e controllabile abbiamo realizzato collective.warmup.

Come funziona

collective.warmup può essere installato come un qualsiasi pacchetto python tramite il seguente comando:

$ pip install collective.warmup

una volta installato possiamo creare un file di configurazione che contiene gli url di cui vogliamo riscaldare la cache. Es.:

[warmup]
enabled = True
sleep = 2
base_url = http://abstract.it
logfile = /path/to/warmup.log

urls =
    Home page
Prodotti

[Home page]
path = /
max_attempts = 2
check_exists =
    Welcome
...


[Prodotti]
path = /prodotti
max_attempts = 2
check_exists =
    Products
...

dopo aver salvato il file warmup.cfg possiamo quindi eseguire lo script warmup in questo modo:

$ warmup warmup.cfg

collective.warmup leggerà le varie parti del file di configurazione (Home page, Prodotti... ecc) e richiamerà le pagine web rappresentate.

Una volta eseguito il programma possiamo analizzare il suo output all'interno del file di log (in questo caso warmup.log).

Infine possiamo far eseguire il warmup ad un task di CRON per fare in modo che la procedura sia automatizzata e far processare l'output da un sistema di analisi dei log per consentirci di ricevere le notifiche di esecuzione.

Uso con Zope e Plone (cache interna)

Siccome con Plone abbiamo anche un sistema di cache interna potremmo eseguire il warmup richiamando direttamente l'istanza di Zope.

Possiamo quindi configurare Zope per fare in modo che esegua il warmup in automatico ad ogni avvio. In questo modo:

[buildout]
...
parts =
...
warmup


[instance]
...
eggs +=
    collective.warmup
environment-vars +=
    WARMUP_BIN ${buildout:directory}/bin/warmup
    WARMUP_INI ${buildout:directory}/warmup.ini


[warmup]
recipe = zc.recipe.egg:scripts
eggs = collective.warmup

Considerazioni finali

La pubblicazione di un'applicazione sul web consta di una serie di ottimizzazioni da effettuare per renderla maggiormente fruibile al pubblico per cui è stata pensata. La configurazione di un sistema di warm up è quindi un passo in più per garantire ai nostri visitatori la giusta risposta alle loro aspettative.

Ulteriori dettagli per la configurazione e l'installazione li potete trovare qui:

Aiutateci a migliorarlo

Il codice di collective.warmup si trova su github a questo indirizzo: https://github.com/collective/collective.warmup puoi aiutarci a migliorarlo attraverso la segnalazione degli errori o suggerendo nuove funzionalità.

Il codice è rilasciato sotto licenza GPL ed è quindi Open Source affinché tutti possano utilizzare liberamente il prodotto e contribuire al suo miglioramento.

Puoi anche condividere con noi le tue idee ed esperienze sul deploy di un'applicazione web; facci sapere cosa ne pensi.

Share this on

Share |

On same topics

Commenti

comments powered by Disqus