1. Описание системы IPTV/OTT Middleware Smarty

Smarty - платформа Middleware для построения операторского сервиса интерактивного телевидения IPTV и OTT, предназначенная для взаимодействия абонентских устройств, биллинга и видео-стриминговой инфраструктуры оператора. Smarty адаптирована под все современные устройства, медиаплатформы, Smart TV и все популярные операторские IP-приставки Set-Top Box (в том числе «ветераны» IPTV-рынка MAG, Amino и т.д.), мобильные устройства и самые современные медиа-приставки.

_images/microimpuls-middleware-scheme.png

1.1. Архитектура системы

Архитектура системы - клиент-серверная, где сервером (back-end) выступает платформа Middleware, состоящая из различных модулей и предоставляющая интерфейс API, который используют клиенты (front-end) - приложения и виджеты для абонентских устройств (Set-Top Box, Smart TV, мобильные планшеты и телефоны, компьютеры и т.д.).

Абонентское устройство взаимодействует с веб-сервером для загрузки портала (для приложений, использующих портал как интерфейс пользователя), портал (или нативные приложения на устройствах) взаимодействует с сервером приложений Middleware через API. Сервер приложений представляет собой связку nginx + uwsgi + подсистемы для хранения данных (СУБД), хранения данных телесмотрения (MongoDB), кеш-серверы (Redis).

_images/microimpuls-middleware-architecture.png

1.2. Системные требования

Для работы Smarty требуется 64-битная версия ОС семейства Linux, желательно Linux Debian 8 Jessie с версией Python ветки 2.7.

1.2.1. Расчет конфигурации сервера Middleware

Оптимальная конфигурация на 50000 одновременных пользователей при повышенной интерактивности абонентского приложения (автоматические обновления информации, быстрый отклик, расширенная программа передач, отправка данных статистики просмотров, формирование фильтрованных выборок данных и т.д.):

2 x CPU уровня Intel Xeon E5-2620
64GB DDR3
2 x 500GB HDD (RAID-1)

Максимальная производительность сервера зависит от используемых абонентских приложений и их функций.

Результаты нагрузочного тестирования Smarty при 100000 одновременных пользователей: https://github.com/microimpuls/admin-tools/tree/master/smarty_stress_test/results

1.3. Поддерживаемые СУБД

Для хранения данных Smarty использует внешнюю систему управления базами данных. Поддерживаются системы:

  • SQLite
  • MySQL
  • Percona XtraDB
  • PostgreSQL
  • Oracle

Для создания схемы с резервированием данных рекомендуется использовать СУБД с репликацией по схеме Multi Master, например Percona XtraDB Cluster или Oracle RAC.

1.3.1. Расчет конфигурации сервера СУБД

Оптимальная конфигурация сервера СУБД для MySQL/Percona:

1 x CPU уровня Intel Xeon E3-1230 v3
32GB DDR3
2 x 500GB HDD (RAID-1)