I siti pigri sono i più veloci

Ho messo da parte in questi anni un bel po’ di materiale e documentazione relativi alla performance e ottimizzazione dei siti web, sia per quanto riguarda il cosiddetto lato server, sia per quello che viene chiamato front end.

Verrà – spero presto – il momento di compilare un elenco ragionato di tutte queste risorse (potete farvene un’idea visitando la sezione optimization del mio delicious), ma ora mi limito a citare un articolo che propone in modo molto chiaro uno dei nodi fondamentali da affrontare. Si tratta di Lazy web sites run faster scritto da Gojko Adzic.

Per aumentare le performance dei siti potete investire sull’hardware, quindi più processori e sistemi più veloci, migliore connettività, infrastruttura moderna. Vi accorgerete però che anche così facendo il web server fatica, per architettura, a gestire un sito il cui codice non sia ottimizzato.

Potete allora dedicarvi alla riscrittura (o refactoring) del codice per renderlo più veloce. Anche qui però arriverete ben presto a un limite.

Il segreto, secondo Gojko, sta invece nella progettazione di un sistema che si preoccupi di

  • delegare le operazioni più complesse a processi che girano in background;
  • non comunicare con sistemi esterni in modo sincrono, non importa quanto velocemente;
  • essere pigro: meglio lasciare per dopo tutto quello che non ha necessità di essere eseguito al momento.

Aggiungerei anche di eliminare le elaborazioni inutili, come per esempio l’esecuzione a ogni richiesta di interrogazioni esose (come quelle verso i database) per contenuti che non cambiano quasi mai. In questo caso potrebbe essere interessante sperimentare qualche meccanismo di caching.

Se ripenso ai colli di bottiglia dei progetti che ho visto da vicino, la maggior parte poteva essere evitata rimandando operazioni non immediatamente essenziali, come per esempio:

  • l’invio di un messaggio di posta elettronica di conferma;
  • la trasformazione di file (soprattutto in formato XML);
  • la comunicazione con sistemi di gestione;
  • il calcolo di statistiche.

Capita di trovare anche online degli esempi che fanno riflettere. Ogni volta che utilizzo la funzione “all time” di Feedburner per analizzare il traffico complessivo dei miei feed mi trovo ad aspettare almeno una decina di secondi. Probabilmente il sistema sta elaborando il consuntivo in tempo reale, quando avrebbe potuto farlo a priori. Non c’è nulla di male ad aspettare anche se a volte, per carico del server, viene restituito un timeout. Forse non proprio il modo ideale per gestire questa funzionalità, anche se utilizzata da una minoranza.

Dick Costolo – Launch late to iterate often

Quella di Costolo, che ha alle spalle l’acquisizione da parte di Google di Feedburner, è una delle sessioni più ricche dell’ultima giornata. Si chiude in bellezza.

Ecco qualche appunto tratto dalla sua vulcanica (e concentrata!) presentazione.

Nel fondare una azienda, meglio che tutti i soci abbiano la stessa percentuale, soprattutto se verrà acquisita, perché evita degli attriti. Inoltre, meglio avere il 10% di un’azienda che vale 100 che il 100% di un’azienda che vale 5

Non si fanno più i business plan: per Feedbruner non sono stati fatti. Sono cose che servono per dire cosa ci sarebbe piaciuto fare, piuttosto che quello che si fa. Anche gli investor non li leggono più.

Opportunità di mercato. E’ impossibile capire le dimensioni del mercato a cui ci si rivolge. E’ anche impossibile verificare se c’è richiesta di mercato oppure no, perché (prende come esempio sempre Feedburner) oggi le cose con più successo sono quelle per cui non c’è richiesta di mercato.

Secondo Costello non ci sono benefici particolari nell’essere localizzati in Silicon Valley, se non per una questione di “buzz”, cioè perché una società con sede lì attira l’attenzione (una questione di marketing di breve periodo, quindi).

Non raccontiamocela: per far partire un’azienda i soldi servono, eccome. Fate le vostre previsione: spenderete più del doppio delle vostre stime. Quindi, raccogliete tutto quello che potete.

Fare crescere l’azienda insieme significa condividere i successi. Tutti i dipendenti devono avere lo stesso trattamento contrattuale, soprattutto se condividete le quote societarie.

Assunzioni. Cercate persone con ottime competenze per area di esperienza, ma non con competenze troppo specifiche. Altrimenti, se il mercato cambia, se ne andranno o non le potete riposizionare. In molte organizzazioni le gerarchie sono controproducenti, perché introducono burocrazia. Di contro devono essere sviluppate delle metriche di performance condivise con chi le deve fare. In questo modo è semplice e oggettivo riuscire a valutare i risultati personali.

Lanciare il prodotto tardi e iterare di continuo. Non rilasciare mai prodotti con problemi perché bisogna andare verso il mercato. Anzi, vanno previste a priori eventuali funzionalità che potrebbero rivelarsi vincenti. Ad esempio dotandosi di una architettura che sia estensibile in futuro.

Le architetture aperte, inoltre, possono essere influenzate facilmente dalla richiesta di mercato. E attaccano anche la concorrenza, che si trova a rivaleggiare non con un prodotto in scatola, ma con un’architettura estensibile.

Questo intervento è stato scritto in live blogging dalla conferenza Future of Web Apps di Londra, il 3 e 4 Ottobre 2007. Leggi tutti gli interventi di Fucinaweb dal FOWA

Feedburner e Google: c’è modo e modo

Davvero brutta la precisazione che compare al login di FeedBurner da qualche giorno, dopo l’acquisizione di Google.

Eccola tradotta in italiano con qualche libertà:

Gli account di FeedBurner non saranno cancellati come risultato dell’acquisizione di Google. Avete 14 giorni di tempo, fino al 15 Giugno 2007, per decidere di non consentire il trasferimento del vostro account verso Google. Se non lo fate esplicitamente, i diritti di gestione dei vostri dati passeranno da FeedBurner a Google. Il mancato trasferimento terminerà invece il vostro accordo con FeedBurner, porterà alla cancellazione del vostro account FeedBurner, dei feed, di tutte le statistiche con relativo archivio, e non trasferirà i vostri dati a Google.

Accidenti, come stride questa scritta nelle pagine di FeedBurner, solitamente piene di ironia e con un copywriting studiato ad arte.

Non si poteva scrivere qualcosa del tipo:

Ehi, c’è un importante aspetto che riguarda il tuo login e l’acquisizione di FeedBurner da parte di Google. Hai 14 giorni di tempo per decidere. Clicca qua per i dettagli.

Ma anche se avesse dovuto rimanere tutto in una pagina, si sarebbe sicuramente potuto studiare qualcosa di meno arrogante, indipendentemente dall’importanza dell’informazione.