Разработка CDN-платформы для видеосервиса
- Analyst
- Backend
- DevOps
- Python
- REST API
- FastAPI
- Ansible
- Kafka
Индустрия
Развлечения и медиа
У вас есть задача?
Давайте обсудим?
О клиенте
Бизнес разрабатывает ПО с открытым исходным кодом для высокопроизводительной доставки веб-контента и расширенной защиты от DDoS-атак. Среди ИТ-продуктов: балансировщик нагрузки, веб-ускоритель, брандмауэр веб-приложений и др. Все решения реализованы в ядре Linux и используют традиционные управляемые событиями сокеты в kernel-space и sk_buff буфере.
О проекте
Core-продукт клиента был внедрен в американский видеосервис, входящий в цифровую экосистему. В плеере доступен просмотр роликов из социальной сети, интернет-шоу и прямых трансляций. Доставка контента осуществлялась напрямую с исходных серверов — требовалось создать геораспределенная сетевую структуру (CDN).
Описание задачи
К моменту обращения сеть не направляла запросы зрителей на ближайший сервер. DevOps инженерам, Python- и С/С++ разработчикам RedLab было необходимо с нуля спроектировать CDN-платформу, которая обеспечит быструю и стабильную доставку медиа в разные точки планеты.
При постановке технического задания заказчик сформулировал ряд требований к решению:
- Ускоренное отображение статического и динамического контента.
- Быстрая загрузка страниц в видеоплеере.
- Бесперебойная работа во время пиковых нагрузок на трафик.
- Обработка сложных алгоритмов с использованием библиотеки для математической оптимизации.
Реализация
Видеосервер был написан на языке программирования С и при пиковой нагрузке обслуживал до 1,5 млн соединений, поэтому сначала эксперты RedLab глубоко изучили используемые технологии, далее — приступили к разработке CDN-платформы:
- Работали в модуле ядра Linux, не используя User-space. Отсутствие необходимости передачи аргументов и промежуточных слоев привело к значительному повышению скорости работы программы.
- Внедрили фреймворки и библиотеки Python, которые помогли улучшить работу различных адаптивных алгоритмов.
- Создали автоматически развертываемые ноды сети, которые можно централизованно администрировать через REST API на FastAPI.
- Использовали скрипты на Ansible для развертывания, конфигурации нод и постройки маршрутизации.
- Внедрили Kafka для взаимодействия между нодами, обновления BGP маршрутов и связи с управляющими backend-компонентами.
- Написали документацию и провели тестирование ПО с учетом особых требований к надежности и отказоустойчивости системы.
- Спроектировали панель администраторов, панель менеджеров и бизнес-дашборды.