Собрать прошлое: как архивировать весь трафик сборки SONiC.
Буквально утречком Денис из команды сетевой автоматизации Yandex Infrastructure катнул статью про разработку кеширующей MITM‑прокси для обеспечения воспроизводимости сборки SONiC (и YaSONiC):
С одной стороны, решение немного наивное как кеширующая прокся, но приятная работа под капотом. Сохраняется каждый ресурс, скачиваемый во время сборки, чтобы переиспользовать его в дальнейшем. Для этого, немного подзабытой многими магии:
🔵поднимается HTTP/HTTPS‑прокся, которая отдаёт закешированный ответ либо выполняет запрос, кеширует ответ и отдаёт его; 🔵трафик заворачивается в проксю через переменные окружения http_proxy/https_proxy; 🔵организуется хранилище по принципу «запрос → ответ», используя хеш запроса как ключ; 🔵ну и кеш версионируют, чтобы можно было обновлять пакеты и при этом сохранять доступ к старым версиям.