Какой разброс версий Python используется на микросервисах
Что проверяют
Насколько вы в курсе того, на чём крутится ваш код, и как в команде обновляют версии. Если вопрос задаёте вы работодателю, это хороший способ оценить объём легаси. Следом обычно спрашивают, как вы переводили сервис на новую версию и что при этом сломалось.
Как отвечать
Назовите реальную картину и оцените её по календарю поддержки. Новая версия Python выходит каждый октябрь и поддерживается около пяти лет: сначала с исправлениями ошибок, потом только с патчами безопасности. На сентябрь 2026 поддерживаются 3.10 (до октября 2026), 3.11, 3.12, 3.13 и 3.14. Версия 3.9 и старше уже без патчей, 2.7 закончилась в 2020 году.
Хороший ответ звучит так: «основная масса на 3.12 и 3.13, два старых сервиса на 3.10, их переводим». Дальше механика:
- фиксация версии:
requires-pythonвpyproject.toml,.python-versionдля pyenv или uv, конкретный тег образа вродеpython:3.12-slim, а неlatest; - обновление: Renovate или Dependabot поднимают базовый образ и зависимости, CI гоняет тесты на матрице версий через tox или nox;
- подготовка кода:
ruffсtarget-versionи правиламиUPнаходит устаревший синтаксис, аDeprecationWarningв тестах переводят в ошибки; - общие библиотеки: внутренние пакеты обязаны поддерживать весь диапазон версий из сервисов, иначе обновление упрётся в них.
Разброс в две или три соседние версии нормален: сервисы для того и независимы. Плохой признак, когда версия уже без патчей безопасности, а у сервиса нет владельца.
Где спотыкаются
Называют актуальными 3.6 или 3.8, у которых поддержка давно закончилась. Это сразу выдаёт, что вы не следите за экосистемой.
Считают, что переход на соседнюю версию ничего не ломает. Из стандартной библиотеки удаляют модули: в 3.12 убрали distutils, в 3.13 ушли cgi, telnetlib и ещё ряд старых модулей. Свежие версии крупных библиотек тоже регулярно отказываются от старых Python.
Не следят за тем, где какая версия: локально 3.13, в проде 3.11, и код с оператором type из 3.12 падает только после деплоя. Лечится одной точкой правды для версии и тестами в CI на том же образе, что уходит в прод.