6 недель назад я нарисовал вот такую вот черновую схемку высокопроизводительной масштабируемой CMS (Коммент для понимающих: тут хреново названо только. Frontend – это общедоступная часть сайта, Backend – админка. Пользователи – на концах зелёных стрелок, за схемой, есличо).
Так вот, оно взлетело, да ещё как. Результаты по скорости рендера на Амазон EC2 medium (3.8 Gb RAM, проц примерно как Core2 Duo 1.5Ггц и диск как медленный SSD) вот такие:
Это неделю назад, сейчас ещё быстрее. Это случайный рендер по множеству из 112500 урлов. С выборкой из БД. Более 90% страниц предполагают выборку более 50 публикаций перед рендером целиком. С последующей группировкой и фильтрацией по тегам. И с расстановкой переносов )
На реальных условиях (с запросом и ответом в gzip) тоже оттестировано. С учётом пинга до Архангельска любая страница при нагрузке до 50 запросов в секунду в 99% случаев выдаётся менее, чем за 250мс. Если тестировать прямо с ирландского амазона с нагрузкой 100 страниц в секунду, получается “менее, чем за 20мс”.
Фактически на запросы из Архангельска сервер в Ирландии начинает отвечать через 100 мс, то-есть примерно через 120 мс при наличии скриптов/css в кэше браузера начинается рендер страницы.
Если по-русски, оно летает просто )
И это полностью, до последней строчки, javascript (скептики, утритесь). При этом оно чистый, не прошедший даже черновую оптимизацию, говнокод (утритесь снова ггг).
Я знаю, на фленте есть френды, которые прямо сейчас делают что-то подобное. И тоже функциональщина. И тоже nosql, и с прицелом на highload и лёгкую масштабируемость. Присоединяйтесь )