Steve Souders (Yahoo!) – High Performance Websites

Di Steve Souders di Yahoo! non vedo l’ora di leggere il manuale uscito per i tipi di O’Reilly, High Performance Web Sites. Per intanto ho avuto modo di leggerne qualche estratto, come le 14 regole per aumentare le prestazioni di un sito.

E in effetti Souders si limita a percorrere quanto già riportato nel documento, peccato!

Quello che gli ingegneri di Yahoo!, dopo diversi test, sono riusciti a stabilire, è che ottimizzare un sito web vuol dire soprattutto lavorare a livello di frontend, cioè a livello di client, di quello che viene inviato e interpretato dal browser.

L’ottimizzazione del frontend, spiega Souders, è prioritaria rispetto a quella del backend (database, ottimizzazione del codice, infrastruttura hardware), perché incide maggiormente sull’esperienza dell’utente.

Concordo, ma sono convinto che questo vale solo se l’infrastruttura è stata progettata e scritta con grande professionalità, così da ridurre i colli di bottiglia. Se così non è anche il backend riesce a farsi sentire.

Souders afferma, e anche qui concordo, che mettere mano al frontend è più semplice rispetto che farlo lato backend.

Un interessante esperimento condotto dal team di Souders ha dimostrato come circa il 50% degli utenti che navigano sui siti Yahoo! (e, visto il network, si può facilmente generalizzare all’intero web) svuotano ogni giorno (o hanno impostato il browser per farlo) la cache del browser.

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

Matt Mullenweg (WordPress) – The architecture behind wordpress.com

Aggiornamento: sono online le slide del suo intervento.

Matt Mullenweg di WordPress (lo facevo più giovane), ha parlato delle scelte di architettura, e non solo, di wordpress.com, l’hosting di wordpress.
Secondo Mullenweb architettura vuol dire scalabilità. E scalabilità applicata a più contesti:

  • la piattaforma
  • il business
  • le persone (chi lavora al progetto)

Parla anche un po’ di statistiche: in settembre 2006 wordpress.com aveva 18 milioni di utenti, oggi ne ha 88 milioni.

La piattaforma

Sono impiegati per wordpress.com dei mini-cluster, 7 per la precisione, dal costo di 1500 dollari al mese, 2 bilanciatori (2 GByte di memoria), 2 database (4 GByte di memoria, dischi veloci, RAID, setup di Mysql master + slave), 3 web server (CPU veloce, 2GByte di memoria, un Apache configurato molto molto bene).

Per wordpress.com è stato uno strato di accesso ai dati dedicato e più prestazionale, HyperDB.

Tutto il codice di wordpress.com, ma anche tutti i file di configurazione, sono posti sotto subversion per la gestione delle versioni.
Per facilitare il bilanciamento e la scalabilità, ogni operazione compiuta su wordpress.com è stateless.

Il sito ha 300 richieste al second.

Business

Non gli è ancora molto chiaro quale sia il modello di business applicabile a wordpress.com. Per il momento quello che riescono a far capire è sono in grado di realizzare del software che funziona molto bene. Ad alcuni utenti hanno proposto upgrade al servizio, come per esempio nomi di dominio dedicati. Stanno valutando la possibilità di impiegare pubblicità.

Persone

Secondo Matt great people = rich environment + worthwile problems

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

Dion Almaer (ajaxian.com)- Hot to take your app offline

Dion parla di Google Gears, la tecnologia che permette di portare offline dati e applicazioni web.

Parte dalla considerazione che in Palo alto si perde la connettività molto spesso. Portare l’applicazione offline può eliminare delle barriere, ma non solo. Portare le elaborazioni offline permette anche di aumentare la performance per l’online.

A Google si sono chiesti come portare le applicazioni offline senza risovere semplicemente i problemi di Google stessa; per questo Google Gears è stato rilasciato come open source (new bsd).

La filosofia su cui si basa può essere così sintetizzata:

  • usare lo stesso URL per applicazione online e offline
  • la transizione la versione online e offline dell’applicazione deve essere trasparente
  • dev’essere possibile usare dati locali anche se si è online
  • dev’essere disponibile a tutti su tutte le piattaforme

Google Gears è qualcosa di più rispetto a Ajax, ma i concessi sono tra loro simili: si tratta di fare per le applicazioni offline quello che XMLHttpRequest fa le per applicazioni web (per questo è simile, come concezione, a Ajax).

I componenti:

  1. LocalServer: che gira nel browser
  2. Database: un database relazionale “fully-searchable”, non file di testo
  3. WorkerPool: possibilità di gestire thread indipendenti dal browser

Database

Il database è creato usando SQLite. Su questa base sono stati aggiunti dei livelli di astrazione successivi.

GearsORM: gestire relazione tra oggetti del database come fosse Hibernate.

GearShift: gestire la migrazione di tanti database negli utenti quando si fanno cambiamenti: db migration come il rails.

Local Server

E’ semplicemente un mini server web che ascolta sulla porta 200 e 304.

Worker Pool

Risponde alla necessità di avere diversi thread di processo separati dal browser, e sicuri. In questo modo il Javascript gira in background, non nel contesto del browser.

Altro

E’ stata scritta un’estensione per criptare i dati salvati nel client. E’ stato aggiunta la ricerca full-text.

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