Рубрика «docker-compose»

Предисловие

За последние несколько месяцев плотной работы над инфраструктурой для проекта я прошёл путь от первых команд в терминале Linux до настройки полностью отказоустойчивого K3s‑кластера с Zero‑Downtime деплоем. Шишек на этом деле я набил огромное количество, и мне определённо есть чем поделиться.

Сразу оговорюсь: в этой статье не будет монотонных гайдов, слепых копипастов YAML‑манифестов и пересказа официальной документации. С базовой настройкой вы отлично справитесь, прочитав мануалы создателей этих инструментов.

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

Всем привет! В апреле я создавал сервис для логирования серверов в Discord. Моя идея была максимально простой: бот отвечает за отслеживание событий и запись логов в базу данных, а веб-интерфейс отображает их.

Первоначально я задумывал делать это через связку MySQL c ботом на Python и сайтом на PHP. Такая задумка работала и вышла в свет 11 февраля 2025 года. Но все оказалось не так гладко как я думал. 4 апреля проект получил обновление 2.0 где были мелкие исправления и редизайн веб-интерфейса.

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

Я работала над созданием модуля BI, в основе которого использование Apache Superset для расчета и демонстрации различных метрик. Планировалось использовать дашборды в общем интерфейсе приложения целиком, просто встроив их в интерфейс, а настройки для создания метрик и прочего спрятать в общую админку. Соответственно, появилась необходимость локализовать интерфейс Superset’а.

Готового решения найти не удалось, поэтому пришлось разбираться самостоятельно.

Сразу оговорюсь, речь пойдет о версии 6.1.0 с расширением dev, в которое включены библиотеки для работы с другими БД, помимо SQLite. Читать полностью »

Если вы работаете с LLM-провайдерами, то наверняка сталкивались с одной и той же проблемой: у OpenAI лимит 100 RPM на ключ, у Vertex AI — свои квоты на проект, у Anthropic — отдельные ограничения. В итоге приходится держать несколько ключей, балансировать нагрузку вручную, следить, чтобы один заблокированный доступ не уронил всё приложение, и при этом хочется сохранить единый OpenAI-совсместимый эндпоинт для клиентского кода.

Именно для этого и создан Auto AI RouterЧитать полностью »

Недавно я внедрил blue-green деплой в проде. Реализация довольно простая и кастомная, но справляется со своей задачей на ура! Также сообщу, что используется обычный докер композ на виртуалке - возможно, кому-то такой подход будет полезен.

Для фоновых процессов (воркеров)

В приложение добавляется специальный инфрастуктурный singleton класс с флагом is_accepting, и обертка на consumers. В каждом консьюмере перед обработкой проверяем этот флаг: если True - обрабатываем задачу, если False - переносим задачу на повторную обработку (например, в rabbitmq делаем сразу nack(requeue=true))

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

Обновление инфраструктуры — это рутина. Но когда нужно перевезти проект со старого стека, пропустив несколько мажорных версий софта, начинается самое интересное. Недавно я проводил жесткую миграцию n8n с легаси-связки сразу на актуальные версии: Traefik 3.3 и Postgres 16.

В этой статье поделюсь инструкцией по переносу, в которой учтены неочевидные баги несовместимости Traefik 3 с Docker API, политика безопасности свежего Postgres и конфликты ключей шифрования.

Шаг 1. Бэкап базы и спасение ключей

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

Привет! Снова.

Docker уже давно стал стандартом, и базовые команды вроде docker rundocker build или docker compose up знакомы любому разработчику. Но экосистема и инструментарий контейнеризации гораздо глубже.

В этом материале мы отойдём от банальных инструкций и разберём шесть продвинутых инструментов и настроек. Думаю, вы узнаете для себя что-нибудь новое.
Читайте первую часть по ссылке.


Dive: Рентген для образов

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


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