Фотосервис 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.
А вы переносили большие объёмы данных между провайдерами? Расскажите в комментариях, что было самым сложным. Подписывайтесь, чтобы не пропустить новые разборы.