@niknik_ykt
Самоучка. Энтузиаст.

Как подготовить интернет-магазин к боевому старту?

Очень нужны напутствия опытных разработчиков. Хочу создать интернет магазин для регионального пользователя, в основном жителей столицы. По данным переписи в регионе около 1 млн.чел, а в столице примерно 300 тыс. Как расчитать примерный трафик, чтобы произвести тест на нагрузки, если интернет магазин торгует ширпотребом и регулярно запускает разные акции с баллами и промокодами? Хотелось бы еще узнать про роль PWA в нагрузках на сервер. По логике правильная настройка кэширования должна снять значительную часть нагрузок, но это теория и она только в моей голове (и в статья по интернетам). В реальности же не знаю как это все ведет себя в "боевых" условиях за неимением соответствующего опыта. Боюсь попасть ногами в жир, т.к. сайт планируется на долгую перспективу.
Какие меры можно принять, кроме самых элементарных - iptables, fail2ban, capcha, скрытие основного ip, записи в robots.txt? И есть ли разница между списком нежелательных ботов и списком ботов, которым можно в robots.txt? Что можно предпринять с помощью .htaccess?
Думал про cdn, но, помоему, масштаб самого сайта этого не требует. Целевая аудитория нажодится в одном регионе.
На счет DDOS атак. В сторону cloudflare еще не смотрел. Отложил на крайний случай. Думаю в нормальных условиях (без атак) PWA поможет справиться со значительным потоком легитимных юзеров.

Интересуют способы реализуемые самостоятельно на своем сервере своими руками.
  • Вопрос задан
  • 288 просмотров
Пригласить эксперта
Ответы на вопрос 3
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
Давайте обратимся к классикам, например применим метод Ферми для оценки топа посещаемости ресурса. Естественно все приведенные цифры с некоторой погрешностью...

Пусть в регионе проживает 1КК людей, из которых 20% это несовершеннолетние, 20% это люди пожилого возраста, то есть 2 категории, которые с огромной долей вероятности сервисом пользоваться не будут. Так же, можно сразу выкинуть 15% проживающих за чертой бедности, и еще примерно столько же (15%) находящихся в граничном с бедностью состоянии.

Из оставшихся 30% (300К)охват рекламой/слухами может составить около 50% в столице, и 30% в области, пусть будет 40% общего охвата, хотя это скорее всего завышенный показатель. То есть в остатке потенциальных знающих о вашем сайте около 130К, причем это цифра не на старте, а примерно спустя пол года-год.

Предположим что магазин имеет не нишевую специализацию, а достаточно широкий ассортимент, заинтересующий 70% от потенциальных ознакомившихся с ним людей (это оооочень оптимистично, но допустим). Из них 30% "отложат на потом" посещение ресурса, и больше о нем не вспомнят, или зайдут 1-2 раза, что на общую статистику не влияет. В сухом остатке имеем около 40-70К потенциальных посетителей. Предположим, что прошло пол года, и все они равномерно росли до этой цифры, и посещали магазин ну пусть 3 раза в месяц.

В итоге в месяц будет 70к*3 = 210К визитов, визит примерно из 5-7 страниц, итого = 6*210К = 1 260 000 хитов в месяц.
Делим на 30 дней = 42 000. делим на 12 активных часов, получаем 3500 хитов в час, 58 хитов в минуту, то есть 1 хит в секунду. В пике пусть будет 6 рпс.

Вывод: слабенький церлерон и винт на 7200 rpm вполне справится с вашей мегаубервафлей...

Если ваши цифры не совпадают с моими - просто пересчитайте самостоятельно всю цепочку, будете знать примерную нагрузку.
Ответ написан
@vitaly_il1
DevOps Consulting
Оставим в стороне защиту от атак, т.к. по-моему это нереально сделать без использования внешнего сервиса.
Остается
- мониторинг - советую подключить site24x7 или подобный сервис для мониторинга URL (включая время ответа) и самого сервера
- бэкап и восстановление - потренироваться в этом и дважды проверить что все работает
- sizing - поговорим подробнее

По данным переписи в регионе около 1 млн.чел, а в столице примерно 300 тыс.

Очевидно, что кол-во пользователей может быть от нуля до 100 миллионов (если вдруг весь СНГ набросится).
Как прикинуть возможное кол-во? Если можно найти аналитику аналогичных сервисов - отлично. Если нет - я бы взял с потолка базу в 100тысяч пользователей. Соответсвенно получим нагрузку в минуту-секунды. Осталось только просимулировать - с помощью готовых сервисов (loadimpact.com и т.п.) или готовых программ (gettaurus.org, Locust.io и т.п.).
Ответ написан
Комментировать
Alex_Geer
@Alex_Geer
System Engineer
- Мониторинг
- Бэкап (с обязательной проверкой что всё бэкапится и восстанавливается)
- Нагрузочное тестирование
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы