📄Успеть за 300 миллисекунд: как ускорить веб-сервис с помощью Python и Rust



Представьте сервис, который обрабатывает запрос в течение почти 11 секунд. За это время пользователь успеет разозлиться, открыть чат с поддержкой, стукнуть по клавиатуре или просто закрыть приложение и никогда им не пользоваться.



Разработчики тест-менеджмент системы TestY столкнулись с подобной проблемой. Одна из функций TMS — создание тестовых кейсов — «зависла» на 10,93 секунды, когда количество запросов от одной из команд превысило полмиллиона. Чтобы решить проблему без серьезных изменений UX-дизайна и архитектуры, инженеры TestY решили ускорить серверную часть — фреймворк Django. Для этого они написали пакет с помощью языка Rust, Orjson и Python-пакета Maturin.



В новом материале инженер в отделе разработки инструментов тестирования компании YADRO Роман Кабаев рассказывает про решение проблемы и пошагово объясняет, как написать пакет для ускорения Django-rest-framework. Из статьи вы узнаете:



▪️Почему упрощение DFR-сериализаторов и сторонняя Python-библиотека не подошли для решения задачи;

▪️Какая логика заложена в выбранном решении;

▪️С какими сложностями столкнулись разработчики в процессе интеграции Rust-модуля в Python.



Если вы еще не знакомы с TestY, TMS с открытым исходным кодом, читайте материалы о системе и новых фичах, которые появились в последнем релизе.



Читать статью ➡️



#opensource #инструменты