Le performance dei siti ad alto traffico

Tra gli aspetti più importanti di un sito web c’è sicuramente la performance del sito, ovvero la percezione da parte di un utente della velocità con cui il sito risponde ai propri comandi.

Si parla di percezione, perché grazie ad opportuni accorgimenti, quali ad esempio porre il contenuto più importante all’inizio della pagina, anche in caso di connessioni lente si può limitare il malcontento dei visitatori.

Esitono diversi testi che aiutano a ottimizzare il proprio sito; ho personalmente apprezzato qualche anno fa la lettura di “Speed up your site” di Andy Kind che fa una disanima delle tecniche per rendere più veloce il caricamento della pagina (riduzione del codice, compressione, tecniche per il salvataggio delle immagini, ecc.).

Da tempo cercavo però qualcosa che fosse stato scritto da chi (e per chi) realizza siti con tanto traffico, perché necessitano di accortezze tutte particolari.

Per puro caso mi sono imbattituto nella presentazione di un tecnico Yahoo! del 2005 che contiene ottimi suggerimenti e anche qualche conferma per quanto riguarda le strategie da adottare per i grossi siti.

Nella presentazione i contenuto dei siti sono divisi in 3 macrocategorie, in base alla frequenza di aggiornamento:

  • HTML: il contenuto a più alta variazione
  • CSS e Javascript, che cambiano, ma non molto spesso
  • Immagini, che variano raramente

In virtù di questo ragionamento, sono indicati alcuni suggerimenti interessanti:

  • è bene istruire il server e i proxy perché non aggiornino il contenuto delle immagini del sito. Questo vuol dire che i redattori che caricano i contenuti dovrebbero, in caso di modifica delle immagini, caricarne altre con nome diverso
  • un suggerimento è quello di tenere i contenuti non dinamici in uno o più server dedicati, e fare in modo che per l’accesso a questi contenuti non vengano creati cookie, così da rendere molto più efficiente la comunicazione tra browser e server
  • vale la pena, nel caso di contenuti privati di un utente registrato (come per esempio caselle di posta elettronica web based), utilizzare URL diversi per ogni utente, così da permetterne il caching da parte dei proxy, ma evitare che un utente possa erroneamente accedere al contenuto privato di un altro
  • nel caso di contenuti ad altra variabilità, come i banner, è bene arricchire l’URL con numeri casuali, così da renderne altamente improbabile il caching da parte del browser o dei proxy 

I manuali di Ruby on Rails

Aggiornamento 9/10/2007: Sitepoint ha reso disponibile per 60 giorni, gratuitamente, un manuale per lo sviluppo Ruby on Rails.

Sono oramai decine i siti web che parlano della piattaforma di sviluppo Agile per il web Ruby on Rails, e matura è ormai la bibliografia disponibile negli scaffali.

Tra i diversi testi in commercio in libreria, e scaricabili in formato Pdf, mi sento di consigliarne un paio relativi a Ruby on Rails, più un manuale di riferimento per Ruby.

Ruby for Rails – Manning

Pubblicato da Manning, questo libro si rivolge specificatamente a chi vuole impare Ruby, il linguaggio di programmazione creato nel ’94 da Yukihiro Matsumoto, per poi poter applicare i concetti appresi in Rails. L’indea è interessante, e se non avete troppa fretta di partire con lo sviluppo in Rails questa è la soluzione che vi consiglierei di percorrere. Ulteriori approfondimenti nella scheda del libro sul sito dell’editore Manning.

Programming Ruby – The Pragmatic Programmers

Questa è invece una vera e propria guida al mondo Ruby, dove Rails non è mai esplorato. Si tratta di una manuale di riferimento da tenere a portare di mano per i momenti di incertezza.

Scheda del libro

Agile Web Development with Rails

Uno dei primi libri a occuparsi di Ruby on Rails, Agile Web Development with Rails ha avuto una interessante gestazione online come uno dei primi Beta Book, un formato che ha permesso di raccogliere molti suggerimenti e correzioni che sono stati successivamente inseriti nella copia stampata del testo. Probabilmente il miglior libro a trattare questo argomento.

Scheda del libro

Ajax in action

Il termine Ajax è stato coniato da un anno e non si sono fatti attendere i pesanti manuali che spiegano tutto, ma proprio tutto, su questa architettura.

Di Ajax in Action, pubblicato da Manning, ho fondamentalmente apprezzato il modo con cui sono affrontati, fin dalle prime pagine, gli argomenti.

Invece che cominciare a scrivere qualche banale Hello Word con Javascript gli autori hanno infatti preferito chiarire subito che sviluppare applicazioni Ajax è un compito che richiede competenze specifiche.

Per questo motivo si parla prima di tutto di refactoring, di come utilizzare il più possibile Javascript come linguaggio orientato agli oggetti, e di come utilizzare i pattern di sviluppo in soluzioni Ajax. Crane e soci insegnano cioè come partire con il piede giusto.

Imparare da subito questi concetti ripaga subito dopo, perché gli esempi presentati, anche se semplici, non sono mai banali, e consentono anzi di riflettere un bel po’ su come sviluppare nel modo corretto.

L’unico appunto che mi sento di fare (una nota più che un appunto), è che va bene capire come funziona l’architettura Ajax. Ma forse più che voler approfondire più di tanto quanto presentato nel testo, l’importante è capire che Ajax sarà presto integrato – come ho già detto – all’interno dei diversi framework di sviluppo.

Si spera che in questo modo da produttività nell’utilizzare questo tipo di soluzioni sia destinata ad aumentare sensibilmente.

Ajax in Action – di Dave Crane, Eric Pascarello, Darren James, pubblicato da Manning, 640 pagine