Існує дві загальні стратегії боротьби зі скоками руху: збільшення потужностей та зниження витрат.
Підвищення пропускної здатності означає автоматичне масштабування, від якого всі були дуже схвильовані, коли публічні хмари вперше стали доступними. У самому основному сенсі це створить для вас більше веб-серверів на основі завантаження та додасть їх до балансиру навантаження, але оскільки це може бути більшим для управління, є і більш автоматичні рішення, як, наприклад, Elastic Beanstalk.
Проблема з автоматичним розширенням ємності полягає в тому, що його автоматизоване розширення рахунків - 10-кратний звичайний трафік означає, що 10-кратний сервер означає 10-кратну суму грошей, які потрібно заплатити. Ось чому, хоча це корисна стратегія, яку потрібно пам’ятати, я думаю, що слід завжди починати з того, як бачити, як можна обдурити.
Під обманом я маю на увазі кеш, який спирається на думку, що більшу частину часу ви можете давати користувачам застарілі дані, і вони не помітять, і це може заощадити вам величезну кількість часу. Уявіть, що у вас є сторінка, для якої ви вирішите, що це нормально, якщо вона застаріла п'ять секунд, і вона отримує 20 рек / с. Не кешуючи, ви обчислюєте цей розрахунок 1200 разів на хвилину, тоді як при кешуванні - лише 12. Ви можете бачити, як це може призвести до величезної зміни.
Звичайно, існує багато типів кешування, і успішний веб-сайт використовуватиме декілька з них. Але для вашого випадку використання є два досить хороших та простих варіанти.
Перший - зробити сайт повністю статичним. Це передбачає, що ви можете це зробити, але якщо зможете, то у вас просто Nginx обслуговує html безпосередньо, і він може обслуговувати тонни запитів без поту.
Якщо вам потрібен певний рівень динаміки, то хороший варіант кешування на повній сторінці. Nginx має певні можливості для цього, але мені дуже подобається Varnish через його гнучкість.
Який би варіант чи параметри ви не використовували, переконайтесь, що ви виконали тестування навантаження, щоб перевірити, чи правильно ви його встановили; іноді виправлення однієї плями відкриває нове вузьке місце.