Сервис рекомендаций реализован как приложение на Flask.
Это приложение умеет обрабатывать запросы по REST API.
В качестве in-memory кэша используется Redis.
В качестве load balancer используется nginx
Приложение пишет лог событий в json в папку /app/log/
- Устанавливаем docker
- Собираем образы и запускаем контейнеры (2 рекомендера в параллель)
docker-compose up -d --build --force-recreate --scale recommender=N
- Смотрим логи рекомендера
docker logs botify-recommender-n
- Останавливаем контейнеры
docker-compose stop
- Модифицируем код в этом модуле
- Повторяем шаги 2-4, пока не достигнем поставленной цели
Проверяем, что сервис жив
curl http://localhost:5001/
Запрашиваем информацию по треку
curl http://localhost:5001/track/42
Запрашиваем следующий трек
curl -H "Content-Type: application/json" -X POST -d '{"track":10,"time":0.3}' http://localhost:5001/next/1
Завершаем пользовательскую сессию
curl -H "Content-Type: application/json" -X POST -d '{"track":10,"time":0.3}' http://localhost:5001/last/1
Скачиваем логи пользовательских сессии с контейнера
docker cp botify-recommender-n:/app/log/ /tmp/
Скачиваем логи пользовательских сессий со всех контейнеров
python dataclient.py --recommender N log2local ~/Desktop/data
Мониторим загрузку хостов
docker stats botify-recommender-1 botify-nginx-1 redis-container