Stream API сервис управляет высоконагруженным приложением, позволяющим пользователям получать высококачественный видеоконтент, включающий в себя фильмы, сериалы, ТВ каналы.
Одним из ключевых требования к проекту было его быстродействие, так как было очень важно, чтобы пользователь получал запрашиваемые данные как можно быстрее. Проблема усложнялась тем, что в требованиях к проекту значилось использование php. Для того чтобы обойти проблемы с медленной работой php под большими нагрузками, было принято решение использовать php Swoole, применение которого позволило многократно увеличить скорость работы сервиса под большими нагрузками. Также широко применялось кэширование наиболее критичных частей системы.
Сервисом пользуются десятки тысяч человек по всему миру, поэтому было важно предусмотреть архитектуру, которая позволит свести вероятность отказов до минимума. После анализа возможных вариантов решения проблемы было решено построить архитектуру сервиса с использованием сервисов Amazon AWS.
Высокая нагруженность проекта требовала свести риск деплоя кода с багами до минимума. Для этого было решено использовать CI/CD подход, что, в свою очередь, требовало как можно большего процента покрытия кода проекта тестами, что было сделано с использованием PHP Unit. Также процесс CI/CD включает в себя проверку кода на дублирование и соответствие стандарту PSR-12. CI/CD был построен с использованием Pipeline от GitLab.
Сервисом пользуются десятки тысяч человек по всему миру, поэтому было важно предусмотреть архитектуру, которая позволит свести вероятность отказов до минимума. После анализа возможных вариантов решения проблемы было решено построить архитектуру сервиса с использованием сервисов Amazon AWS.