2 ROM pour apprendre le Kaizo - Celery et Starting with Kaizo - Se7h une ROM Hack

2 ROM pour apprendre le Kaizo - Celery et Starting with Kaizo - Se7h une ROM Hack

Зеленые потоки Celery. Gevent и Eventlet
Вторая статья цикла о внутрянке Celery: на этот раз — зелёные потоки (gevent/eventlet). Как gevent и eventlet работают под капотом Celery, что такое Hub, monkey patching и почему autoscale для гринлетов бесполезен. А ещё — неожиданный бенчмарк: prefork против gevent на одном ядре. Спойлер: gevent проигрывает, но не спешите его хоронить. Для тех, кто выбирает пул под свои задачи. А пойду готовить докер-селери-кубер-автоскейл .
Celery Autoscale: что в лоб — то по лбу?
Celery популярен. Модель prefork работает по умолчанию. Autoscale смотрится неплохим вариантом для любого воркера. Идея посмотреть, как выглядит механизм изнутри родилась давно, когда по работе сталкивался с проблемами у клиентов в отложенных задачах, но никаких артефактов или задокументированного аномального поведения не было. Это стартовая статья об архитектуре, моделях и масштабировании Celery.
Как мы переписывали логику очередей: Celery => aio-pika => FastStream
Наш путь активной работы с очередями RabbitMQ начался с классического Celery. Осознав критичность низкоуровневого контроля системы, принялись работать с aio-pika. Но и этот уровень слишком местами сложный (далее расскажу почему), и нашли отличное решение, на текущий момент, в лице FastStream. Сразу оставлю такую пометку, что каждый инструмент подходит для решения своей задачи. Мы больше хотели сделать акцент на удобство и скорость разработки относительно затрачиваемого времени на миграции решений. N.B. : Код возможно покажется неоптимальным или старым. Это всё наш дорогой Легаси.
At-least-once. Это не баг провайдера. Это ваша архитектурная проблема
Думал, зайду в крипту и буду просто дёргать API блокчейна. Не вышло. Захожу в проект. Стек: FastAPI, PostgreSQL, Redis как Celery broker, Celery workers, Docker, Web3. Стартап на хайпе, деньги реальные, архитектура собрана на коленке. Смотрю на архитектуру платёжного процессинга и первая мысль: ребята, вы серьёзно? Финансовые операции с реальными деньгами, без idempotency вообще, Redis как брокер без persistence, Web3.py синхронные вызовы внутри Celery тасков. Разговор был короткий: задача такая, чини что есть. Сроки горели.
https://habr.com/ru/articles/1028708/
#idempotency #PostgreSQL #Celery #FastAPI #Redis #atleastonce #webhook #distributed_systems #финтех
Как я реализовал Blue-Green деплой с нулевым даунтаймом на Docker Compose
Недавно я внедрил blue‑green деплой в проде. Реализация довольно простая и кастомная, но справляется со своей задачей на ура! Также сообщу, что используется обычный докер композ на виртуалке — возможно, кому‑то такой подход будет полезен. Для фоновых процессов (воркеров) В приложение добавляется специальный инфрастуктурный singleton класс с флагом is_accepting, и обертка на consumers. В каждом консьюмере перед обработкой проверяем этот флаг: если True — обрабатываем задачу, если False — переносим задачу на повторную обработку (например, в rabbitmq делаем сразу nack(requeue=true))
https://habr.com/ru/articles/1025776/
#bluegreen_deployment #zero_downtime #dockercompose #cicd #rabbitmq #kafka #faststream #celery