Il consiglio su Come fare il tuo carico di lavoro dal database? dovrebbe darti un sacco di materiale su cui riflettere.
Oltre a ciò, prestare attenzione a eventuali ottimizzazioni specifiche della piattaforma standard. Ad esempio, per le applicazioni mod_perl è preferibile avere un proxy inverso di fronte al tuo sito web che serve immagini statiche e che causa i processi mod_perl per non perdere tempo a parlare con client lenti.
Dovresti utilizzare anche load balancer standard, più server web, ecc.
Oltre a ciò, sii molto attento a mantenere la tua architettura il più semplice e diretta possibile. Ho visto persone creare sistemi orribilmente complessi con più livelli di RPC perché "hanno bisogno di scalare" e poi trovano che hanno bisogno di un sacco di hardware a causa del sovraccarico di RPC. Con un'architettura adeguata, dovresti essere in grado di avere un sito tra i primi 1000 siti Web più frequentati utilizzando solo una manciata di server web. Se la tua architettura non è in grado di farlo, le probabilità sono molto buone che il problema è che hai una cattiva architettura, e non che tu abbia troppi utenti.
Detto questo, se hai un sito web molto, molto complesso, con un traffico folle, devi fare qualcosa di molto più complesso. Avrai voglia di distribuire tutto. E vorrai stratificare le cose con le chiamate RPC ai servizi di back-end che a loro volta fanno la stessa cosa. Le chiamate RPC dovrebbero essere il più efficienti possibile. (Google utilizza protobuf per questo. NON usa XML. Se vuoi che sia leggibile, usa qualcosa come JSON, fidati di me.) Inoltre devi assolutamente avere un monitoraggio molto sofisticato sui tuoi sistemi. Se le pagine si rallentano, è necessario essere in grado di tenere traccia di quale chiamata RPC profonda 3 livelli è lenta. Inoltre, se un particolare layer RPC si sta sovraccaricando o rallentando, hai bisogno di strumenti per rilevarlo automaticamente e rintracciare da dove proviene il problema.
Fidati di me quando dico che questo è un problema architettonico complesso. (Ho visto l'infrastruttura di Google per gestirlo. In teoria è molto più semplice della pratica.) Ti prego fidati di me quando ti dico che non vuoi aprire questa lattina di worm fino a dopo aver dimostrato un traffico volume dove ha senso. Se ci provi, probabilmente finirai per essere ancora un'altra società che ti dà una pacca sulla spalla per consegnare con successo 300.000 contatti / ora con 50 server web, senza rendersi conto che 1 dovrebbe essere sufficiente.