Добавить в корзинуПозвонить
Найти в Дзене
VK Tech

Как Vigbo перенесли до 3 ПБ фотографий в VK Cloud и ускорили загрузку изображений на 15%

Перенести три петабайта данных — это не операция «на выходные». Это объём, сопоставимый с миллионами фотоальбомов, и переместить его нужно так, чтобы сервис ни на минуту не остановился. Vigbo прошли этот путь за три недели. Разберём, как устроена миграция фотосервиса и почему после неё снимки стали грузиться быстрее. Vigbo — сервис для фотографов. Он помогает собрать сайт-портфолио и передать клиентам снимки через онлайн-галереи: фотограф загружает съёмку, клиент открывает галерею и скачивает нужные кадры. Для такого сервиса важны четыре вещи: Если галерея открывается медленно, а архив со снимками скачивается с обрывами, страдает и фотограф, и его клиент. Поэтому инфраструктура для Vigbo не фон, а часть продукта. Раньше сервис работал на двух площадках: фотографии хранились в Google Cloud, а виртуальные машины и база данных PostgreSQL жили у другого провайдера. Такая схема упёрлась в несколько ограничений: Для фотосервиса трафик — основная статья нагрузки: пользователи постоянно загруж
Оглавление

Фотосервис Vigbo мигрировал виртуальные машины, объектное хранилище и базу данных в облако без остановки работы. Рассказываем, как прошёл переезд и что изменилось для пользователей.

Перенести три петабайта данных — это не операция «на выходные». Это объём, сопоставимый с миллионами фотоальбомов, и переместить его нужно так, чтобы сервис ни на минуту не остановился. Vigbo прошли этот путь за три недели. Разберём, как устроена миграция фотосервиса и почему после неё снимки стали грузиться быстрее.

Что такое Vigbo и почему для него критична скорость

Vigbo — сервис для фотографов. Он помогает собрать сайт-портфолио и передать клиентам снимки через онлайн-галереи: фотограф загружает съёмку, клиент открывает галерею и скачивает нужные кадры.

Для такого сервиса важны четыре вещи:

  • высокая скорость загрузки изображений;
  • стабильная передача больших объёмов данных;
  • безлимитный трафик;
  • надёжное хранение фотографий.

Если галерея открывается медленно, а архив со снимками скачивается с обрывами, страдает и фотограф, и его клиент. Поэтому инфраструктура для Vigbo не фон, а часть продукта.

Почему Vigbo ушли от прежней инфраструктуры

Раньше сервис работал на двух площадках: фотографии хранились в Google Cloud, а виртуальные машины и база данных PostgreSQL жили у другого провайдера.

Такая схема упёрлась в несколько ограничений:

  • дорогой трафик;
  • отсутствие безлимитной передачи данных;
  • риски для стабильной работы сервиса в России.

Для фотосервиса трафик — основная статья нагрузки: пользователи постоянно загружают и скачивают тяжёлые файлы. Когда за каждый гигабайт нужно платить, а стабильность доступа из России под вопросом, это бьёт и по экономике, и по пользовательскому опыту. Vigbo решили перенести всю архитектуру в VK Cloud.

Как перенесли до 3 ПБ за три недели

Главная сложность миграции — объём. Три петабайта нельзя перелить одним потоком за ночь.

Команда подняла 12 виртуальных машин-миграторов. Они работали параллельно: одновременно скачивали контент со старого хранилища и загружали его в новую инфраструктуру. Так передача распараллелилась, и перенос уложился в три недели.

Сервис при этом не останавливался: пользователи продолжали работать с галереями, пока данные переезжали в фоне. После завершения миграции VK Cloud стал основной инфраструктурой для российских пользователей.

Как устроена инфраструктура Vigbo в VK Cloud

Сейчас сервис опирается на три компонента облака.

Виртуальные машины — галереи и ZIP-архивы

Vigbo подключили пять облачных серверов. Они формируют галереи, готовят ZIP-архивы со снимками и обрабатывают запросы пользователей.

Нагрузка у фотосервиса неравномерная, поэтому машины масштабируются автоматически: при обычной активности работают две-три, а когда запросов становится больше, подключаются дополнительные серверы. Платить за простаивающие мощности не приходится.

Object Storage — хранилище для более 3 ПБ фотографий

Оригиналы снимков лежат в объектном хранилище S3. Фотографы загружают файлы туда напрямую по подписанным ссылкам, без лишнего звена в виде промежуточного сервера.

Когда пользователю нужен снимок определённого размера, виртуальные машины достают оригинал из хранилища, меняют размер, передают изображение в CDN и отдают его пользователю. Так один и тот же файл превращается то в превью для галереи, то в полноразмерный кадр для скачивания.

PostgreSQL — данные всего сервиса

База данных PostgreSQL хранит структуру сервиса: галереи, пользователей, фотографии, комментарии и системную информацию. Она связывает компоненты между собой и синхронизирует их работу.

Что изменилось после миграции

Часть зарубежной инфраструктуры Vigbo оставили для международных клиентов, но российская архитектура полностью работает в VK Cloud.

После переезда команда зафиксировала:

  • рост скорости загрузки фотографий на 15%;
  • стабильную передачу файлов;
  • более предсказуемую производительность сервиса.

«После миграции архитектура сервиса усложнилась. При этом мы отметили, что скорость загрузки фотографий выросла на 15% и стала стабильной. Это критически важный критерий, который влияет на пользовательский опыт».

Юрий Толпыго, CTO Vigbo

15% к скорости загрузки — это не косметика. Для сервиса, где клиент открывает галерею и ждёт, пока прогрузятся кадры, каждая доля секунды меняет впечатление от продукта.

Как облако помогло запустить распознавание лиц

Стабильная инфраструктура дала Vigbo не только скорость, но и базу для новых функций. В последнем релизе сервис запустил распознавание лиц: система определяет, на каких кадрах присутствует конкретный человек, и помогает фотографу быстро отобрать нужные снимки.

Для этой задачи понадобилась GPU-инфраструктура в VK Cloud. Под капотом функция:

  • анализирует фотографии;
  • кластеризует изображения;
  • строит граф связей между лицами.

Сейчас распознаванием лиц ежедневно пользуются около 6500 фотографов.

Что в итоге

Кейс Vigbo показывает, что миграция даже на петабайтных объёмах — управляемая задача, если переносить данные параллельно и не останавливать сервис. А переезд в облако с безлимитным трафиком оказался не только про экономику: он дал прирост скорости и почву для новых функций вроде распознавания лиц на GPU.

А вы переносили большие объёмы данных между провайдерами? Расскажите в комментариях, что было самым сложным. Подписывайтесь, чтобы не пропустить новые разборы.