#рабочийкейс
Есть люди в канале, которые жаждут узнать какие бывают у меня рабочие задачи. Ну если коротко, то у меня в бэкенде кибербезопасностью-то и не пахнет 🙄 Все как везде: возьми с БД данные, че то сделай с ними, отдай на фронт и наоборот.
Но бывает и такое - в прошлом году пришла задача поднять версию питона с 3.8 на 3.11. Я не знаю насколько вам будет интересно знать каждую подробность, поэтому расскажу основными моментами.
Дано:
несколько микросервисов, которые при установке продукта просто разворачиваются на целевой машине в своем
venv со своим интерпретатором и ставит свои зависимости, которые мы тоже принесли с собой в whl файлах.Решение (одинаковое для всех микросервисов):
1. Отказываемся от venv в сторону
poetry2. Все зависимости проверяем на совместимость с 3.11, если есть несовместимые, то читаем ченжлоги, особенно на предмет breaking changes. В большинстве своем библиотеки поднимались в версиях без проблем, но из-за некоторых приходилось фиксить/адаптировать код под новые версии либ, так как что-то могло быть уже deprecated.
3. Пакуем все в
pyinstaller 😎 Кто не в курсе что это, то весь ваш проект пакуется в один исполняемый файл (на винде exe, на линуксе без расширения). Пишем конфиг в spec файл, где указываем версию питона 3.11, какие директории нужны, кроме директорий с модулями питона и все ❤️4. Далее, правим CI конфиг, где указываем, что теперь при сборке в единый пакет мы компилим репозиторий этого микросервиса pyinstaller'ом, а при установке всего продукта просто копируем исполняемый файл микросервиса в нужное место 🌈
Первый пост о рабочих задачах, хз насколько интересно написал, дайте понять единорогом, если такие посты нужны в канале тоже 🦄
