Сегодня затрону острую тему: "S3-хранилища на российском рынке," так как после ухода западных компаний, в особенности AWS (Amazon Web Services), данные хранить людям в России где-то надо.
Начну я с разбора популярных вопросов, а в конце расскажу о вариантах импортозамещённых хранилищ в России.
Для тех, кто впервые со мной: меня зовут Максим, я в IT-сфере уже больше 5 лет и являюсь старшим пресейл-инженером в крупной ИТ-компании.
В данном блоге пишу свои мысли по поводу ИТ, компьютеров и около.
Погнали!
Что такое S3-хранилище, и почему о нем все говорят?
S3 (Simple Storage Service) — изначально чистая разработка/сервис от Amazon, но сегодня S3 применяют, как синоним термину объектного хранилища. В нём вместо привычных файлов и папок (как на обычном компьютере), любые данные хранятся как объекты в специальных корзинах – бакетах (от англ. bucket). Каждый объект состоит из самих данных (допустим, это дом), уникального ключа (как адрес дома) и метаданных (информация о доме: год постройки, из каких материалов, сколько этажей и проч.). S3 стало стандартом объектных хранилищ благодаря своей простоте, колоссальной масштабируемости и надежности.
В последнее время о нём всё больше говорят, так как развернуть объектное хранилище можно на любом "утюге", благодаря open-source решениям, как MinIO и Ceph, а ещё это лучшее хранилище для контейнеризации, которая также набирает популярность при разработке новых приложений и сервисов.
В чем главное преимущество S3 перед классическим SAN- или NAS-хранилищем?
Ключевых преимуществ несколько, и каждый поставщик облачных S3-хранилищ их вам перечислит:
- Бесконечная масштабируемость: Можно создать хранилище на пару десятков петабайт (в 1 ПБ – 1024 ТБ – это больше 9000 игр весом с GTA V) и расширить его до десятков экзабайт (1 ЭБ = 1024 ПБ – уже больше 9 млн. копий GTA V!), а в теории – до почти бесконечности. Это возможно благодаря архитектуре Scale-out – когда можно расширить возможности оборудования вторым таким же и так, вплоть до ограничения ПО или серверной (возможно, даже ЦОДа (Центр Обработки Данных) – он же DC или Дата-центр).
- Выдающаяся надёжность и долговечность: Данные сложно потерять как в случае выхода из строя оборудования, так и в случае его взлома. В первом случае помогают технологии, отвечающие за избыточное хранение: erasure coding (EC) – работает по логике как RAID 5/6, но с настраиваемым числом чётности, и копирование хранилища – когда все данные имеют от 1 дубликата в географически удалённом месте от основного хранения. А во втором от взлома поможет шифрование данных.
- Высокая доступность: Сервис облачных компаний спроектирован так, чтобы выдерживать почти любые сбои оборудования. А благодаря использованию всем известного протокола HTTP/S – доступ к хранилищу можно получить из любой точки мира, где есть Интернет.
- Экономия: Относится только если использовать облачные услуги, когда вы платите только за то, что реально используете (объем хранения, объем передаваемых данных, количество запросов). То есть в таком случае нет огромных затрат на железо (сервера, коммутаторы, инженерные системы и проч.), на его обслуживание, а также электричество и охлаждение. Оплата происходит по факту потребления (pay-as-you-go или StaaS – Storage-as-a-Service).
А разве S3 — это не просто «облачный сервис»?
Нет, и это важный момент! S3-хранилище, в отличие от традиционных СХД (систем хранения данных), можно как развернуть у себя хоть на обычном ноутбуке (такие решения также называют on-premise), так и воспользоваться в виде услуги у облачных провайдеров, таких как Yandex Cloud, VK Cloud и прочих.
В случае on-premise решений – есть варианты поставки как в виде только ПО, так и в виде ПАКа (Программно-Аппаратного Комплекса), то есть готовое решение железо + софт. На российском рынке корпоративные решения S3-хранилищ предлагают следующие компании:
- Киберпротект (Кибер Хранилище),
- Росплатформа (Р-Хранилище),
- Закрома (Закрома.Хранение),
- СКАЛА-Р (МХД.О),
- ВК (Object Storage от VK Cloud),
- Яндекс (Yandex Object Storage),
- Yadro (Tatlin.Object).
- И другие...
Какие реальные задачи можно решить с помощью S3?
Особенно полезно такое хранилище для следующих задач:
- Хостинг статических веб-сайтов: Просто, дешево, масштабируемо под любой трафик. Благодаря архитектуре S3-хранилищ, доступ к инфографике карточки товара в интернет-магазине происходит напрямую, без "посредников".
- Резервное копирование (Backup): Надежное, долгосрочное и недорогое хранение бэкапов. Большинство зарубежных и отечественных производителей ПО для резервного копирования совместимы с S3-хранилищами.
- Хранилище для медиафайлов: Фото, видео, музыка для приложений и сайтов. Не зря ведь YouTube и TikTok используют именно объектные хранилища для хранения и распространения контента, а маркетплейсы – Ozon, WB не смогли бы сдюжить с таким объёмом трафика, используя более традиционные решения для хранения всех данных о товарах. А также большинство облачных дисков (Apple Cloud, Google Drive, Яндекс Диск и пр.) используют S3-хранилища для хранения ваших данных (фото, видео, бэкапы, документы и так далее).
- Озёра данных (Data Lakes) / Аналитика: Централизованное хранилище для огромных объемов структурированных и неструктурированных данных для обработки Big Data специальными инструментами (Hadoop, Spark, Athena, Redshift и Spectrum). Это сильно дешевле традиционных СХД, а благодаря метаданным и тегам – можно ускорить и облегчить структурирование и анализ данных. Также это прекрасное хранилище для необработанных данных перед обучением нейросетей!
- Архивирование: Долгосрочное хранение редко используемых данных в специальных дешевых классах хранения (например, S3 Glacier в AWS). Если завалялся старый сервер с HDD-дисками, то на нём можно спокойно поднять объектное хранилище или добавить в существующее в качестве самого «холодного» хранения.
- Хранилище для разработчиков: Благодаря возможности неограниченного расширения, а также версионированию, объектные хранилища хорошо подходят для разработки приложений, особенно хороши такие хранилища в разработке и тестировании приложений с микросервисной архитектурой.
Есть ли какие-то подводные камни?
Из-за подписочной модели оплаты в случае облачных сервисов решение экономично, однако стоимость может сильно вырасти при огромных объемах данных, большом количестве запросов или высоких объемах исходящего трафика – зависит от того, что именно тарифицируется. Поэтому необходимо следить за тарифами и, по возможности, оптимизировать хранение, используя различные классы хранения (горячие-холодные), а также управляя жизненным циклом объектов – удаление по истечении определённого времени, версионирование (когда при изменении объекта сохраняется как исходник, так и новая версия).
Задержка выше, чем у традиционных СХД на SSD-дисках, поэтому такие хранилища не для высокопроизводительных СУБД (OLTP, OLAP и прочие). А также объектные хранилища не рассчитаны на работу с большим количеством мелких данных, они намного лучше справляются с крупными объектами – видео, фото, документы, бэкапы и прочие.
Заключение
S3-хранилища — это фундамент современного хранения данных почти у любого облачного провайдера и крупного сервиса. Такое хранилище всегда легко протестировать как в виде услуги, так и развернув на своих мощностях соответствующее ПО. Конечно решение не универсальное, но в современных реалиях очень хорошо подходит под широкий круг задач, ведь объёмы данных с каждым годом только растут, и иметь легко и безгранично расширяемое хранилище под рукой — отличное решение.
P.S.
Спасибо за уделённое время столь важной статье!
Буду рад вашим мыслям и вопросам в комментариях - пишите, сталкивались ли вы с S3-хранилищами отечественного производства, и о чём именно хотели бы узнать в следующих публикациях по данной теме.
Подписывайтесь, чтобы не пропустить продолжение.
Всем добра!