Как построить инфраструктуру большого проекта?
Вопрос из серии пальцем в небо.
Не меряется нагрузка в посетителях. Она меряется в rps и *bit/s. Также нужно знать прожорливость вашего ПО к io+ram+cpu иногда еще и gpu.
Количество серверов, способы распределения нагрузки, всякие репликации бд, распределения между ДЦ подбираются по конкретный проект.
Не бывает в природе такого, что вот так хренак и у вас откуда не возьмись 1кк активных юзеров, ну разве что событийные проекты типа прямых трансляций. Именно по этому рекомендую начать с малого, а дальше оптимизировать и распределять нагрузку между серверами там, где это необходимо. Например, у вас фото сток: cdn - это то, что вам потребуется. У вас месенджер - стоит выделить кучку серверов на поддержание сокетов с пользователями + хорошо прработать историю сообщений.
1. Ставим линукс и увеличиваем кол-во постоянных соединений (запуск из под root: su/sudo): echo 2000000 > /proc/sys/fs/nr_open
ulimit -n 20000002. А затем, настраиваем anti-ddos.
3. Ну и создаём CDN-кластер, если планируются разные гео-зоны и/или отказоустойчивость.
4. Ставим защиту на скрипты веб-сайта: здесь
PS: В зависимости от типа и сложности: можно использовать Docker на продакшне или же только для development-среды.