Как мы ускоряли сборку Python в 20 раз

kirillkosolapov 5 минут назад Как мы ускоряли сборку Python в 20 раз 4 мин 14 Блог компании Amvera Python * DevOps * IT-инфраструктура * Высоконагруженные системы * Кейс Я не знаю человека, который любит долго ждать. Но...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Значимый прорыв формирует отрасль ИИ: kirillkosolapov 5 минут назад Как мы ускоряли сборку Python в 20 раз 4 мин 14 Блог компании Amvera Python * DevOps * IT-инфраструктура * Высоконагруженные системы * Кейс Я не знаю человека, который любит долго ждать. Но ожидание и его последствия бывают разные. Для нашего облака Amvera ожидание сборки проекта обратно коррелирует с количеством деплоев, которые пользователи могут сделать при отладке кода.
Но если для обычного деплоя не всегда нужно много итераций (в идеале одна), то при вайбкодинге итераций нужно гигантское количество. И когда мы стали делать своего ИИ-помощника, который пишет/правит код и запускает его на сервере, поняли, что сборка должна быть быстрой. Контекст: Amvera – это PaaS-облако, где для запуска любого кода на сервере достаточно просто привязать репозиторий.
Технические детали
И не нужно настраивать и администрировать сервер. В этой статье я очень кратко расскажу, что мы сделали, чтобы ускорить сборку и какие архитектурные приёмы использовали для этого. Что замедляет сборкуУзкое место при сборке приложений на удаленном сервере, это скачивание и установка зависимостей.
Конкретно для PythonPyPi имеет склонность резать скорость, если загрузок много (а у нас их очень много). pip – сам по себе не быстрый инструмент. Операции по установки зависимостей занимают львиное время от сборки.
Еще требуется установка Python, но у нас он уже нативно поддержан, и его устанавливать не нужно. Именно эти узкие места мы и решили оптимизировать. Разумеется, сборка состоит не только из установки зависимостей.
Отраслевые последствия
В нашем случае есть еще архивирование, сохранение и скачивание архива, и время, когда Kubernetes планирует поды на ноды. Но всегда лучше начать с самого долгого этапа, где понятно, что делать для его сокращения. Избавляемся от PyPIПервое, что мы сделали в Amvera, это собственное зеркало с образами Python.
Принцип очень простой: если пакета в нем нет, скачиваем зависимость из PyPI. Если есть, берем из нашего зеркала. Однажды наполнив зеркало, мы ходим в PyPI редко.
И пакеты скачиваем по внутренней сети (не через полусломанный интернет), что даёт надёжность и скорость. Использование зеркала для ускорения сборкиПро надёжность я говорю не просто так. Если обычная скорость загрузки PyPI около 100 мб/сек.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.






