reliability
3 статей
-
Rate limiting — как тестировать лимиты, о которых вспоминают после инцидента
Пока никто не долбит API, кажется, что лимиты не нужны — их отсутствие незаметно ровно до первого инцидента. Разбор от первого лица: лимит как контракт двух сторон (сервер ограничивает — клиент переживает), граница N/N+1 и честный 429 с Retry-After, скоуп ключа и как лимитом по аккаунту устраивают DoS жертве, burst на стыке окон, обходы через X-Forwarded-For и соседние эндпоинты, зоны, где лимит обязан быть (OTP, reset, промокоды), и почему «лимиты выключены на стейдже» = непротестированный прод.
-
«У меня показывает старое» — как тестировать кэши, самый тихий источник багов
Баг «у юзера старые данные» не воспроизводится, закрывается как «само прошло» — и возвращается через неделю. Это не мистика, это кэш. Разбор от первого лица: карта из шести слоёв кэширования (браузер, CDN, gateway, приложение, БД, мобильный клиент), инвалидация как главный кейс, кэш и чужие данные, cache stampede после деплоя, правило «каждый кейс дважды — холодный и тёплый», и почему тестировать с выключенным кэшем = не тестировать прод.
-
Chaos Engineering для QA: как намеренно ломать систему, чтобы проверить отказоустойчивость
Отказоустойчивость, которую не проверяли намеренным сбоем, — это предположение, а не факт. Chaos Engineering для QA: steady-state hypothesis, blast radius и кнопка аборта, какие сбои вносят (kill инстанса, latency, отказ зависимости, исчерпание ресурсов, зональный отказ), инструменты (Chaos Monkey, Gremlin, Chaos Mesh, AWS FIS, Toxiproxy), Game Days, роль QA (graceful degradation, ретраи, circuit breakers, наблюдаемость) и чек-лист безопасного эксперимента.