Що ми робимо · Дані та web: Об’єктне кешування з автоматичним failover

Об’єктний кеш є тим, що не дає WordPress, Magento та Laravel ставити базі даних одне й те саме запитання тисячі разів на хвилину. Ми запускаємо його як репліковану трійку з автоматичним підвищенням, тож відмова вузла кешу ніколи не перетворюється на некешовану, перевантажену базу даних.
Що це
Valkey (і Redis, його сумісний попередник) тримає обчислені результати в пам’яті: опції, меню, дані сесій, результати запитів, відрендерені фрагменти. Це робить кеш частиною вашої доступності, а не лише продуктивності. Єдиний екземпляр кешу є прихованою єдиною точкою відмови, і ми таких не будуємо.
Як ми це будуємо
- Три вузли, один основний і дві репліки, на окремих хостах із жорсткою anti-affinity, щоб жодні два не опинилися на одному обладнанні.
- Три Sentinel із кворумом два спостерігають за основним вузлом. Якщо він відмовляє, вони домовляються, підвищують репліку й повідомляють клієнтам, де новий основний.
- Застосунки підключаються через Sentinel, використовуючи ім’я сервісу замість фіксованого хоста та порту. Підвищення прозоре для PHP: жодної зміни конфігурації, жодного перезапуску.
- Швидке виявлення за задумом. Sentinel налаштований виявляти мертвий основний вузол за кілька секунд. Короткий, зайвий failover коштує значно менше, ніж довге вікно з мертвим основним вузлом.
- Ізоляція там, де вона важлива. Менші ресурси можуть ділити один кластер через окремі логічні бази даних; великі або критичні сайти отримують власний екземпляр, тож подія в кеші одного сайту ніколи не може спорожнити кеш іншого.
Ми інтегруємо і бік застосунку: drop-in об’єктного кешу WordPress, налаштований на Sentinel, драйвери кешу та сесій Laravel або еквівалент вашого фреймворку.
Від чого це вас захищає
- Відмова одного сервера кешу, після якої кожен сайт за ним одночасно падає на базу даних.
- Спільний кеш, що заповнюється й витісняє ключі, від яких залежить кожен сайт.
- Скидання кешу або невдале розгортання одного сайту, що спорожнює кеш його сусідів.
- Ручне втручання посеред ночі, щоб перенаправити застосунки на новий хост кешу.
- Застарілі записи, що переживають реліз, бо ми скидаємо й прогріваємо кеш у межах кожного плану розгортання.
На практиці
Вбити основний вузол навмисно. На платформі видавця з багатьма сайтами ми зупинили основний вузол кешу під час приймальних випробувань. Sentinel підвищив репліку приблизно за шість секунд, і кожен сайт відновився самостійно, без жодної дії людини. На аналітичній платформі, побудованій пізніше, той самий тест показав близько семи секунд.
Чому EuroVPS
- Failover на основі Sentinel як стандарт, а не додаткова платна опція.
- Anti-affinity забезпечена, тож репліки ніколи не ділять обладнання зі своїм основним вузлом.
- Ми налаштовуємо і бік застосунку, щоб failover справді доходив до PHP.
- Кожна збірка проходить тест failover перед передачею, з виміряним і записаним часом.
Часті запитання
- Valkey чи Redis? Valkey є відкритим форком, сумісним із Redis. Застосунки й клієнтські бібліотеки працюють без змін. Ми запускаємо той, якого потребує ваш стек.
- Чи ляже наш сайт під час failover кешу? Запити, що виконуються протягом кількох секунд підвищення, можуть не влучити в кеш або повторитися. Потім усе продовжується на новому основному вузлі автоматично.
- Чи потрібно нам це для малого сайту? Єдиний екземпляр цілком годиться для малого сайту, база даних якого витримує повне навантаження. Щойно втрата кешу перевантажила б базу даних, його слід реплікувати.
- Чи можуть у ньому жити сесії? Так. З реплікацією та Sentinel сесії переживають втрату вузла кешу.
- Чи можете ви доглядати за нашим плагіном об’єктного кешу WordPress? Так. Ми налаштовуємо та підтримуємо його як частину стеку.
Хочете кеш, який перемикається раніше, ніж хтось помітить? Поговоріть з інженером.
Ваш наступний партнер з інфраструктури
Погляньмо на вашу інфраструктуру.
Розкажіть, що ви запускаєте сьогодні і що потребує покращення. Інженер розгляне ваш запит і допоможе спланувати наступний крок.
+357 222 32280
Почнімо з вашої інфраструктури.
Трохи контексту допомагає нам почати правильну розмову.
