Esistono due strategie generali per gestire le ondate di traffico: aumentare la capacità e ridurre i costi.
L'aumento della capacità significa il ridimensionamento automatico, di cui tutti erano molto entusiasti quando i cloud pubblici sono diventati disponibili per la prima volta. Nel suo senso più elementare, questo avvierà più webserver per te in base al carico e li aggiungerà a un bilanciamento del carico, ma poiché può essere una seccatura da gestire, ci sono anche più soluzioni automagiche, come Elastic Beanstalk.
Il problema con l'espansione automatica della capacità è che anche l'espansione automatica delle bollette - 10 volte il traffico normale significa 10 volte i server significa 10 volte il denaro che devi pagare. Ecco perché, sebbene sia una strategia utile da tenere a mente, penso che dovresti sempre iniziare a vedere quanto puoi imbrogliare.
Per truffa, intendo cache, che si basa sull'idea che la maggior parte delle volte è possibile fornire agli utenti dati leggermente obsoleti e non se ne accorgeranno, e ciò può farti risparmiare enormi quantità di tempo. Immagina di avere una pagina che decidi che va bene se è scaduta da cinque secondi e ottiene 20 req / s. Senza memorizzazione nella cache, esegui quel calcolo 1200 volte al minuto, mentre con la memorizzazione nella cache sono solo 12. Puoi vedere come questo può fare una differenza enorme.
Esistono ovviamente molti tipi di cache e un sito Web di successo ne utilizzerà diversi. Ma per il tuo caso d'uso, ci sono due opzioni abbastanza buone e facili.
Il primo è rendere il sito completamente statico. Questo presuppone che tu possa farlo, ma se puoi, allora hai solo Nginx che serve direttamente l'html e che può servire tonnellate di richieste senza sudore.
Se hai bisogno di un certo livello di dinamicità, fare un po 'di cache a tutta pagina è una buona opzione. Nginx ha alcune capacità per farlo, ma mi piace davvero Varnish per la sua flessibilità.
Qualunque opzione o opzioni segua, assicurati di eseguire i test di carico per confermare che l'hai impostato correttamente; a volte, riparare un punto espone un nuovo collo di bottiglia.