Cover Image for Как сделать супер нагруженный проект на WordPress? 2я редакция

Как сделать супер нагруженный проект на 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 это тормоза.