Рассказываем, как мы строили наше S3-хранилище, как оно работает сейчас, и что мы из этого вынесли.
Как было устроено хранилище VK
Хранилище облака VK стало основой для нашего S3-хранилища. Оно состоит из нескольких storage-серверов с дисками. Эти диски объединены в «пары» (pair), а все пары хранятся в PairDB — приложении на Tarantool, отвечающем за состояние всех дисков системы. База FileDB помогает узнать, на какой именно паре находится файл. А сервис Nylon отвечает за работу с базами данных.
Последний сервис, Streamer, помогает помещать контент в хранилище.
Что нужно было добавить
Для реализации протокола S3 было необходимо:
- организовать хранение метаданных;
- обеспечить доступ к объектам через HTTP;
- сгруппировать объекты в коллекции — бакеты;
- реализовать HTTP-S3 Endpoint.
Также мы хотели предусмотреть возможность дальнейшего линейного роста сервиса.
Первые компоненты
Вначале мы добавили S3-демона — стандартный S3 API Amazon с поддержкой работы по XML для метаданных, необходимый для передачи контента.
Что такое облако?
Для терминации SSL, балансировки нагрузки и для логики на Lua перед сервисом мы разместили Nginx. А для хранения метаданных S3 мы использовали Tarantool.
Объектная модель хранения
Вспомним, как работает S3.
Пользователи создают бакеты — коллекции объектов. В рамках бакетов они могут создавать объекты, которые состоят из массива двоичных данных (blob). К атрибутам объектов относятся URL (имя), ACL (список управления доступом) и т.п.
Схема данных при этом может выглядеть так: есть проекты, им принадлежат бакеты, а им принадлежат объекты. Для загрузки составных объектов есть две вспомогательные таблицы: uploads и chunks. Также у проектов есть учетные данные для доступа и биллинг (его мы реализовали на Tarantool).
Доработки S3-хранилища для выхода в продакшн
Для выхода в прод не хватало нескольких моментов.
Во-первых, необходимо было организовать достаточно производительную систему рейт-лимитов, чтобы не перегружать какой-либо участок системы при пиковых нагрузках. Для этого мы снова использовали Tarantool.
Во-вторых, для работы под большими нагрузками необходим был кэш. S3 — горячее хранилище, поэтому важно было оптимизировать доступ к контенту при помощи локального кэша. В итоге мы реализовали многослойный кеш при помощи nginx, локальных, SSD и RAM-дисков без использования Tarantool.
Доработки в бою
Хранилище уже было в бою, но на старте мы упустили из виду фейловер и масштабирование.
Чтобы обеспечить активный фейловер, мы поставили Tarantool на место оригинальной базы. Он стал прокси-роутером запросов за метаданными.
После этого мы занялись разработкой кастомной функции шардирования, а также реализовали решардинг.
Работа с SSL-сертификатами
Другая часть системы — работа с SSL-сертификатами. За балансировку и терминацию SSL у нас отвечает не обычный Nginx, а а OpenResty, то есть Nginx с поддержкой LuaJIT.
Что такое облачное хранилище
Мы смогли научить наш Nginx отдавать произвольные сертификаты. Чтобы отдавать сертификаты динамически, мы воспользовались расширением ssl_certificate_by_lua. А как хранилище для сертификатов мы снова использовали Tarantool.
Наши выводы
По итогам работы над нашим S3-хранилищем, мы сделали несколько важных выводов:
- на реализацию шардинга стоит потратиться на старте;
- cо всеми базами лучше работать через балансировщики;
- лучше сразу установить все инструменты для автофейловера;
- биллинг удобнее реализовывать как отдельный сервис.
Источник: dzen.ru
В VK Cloud запустили сервис для работы с системными данными
Компания VK (бывшая Mail.ru Group) объявила о запуске нового сервиса на облачной платформе VK Cloud. Сервис Cloud Logging предназначен для работы с системными данными — логами.
Как отмечают разработчики, Cloud Logging фиксирует, хранит и отображает в журнале информацию о работе систем, приложений и их компонентов. Это помогает быстро находить ошибки и устранять их.
Сейчас сервис работает в бета-режиме и предоставляется бесплатно. На время тестирования пользователи Cloud Logging могут собирать и анализировать логи приложений, работающих на базе инфраструктуры публичного облака VK Cloud. В дальнейшем Cloud Logging будет доступен и в облачных сервисах VK Cloud, в том числе в Private Cloud.
Директор по продукту VK Cloud Дмитрий Лазаренко объяснил:
С новым сервисом логирования разработчики смогут значительно сократить время на поиск неисправностей. Кроме того, часть ошибок в работе систем без Cloud Logging обнаружить своевременно практически невозможно.
Источник: www.ixbt.com
VK WorkDisk
Корпоративное облачное хранилище для управление файлами и документами.
Похожие на VK WorkDisk
Описание VK WorkDisk
VK WorkDisk (ранее Teambox) — облачное хранилище для компаний и рабочих команд. В WorkDisk компании могут хранить документы и файлы, управлять ими и делиться с сотрудниками. Облачное хранилище — часть корпоративного пространства VK Workspace, в котором помимо хранилища есть почтовый клиент, мессенджер и сервис для создания рассылок.
Для работы с хранилищем руководитель должен пригласить сотрудников и создать общие папки для компании. В папках можно размещать файлы и документы большинства существующих форматов. У папок есть возможность установить максимальный объём. Загруженные видео, изображения, документы можно просматривать непосредственно в браузере.
Также сотрудники могут редактировать их в хранилище, другие члены команды будут видеть внесённые изменения в реальном времени. Если кто-то из сотрудников совершит ошибку, то можно восстановить прошлые версии файлов.
Изначальный доступный объём на сотрудника в VK WorkDisk составляет 5 ГБ но его можно увеличить. Руководители могут создавать новых пользователей, устанавливать максимальный объём личного облака и настроить доступ к папкам. Пользователи, у кого установлен десктопный клиент VK WorkDisk, могут создавать папки на жёстком диске компьютера и синхронизировать их с облаком.
Особенности VK WorkDisk
- Хранение и управление корпоративными файлами
- Просмотр медиафайлов
- Редактирование документов и презентаций
- История версий документов
- Совместная работа
- Управление доступом сотрудников
- Установка объёма папок
Сервис входит в пакет
Цены на VK WorkDisk
Пробный период
Бесплатный тариф
Есть бесплатный тариф для 3 сотрудников. Стоимость подписки начинается от 3990 ₽ в месяц (30 сотрудников, 100 ГБ), дополнительный ГБ стоит 3 ₽.
Возможности VK WorkDisk
Платформы: Веб-приложение Приложение Android Приложение iOS Приложение Windows Приложение Mac
Развёртывание: Облако
Доступные языки: Русский, English
Уведомления
Управление доступом
Поиск и фильтры
Комментарии
Максимальный объем диска, ГБ: 500
Безопасность и конфиденциальность
Персональные данные: Не собираются
Доступ по протоколу
Многофакторная
Резервное копирование в нескольких
Законодательство
Входит в Единый реестр российских
Совместная работа и личная эффективность
Уведомления
Управление доступом
Поиск и фильтры
Комментарии
Облачные хранилища
Максимальный объем диска, ГБ: 500
Двухэтапная аутентификация
Встроенный офис
Увеличение диска приглашениями друзей
Максимальный объем файла, ГБ: Неограниченно
Шифрование соединения
Управление пользователями
Просмотр медиа-файлов без загрузки
Автозагрузка файлов камеры в хранилище
История действий
Бесплатный объем, ГБ: 3
Нет отзывов
Пользовались сервисом VK WorkDisk? 926 пользователей хотели бы прочесть ваш отзыв.
Другие сервисы ООО «ВК»
Askbox
Сервис создания опросов и тестов с инструментами аналитики, распространения через популярные каналы и визуальным редактором.
Источник: startpack.ru