Картер
Главная / Техническая информация

Техническая информация об этом архиве и всех его компонентах.


Начну пожалуйте с общего представления о структуре самого архива.
Архив делится на 3 части сайт (бэкенд и фронтент). А так же, бэкэнд (хранилище и его обработчик).

Как это работает?
Сейчас вы находитесь на фронтенде. Это сам сайт, я использовал Twitter Bootstrap Framework 4.6.0 - это набор CSS (каскадные стили) и JavaScripts (скрипты обработчики на стороне клиента). Сайт полностью на HTML5.
Он оптимизирован и под мобильную версию в том числе. Другими словами, мы можете просматривать сайт на любом устройстве.
Мы используем последнюю версию JW Player на обычной версии сайта. И html 5 player (встроенный в браузер) для мобильной.
Бэкенд - это та часть, которая обрабатывается со стороны сервера. Перед тем как будет выведена информация вам на экран. Здесь все просто, написано это на PHP 7 версии, с кешированием. Что бы контент быстро отдавался вам.
База данных на SQLite начиная с версии архива 2.3. Ранее мета-данные хранились в файле.
Для сайта не были использованы "движки" (готовые CMS). Каждый байт кода, написан мною лично.

А теперь поговорим о хранении информации. Изначально, эта часть у нас была плохо проработана. Во-первых потому, что не было железа для создания хорошего хранилища.
Ведь на момент момент появления идеи, мы абсолютно не были подготовлены. Во-вторых, мы еще не знали какие это будут объемы данных, нагрузка и скорость работы.
И так, первая версия хранилища состояла из Raspberry PI 2 и внешнего USB диска на 2Tb. И первые пару недель, контент отдавался именно им через nginx. На всякий случай, было введено ограничение по странам.
Могли смотреть видео только из стран России, Украины, Эстонии и Белоруси.
Позже, я пересмотрел эту схему и решил отдавать самим вэбсайтом весь контент. Подключив хранилку через NFS (network filesystem). Понятное дело, что с такой конфигурацией. Производительность была не на высоте. Не смотря на хорошие каналы связи.

В июле 2019 года, я купил сервер под хранение данных. Так стала появляться версия 2.
Сейчас это оборудованный сервер с отказоустойчивостью и хорошей производительностью. Интернет-канал у которого 890Мбит/890Мбит.
890Mb/890Mb
Сейчас там установлены диски по 16Тб в рейд-массиве. А запись производится в docker контейнере. Что же внутри контейнера? Там живет автоматизированная запись стримов. Скрипт который переименовывает файлы, после записи. И генерация превью для каждого видео. То есть, архив полностью автоматизированный и не требует участия кого-либо. Что остается нам, это проверять все ли хорошо периодически :)

Оборудование
Вэб-сервер:
Процессор: 8 x Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz (1 Сокет)
Память: 6Gb (выделено под сайты)
Диск: 50Gb NVME (m2) (выделено под сайты)

Архив (хранилище):
Процессор: AMD Opteron X3418 (4 cores) 1,8Ghz (Turbo 3.2Ghz)
Память: 2x Kingston 8Gb DDR4 (2400Mhz) for server
Диски: 2х SATA-3 16Tb WD Gold 7200rpm [WD161KRYZ] Cache 512Mb (RAID-1), 2x WD 18Tb Ultrastar DC HC550 (7200rpm) 512Mb 3.5" (WUH721818ALE6L4) и TRANSCEND 2.5" SSD370S 64 Гб SATA III MLC TS64GSSD370S
Скорость чтения дисков: 300+ мегабайт/сек.

Информация по архиву:
Количество видео:
Трансляции 1541
Загруженные 113
Занимаемое место: 15 Тб + 5,8 Тб

Все под ОС linux (Debian\Ubuntu).

Итог
Мы сделали полноценный архив для нашей любимой стримерши Вики. Полностью на собственном энтузиазме.
Этот сайт всегда будет бесплатным для всех желающих. Мы не требуем никаких донатов и прочей фигни от своих посетителей (в отличии от похожего сайта). Нас никто не спонсировал, мы просто делаем любимое дело.
Ну и на последок, фото первого и второго архива:
photo 1 photo 2