Задача:
Вам предоставляется OpenAPI спецификация для эндпоинтов системы статистики и аналитики данных о работе рекламной сети. Ваша задача - создать Docker Compose конфигурацию и связанные сервисы для развертывания этих эндпоинтов.Формат решения:
Ваше решение должно предоставлять docker compose файл и все необходимые артефакты. Напишите инструкцию по развертыванию и запуску. Выложите ваше решение на GitHub или GitLab в открытый репозиторий.Быстрый отклик и эффективная обработка данных:
Разработанное вами решение должно обеспечить быстрый отклик и эффективную обработку больших объемов данных.Документация:
Помимо инструкции по развертыванию и запуску предоставьте краткую документацию к вашему решению (в репозитории). Если у вас есть дополнительные идеи или рекомендации по оптимизации системы или улучшению производительности, внесите их в документацию.
git clone https://github.com/cptfanerka/digital_league.git
cd digital_league
docker compose build
docker compose up -d
Работоспособность можно проверить по адресу http://localhost:8000/docs
- Согласно OpenAPI спецификации, были созданы два FastAPI эндпоинта. В ходе разработки использовались возможности Pydantic для проверки типов данных и валидации.
- Решение упаковано в Docker Compose.
- Структура проекта создана с учетом удобства его дальнейшего развития.
Задание содержит требование к системе в виде быстрого отклика и эффективной обработки больших объемов данных. В рамках тестового задания я не стала добавлять сервис, который мог бы продемонстрировать выполнение этого требования, но вот что я предприняла бы, будь у меня база данных с большим количеством данных:
- Оптимизировала бы код для уменьшения сложности алгоритмов.
- Использовала бы асинхронный код и асинхронные запросы FastAPI.
- Создавала бы индексы в базе данных для ускорения запросов.
- Оптимизировала бы медленные запросы к базе.
- Использовала бы кэширование для часто запрашиваемых данных.
Я перечислила общие идеи, которыми я могла бы воспользоваться, но в целом решение подобной задачи зависит от конкретной ситуации и проблемы.