Рубрика «docker»

Всем привет. Я Backend разработчик, в основном на Python и немного Go. Хотел бы рассказать про свой опыт оптимизации docker образов и написать некий «туториал». Он скорее будет полезен для разработчиков или начинающим DevOps. Для опытных DevOps инженеров, возможно будет мало интересного и полезного

Не претендую на правильность во всем, полноту. Мое основное ремесло – эффективно делать эффективный бекенд. Направление инфраструктуры мне интересно, стараюсь активно изучать и в ходе работы, так или иначе приходилось и приходится с этим работать. 

Цели: 

TL;DR

Мы пытались запустить LLM inference на старой AMD RX580 (8 VRAM) через ROCm в Kubernetes. GPU корректно определялся, VRAM использовалась, но inference падал с ошибками вида:

hipMemGetInfo(free, total) CUDA error: invalid argument

После серии экспериментов с ROCm userspace, Docker‑образами и Kubernetes deployment выяснилось, что проблема лежит на границе:

kernel → ROCm runtime → ggml backend

Финальное решение включало:

  • переход на kernel 6.8

  • стабилизацию ROCm runtime

  • использование llama.cpp + ROCm

  • grammar‑constrained decoding для strict sanity prompts

В итоге мы получили стабильный GPU inference:

в 14:16, , рубрики: bash, chroot, docker, shell

Небольшое вступление

Читать полностью »

Введение: Ниша между Celery и Kubernetes

Привет!

Если вы когда-нибудь сталкивались с задачей запуска сотен изолированных фоновых процессов на одном сервере (будь то парсеры для клиентов, торговые боты или обработчики данных в SaaS), то вы знаете, как быстро всё усложняется.

Читать полностью »

Есть типичная боль: ты вроде всё сделал правильно — контейнеры поднялись, API отвечает, UI открывается… а потом оказывается, что “не работает”. Причём не “сломано в пепел”, а именно “почти”: где-то 404, где-то таймаут, где-то UI открывается, но вкладки пустые, где-то один запрос проходит, другой — молчит.

И самое неприятное: когда начинаешь чинить “по ощущениям”, можно потратить часы, а потом выяснить, что причина была не в коде, а в порте, origin, IPv6, миграциях или в том, что UI ходит не туда.

Я перестал спорить с реальностью и сделал себе простой подход evidence-first:

Я Backend разработчик на Python, и в одном из проектов мне понадобилось настроить сборку Docker-образа в GitLab CI/CD. Базовую настройку я сделал без проблем, но я хотел ускорить сборку по максимуму. И здесь я обнаружил Cache mount или кэш-монтирование.

Месяц назад я закинул задачу на рефакторинг модуля авторизации и пошёл варить кофе. Кофе я допить не успел. Через двадцать три минуты пришло уведомление в ТГ: «staging обновлён, 94 теста пройдено, 0 упало».

Открыл репозиторий. Ветка, diff на два экрана. Code review от второго агента. Три замечания, два по делу. Третий агент прогнал тесты и задеплоил.

Код был чище, чем я обычно пишу по пятницам.

Но до этого момента были три месяца граблей, упавший продакшен, и одна ночь, когда агенты сделали десятки бесполезных коммитов. Обо всём по порядку.


Один агент. Один мозг. Ноль сомнений

Читать полностью »

TL;DR: Обычный MTProxy с Fake TLS маскирует протокол, но палится при активном зондировании. Telemt при попытке «пощупать» ваш прокси извне отдаёт настоящий сайт с настоящим TLS-сертификатом. Для DPI и краулеров это сайт.ru. Для вас это стабильный Telegram.

Читать полностью »

TL;DR: Поднимаем невидимый для DPI прокси Telegram за 15 минут. Маскируемся под обычный HTTPS-трафик к популярным сайтам. Работает там, где VPN уже не спасает.

Повышаем стабильность Telegram: поднимаем партизанский MTProxy с Fake TLS - 1

Привет!

Читать полностью »

Приветствую.

Цель стать: показать на практике как проходит insert запрос в Apache Iceberg. Все шаги можно и даже нужно повторить.

Что будет в статье: Мы поднимем локально, через Docker, Apache Iceberg и сделаем запрос через Apache Spark. Так же подробнее посмотрим как выполняется запрос и что он после себя оставляет. То есть как именно записывает данные.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js