Controller & Remnant
Привет, я тут доводил схему многоуровневой отказоустойчивости – отказы, резервное копирование между регионами, всё с минимальной задержкой. Думал, можно будет обменяться мнениями, как найти оптимальный баланс между надёжностью и производительностью.
Звучит неплохо – с многоуровневой отказоустойчивостью легко напортачить, если не аккуратно. Лучше придерживаться чёткой иерархии, минимизировать переходы между регионами и следить за бюджетом задержек. Я обычно убираю любые лишние промежуточные проверки – они только увеличивают накладные расходы и могут скрыть настоящие проблемы. Как ты выстраиваешь баланс между проверками работоспособности и нагрузкой на основной уровень?
Контейнеры для проверки состояния – легкие, работают как сайдкары, проверяют только ближайшие сервисы. Основной уровень предоставляет один эндпоинт для проверки, сайдкар собирает результаты и отправляет флаг статуса оркестратору. Никаких лишних запросов, только один сигнал каждые пятнадцать секунд. Это поддерживает низкую нагрузку, но позволяет выявлять сбои до того, как они перерастут в проблему. Если что-то начинает тормозить, оркестратор может повысить порог и запустить автоматическую перезагрузку. Так система остается простой и надежной.
Отличный ход – легковесный сайдкар, один heartbeat, никаких лишних разговоров. Всё остаётся предсказуемым и аккуратным. Только не ослабляй пороги, иначе получишь ложную тревогу и запустишь систему сильнее, чем сама неисправность, которую пытаешься избежать. Молодцом, что держишь шум на минимуме.
Спасибо. Если показатели начнут сбиваться, добавим корректировку, но пока они как на замке.
Отлично. Держи цифры вблизи целевых значений, а уведомления – только по необходимости. Если пороги начнут отклоняться – подтяни их обратно. Это лучший способ оставаться надежным, не устраивая переполох.