Python programming
September 15
🖥 Сервис для 100k RPS: архитектура под давлением
Когда бизнесу нужно анализировать миллионы событий, на первый план выходит производительность. Система для рекламного агентства должна была не просто работать, а обрабатывать сотни тысяч событий каждую секунду.
Задача 🎯
Создать решение для приёма, обогащения и временного хранения данных.
Подбор технологий
- Go: высокая скорость, но мало специалистов
- Rust: рекордные результаты, но дорогая разработка
- Python + Granian: баланс скорости и удобства
Тестирование 🧪
- Созданы сервисы на разных стэках
- Проведены стресс-тесты в Kubernetes
- Python+Granian показал 5,5k RPS на одном ядре
Data Lake 📂
- Гарантия целостности событий
- Использован Tarantool с модификациями
- Решена проблема с кластерным деплоем
Результат
Проект доказал, что высокие нагрузки можно решать без отказа от привычного стека.
🔗 Забавно, что инженеры Evrone ради стабильности сервиса даже общались с создателем Tarantool — редкий случай, когда поддержка вышла за рамки документации.