🗓 36-я годовщина IMDb — Internet Movie Database

17 октября 1990 года Кол Нидхэм опубликовал в USENET-группе rec.arts.movies набор Unix shell-скриптов для поиска по спискам фильмов. Так родилась IMDb — на сегодня крупнейшая онлайн-база данных о кино, телевидении и видеоиграх.

И вот тут интересно рассмотреть как менялся техстек этого проекта:

В 1990 это были Unix shell-скрипты и текстовые файлы, а поиск выполнялся прямо из терминала ОС.

К 1995 это был уже сайт, контент стал доступнен через браузер. Внутреннее ПО было написано с нуля на Perl.

В 1998 проект IMDb покупает Amazon и в несколько итераций буквально перекраивает техстек.

Для начала они перенесли контент из файлов в БД под управлением MySQL. А позднее провели куда более мощные преобразования.

Сегодня «под капотом» у проекта IMDb гибридная архитектура на AWS:
• Amazon DynamoDB — NoSQL и key-value БД;
• Amazon Neptune — графовая БД для хранения связей между сущностями (knowledge graph);
• Amazon OpenSearch — полнотекстовый поиск;
• AWS Lambda + federated GraphQL — 19 субграфов (graphlets) и единый шлюз для клиентов (в IMDb данные для каждого уникального запроса параллельно извлекаются из 19 коллекций);
• Amazon S3 + CloudFront — хранение и раздача статики, предрасчитанных индексов и трейлеров.

И отдельно про «Магический поиск» (Magic Search): каждый, кто хоть раз пользовался IMDb отмечал, что она нереально быстро выдает информацию в ответ на Ваши запросы.

Результаты появляются мгновенно, пока Вы набираете запрос.

Как это работает?
Предположим, что Вы набрали «sta» и получили в ответ киноэпопею Star Wars, сериал Star Trek и актера Сильвестра Cталлоне. IMDb заранее рассчитала все осмысленные варианты, куда входит набранное Вами сочетание букв. Данные по каждому такому варианту сохранены в виде готовых документов. Комбинации, которые ни к чему не ведут (вроде stb), не сохраняются.

В результате поддерживаются в актуальном состоянии около 150 000 статических документов о фильмах и снявшихся в них актерах.

Готовые файлы с этим контентом лежат в Amazon S3 и раздаются через Amazon CloudFront (CDN от Amazon).

За счет использования CDN они физически близки к пользователю и отдача происходит намного быстрее, чем генерация любого динамического контента.

По сути, динамический поиск превратили в раздачу статики. Сервер ничего не генерирует в момент запроса — он просто отдаёт Вам через CDN заранее подготовленный файл. Это и обеспечивает ту самую «магическую» скорость работы под огромными ежедневными нагрузками.

В «кровавом enterprise» корпоративные архитекторы за такое бы руки вырвали любому, кто посмел бы такое предложить.

Но здесь во главу угла было поставлено не абстрактное «соответствие канонам», а практическая польза, стоимость запроса и впечатления пользователей от работы с порталом.

А потому IMDb живет и весьма шустро отвечает под нагрузкой более 200 миллионов запросов в день.

Еще раз поздравляем этот интересный с инженерной точки зрения проект с 36 годовщиной его существования.

Всем хороших выходных и отличного настроения!
Просмотры: 211
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти