> Как понимать доступность сервиса (Python)
Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы
Компании: Сбер
Стек: Python
> Пример ответа
Доступность сервиса (availability) - это метрика, показывающая, какую долю времени сервис готов обрабатывать запросы пользователей. Обычно выражается в процентах (например, 99.9% - "три девятки"). Для бэкенда на Python это означает, что приложение должно корректно отвечать на HTTP-запросы (статус 200) в пределах заданного времени (например, <500 мс) без ошибок 5xx.
Ключевые аспекты:
- Измерение: Используются мониторинговые системы (Prometheus + Grafana, Datadog) для сбора uptime и latency. Например, эндпоинт
/healthдолжен всегда возвращать 200. - Расчет:
Availability = (Total time - Downtime) / Total time * 100%. Downtime - время, когда сервис недоступен (ошибки, таймауты). - Обеспечение: В Python это достигается через:
- Репликацию (несколько воркеров Gunicorn/uWSGI).
- Graceful shutdown (обработка SIGTERM в asyncio или Flask).
- Retry-логику с exponential backoff (например, в aiohttp или requests).
- Health checks для балансировщиков (Nginx, Kubernetes liveness probe).
- SLA/SLO: Если SLA 99.9%, допустимый downtime - ~8.7 часов в год. Для высоконагруженных систем (99.99%) - ~52 минуты.
Пример: в FastAPI можно добавить middleware для логирования ошибок и таймаутов, а также использовать asyncio.timeout для предотвращения зависаний.
> Похожие задачи по Python
Как видишь жизненный цикл задач и основные этапы работы над задачей
Что делал при понимании, что не успеваешь в сроки
Как измерить потребление ресурсов решения
Приходилось ли оптимизировать алгоритм, а не только архитектуру
> Похожие задачи по backend
Как видишь жизненный цикл задач и основные этапы работы над задачей
Что делал при понимании, что не успеваешь в сроки
Как измерить потребление ресурсов решения
Приходилось ли оптимизировать алгоритм, а не только архитектуру
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью