Как сделать супер нагруженный проект на WordPress? 2я редакция
17 июня 2024
Тут была уже статья на тему хайлоада с ВордПресс от 2017 года. Сейчас попробуем понять что поменялось за эти годы и будет актуально еще 10 лет.
Статья про хайлоад от 2017 года тут. Там был разбор основных идей и паттернов как готовить сайт под высокие нагрузки и большие данные.
Там все было очень абстрактно и сложно. С тех пор много чего поменялось в мире веба и сегодня можно говорить о новых трендах.
Исходные условия если у вас сайт на WordPress
Допустим вы сделали сайт на WordPress, и вдруг он дико стартанул и вырос и вам нужно решать задачи с высокими нагрузками и большими данными. Как быть?
Многие тут скажут что ВордПресс это же не то и надо что то другое, например взять Симфони или Ларавел или вообще все переписать на NodeJS или Java.
Бог им судья )
Давайте я тут поделюсь своей стратегией – как я бы решал эти задачи в большинстве случаев.
Edge Cache
Если мы говорим про скорость просто сайта без учета внутренних процессов и бизнес логик, то самое простое – это завести EdgeCache.
Тут есть 2 пути:
- берем CloudFlare – правильно настраиваем кеширование страниц, с Edge Cache & Tiered Cache.
- делаем тоже самое но своими силами – FastCGI Cache + CDN.
В первом случае все можно сделать легко силами даже среднего разработчика, плюс консультации от тех кто в теме.
Во втором случае придется нанимать очень матерых DevOps ребят.
В любом случае можно получить скорость 50-100-200 мс по всему миру. Сайт будет работать и открываться очень быстро.
Микросервисы и Appwrite
Предположим у нас не просто сайт затормозил, а под капотом огромные базы данных, множество микросервисов и систем. Все это надо синхронизировать, образуются очереди задач, асинхронная логика и вся вот эта красота.
Берем Appwrite https://appwrite.io/
В него выносим все большие таблицы и сложные микросервисы, включая serverless функции.
Мы получаем простой рантайм на PHP или JS. Где мы можем легко дописывать нужные микросервисы даже силами джунов.
А под капотом там Swoole PHP, который умеет делать 1 млн. запросов в секунду на PHP.
Этот стек технологий был рожден в недрах бигтеха Китая типа Алибаба и Алиэкспресс. Он заточен под хайлоад на миллиарды пользователей. Условно говоря больше чем у Яндекса и Озона.
При этом довольно легко его интегрировать с существующим WordPress сайтом.
Поиск и фасетный фильтр
Если у вас в базе 1-5-10-100 млн позиций, то главная проблема это поиск по такой таблице.
Оно решается плюс минус одинаково везде:
- Algolia – для тех кто аутсорсит и там есть готовый плагин для WordPress
- Если нужно свое и на своем сервере то тут MelliSearh, Typesense или что то такое
Эти решения позволят делать быстрый поиск по большим данным. Будь то 5 млн позиций или 50 млн.
Для Appwrite есть даже готовые адаптеры, как и для WordPress. А там где нет – достаточно легко дописать что нужно.
HTMX и закат реактивного JS
Добавим сюда тот факт что приходят новые подходы типа HTMX. Который взрывают сообщества про фронтенд.
Типа давай досвидания устаревший JSON, REST API, Headless CMS и прочее. Привет оборот истории и возврат HTML + AJAX.
Можно делать такие же быстрые сайты и интерфейсы, но при этом на том же PHP + WordPress. Без дикой сложности и тормозов на фронте с утечкой памяти.
Итого
Вот если просто эти 4 штуки что выше правильно настроить, то можно сделать сайт уровня Озона или Яндекс Маркета. А вебсайт чисто на WordPress.
Но если не уметь все это правильно готовить и разбираться в архитектуре – то можно дальше жаловаться на то что WordPress это тормоза.