Кэширование фронтэнда: Flask, Nginx+Memcached+SSI
Достаточно давно мне на глаза попались следующие статьи по этой тематике: nginx, memcached и SSI Nginx + Memcached + SSI — кеширование страниц и блоков (partials) Кеширование страниц — ускоряем сайт в 100 раз (Varnish + ESI) С PHP я дружу, поэтому попробовал примеры и убедился, что это работает. Но всё это имело «фатальные недостатки» :) — PHP, а я фанат Python и по работе занимаюсь в основном бэкендом. Серьёзно говоря, применить на практике это не представлялось возможным. Однако в начале года поступило предложение поучаствовать в одном амбициозном проекте, изначально подразумевающий HiLoad и прочие плюшки из этой оперы. Пока составлялись бизнес-планы, искались инвесторы и тому подобные дела, я решил изучит вопросы которые на мой взгляд пригодились бы в этой работе, в том числе и вопросы кэширования. В первую очередь было реализовано черновое решение для моего любимого фрэймворка Flask использующее для кэширования стек Varnish+ESI. Это заработало и даже показало неплохие результаты. Позже пришло понимание, что возможно Varnish «лишний игрок» и всё тоже и даже гибче можно получить на связке Nginx+Memcached+SSI. Был сделан и этот вариант, по производительности особых отличий замечено не было, но последний показался более гибким и управляемым. Тот проект не вырулил даже на взлетную полосу, или вырулил, но без меня. Подумав, я решил «причесать код» и выложить его в OpenSource и на суд общественности.Читать дальше →