При работе с онлайн-ресурсами, будь то сайт, портал или агрегатор, основная задача нередко сводится к тому, чтобы повысить трафик, загнать как можно больше людей на свою площадку. Трафик конвертируется в деньги, так что ничего удивительного тут нет. Но в погоне за трафиком часто забывают про техническую сторону вопроса, а это может выйти вам боком — да так, что мало не покажется. Мы собрали ряд рекомендаций, которые помогут обеспечить бесперебойный рост и развитие вашей онлайн-площадке.
1. Предупредить падение производительности
Первое, с чем вы рискуете столкнуться при увеличении нагрузки на сайт, это падение производительности. В нормальном режиме страница должна открываться за 1-2 секунды, но при росте нагрузки это время может увеличиться до 5-10 секунд и больше. При этом 10 секунд — это психологический барьер, после которого пользователь просто решит, что сайт не работает.
Среди наших клиентов был информационный портал с серьезным трафиком — около миллиона уников в месяц. При этом сайт был на стандартной CMS. Проблема такого решения в том, что оно должно быть универсальным, и из-за этого код CMS перегружен. В результате при росте трафика нашего клиента система не выдерживала, и сайт жутко тормозил. Чтобы решить проблему, достаточно было немного кастомизировать CMS под этого клиента, расставив в базе нужные индексы и убрав лишние джойны из запросов — и сайт стал летать. Впрочем, чаще приходится иметь дело не с кодом, а с неправильными настройками серверов.
2. Предупредить падение серверов
Технически, любой онлайн-ресурс представляет собой набор серверов, отвечающих на запросы пользователей. Если не подготовить эти серверы к приему нагрузки, например, после запуска рекламной кампании, это может закончиться катастрофой. Серверы могут упасть, начать «глючить» и настолько увеличить время отклика страницы, что пользователь уйдет от вас навсегда.
Чтобы минимизировать этот риск, обычно необязательно покупать новое «железо», достаточно хорошей настройки серверов. Прежде чем запускать рекламу, надо подать тестовую нагрузку и проанализировать параметры системы, выявляя слабые места. Важно, чтобы профиль тестовой нагрузки был адаптирован под конкретный сайт, чтобы она имитировала реальный рост трафика на конкретные страницы.
Если нагрузка в системе распределяется на несколько серверов, необходимо учесть вероятность отказа одного и резкого роста нагрузки на другие серверы. Один из наших клиентов предоставляет услуги по доступу к WiFi для кафе и ресторанов. У них была система из двух облаков, между которыми распределялась нагрузка. В какой-то момент они подключили крупную сеть ресторанов, и один из серверов «упал». Нагрузка автоматически переключилась на второй сервер, но он не был на нее рассчитан и тоже рухнул. В итоге сервис не работал несколько часов. Чтобы предупредить такую ситуацию, надо тестировать разные сценарии. К тому же желательно, чтобы серверы были в разных дата-центрах.