Привет, Хабр! Меня зовут Александр Гришин, я менеджер продуктов и отвечаю за развитие облачных баз данных и объектного хранилища в Selectel. Считаю, что новый год — отличное время, чтобы взглянуть на технологии по-новому. Например… через призму Top Gear.

Предлагаю вам немного развлечь себя разными аналогиями между миром транспорта и инструментами хранения данных. Ведь в мире облачных технологий, как и в программе Top Gear, для каждой задачи есть свой «транспорт».

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

Объектное хранилище как гигантский контейнеровоз


Что такое объектное хранилище? По сути, это универсальное решение для больших объемов данных, которое идеально подходит для хранения мультимедиа, архивов, ML-моделей, записей с камер видеонаблюдения, резервных копий и т. д. А еще позволяет хранить объекты (они же файлы) любого размера и обеспечивает простой доступ к ним из любой точки мира через интернет.

В мире Top Gear объектное хранилище (S3-хранилище) — это огромный корабль-контейнеровоз. Его стихия — надежность, масштабируемость, практически неограниченные размеры, низкая цена и при этом доступность из любой точки мира. Пусть он не самый быстрый, зато доставит груз в целости и сохранности, куда бы вы его не отправили. И если вы думаете, что мы это придумали, то ошибаетесь. Именно так S3 видит нейросеть:


Как нейросеть видит корабль-контейнеровоз S3.

Особенности решения


Одно из главных преимуществ заключается в том, что объектное хранилище можно использовать через браузер — из любой точки мира. Для этого даже не обязательно быть клиентом облачного провайдера. Но это не все.

С объектными хранилищами удобно взаимодействовать. Например, можно легко работать через интерфейс панели управления Selectel. Или использовать привычное клиентское ПО вроде Cyberduck, Rclone, Veeam и т. д. Кроме того, вы можете монтировать S3-хранилище в файловую систему своей ОС, например, при помощи Mountpoint-s3, s3fs или GeeseFS. Тогда процесс загрузки объектов (файлов) будет мало отличаться от работы с простой директорией.

Для работы с объектными хранилищами есть удобные API. Это особенно актуально, если вы разрабатываете веб-проект, когда доступ к объектам инфраструктуры нужен прямо из кода. Например, вы можете использовать S3 API, Swift API и Selectel Storage API. Кроме того, не обязательно работать с веб-запросами API напрямую — можно использовать готовые библиотеки.

Главное: объектные хранилища позволяют хранить десятки или даже сотни петабайт данных. Пока что для хранения и доставки больших данных в любую точку мира индустрия не придумала инструмента лучше, чем контейнеровоз объектное S3-хранилище.


Вместительный скоростной поезд, или файловое хранилище NFS/CIFS


Файловое хранилище — это сетевое хранилище, которое позволяет подключать одну или несколько виртуальных машин к общему пространству (блочному устройству) для хранения. При этом оно монтируется на уровне файловой системы виртуальной машины с использованием стандартных протоколов NFS (Network File System) или CIFS/SMB (Common Internet File System/Server Message Block). Файлы в нем будут доступны так же, если бы они хранились в папке на локальном диске.

Решение хорошо подходит для рабочих сред и проектов в облаке, когда нужны быстрая работа с общими файлами, папки для команды, хранение образов виртуальных машин или Persistent Volume для систем оркестрации контейнеров K8s.

В мире Top Gear файловое хранилище — это поезд для задач хранения данных внутри облака. Он может быть медленнее самолета, но чаще всего будет быстрее контейнеровоза. Такой «поезд» прекрасно справляется с хранением локальных резервных копий, совместным доступом к файлам или хранением образов виртуальных машин.


Как нейросеть видит скоростной поезд NFS.

Однако файловое хранилище эффективно работает только в пределах инфраструктуры облачного провайдера. Здесь отлично прослеживается аналогия с поездом, ведь он может передвигаться только по железнодорожным путям. Если вам нужно доставить данные за пределы «сети железнодорожного полотна», возможно, стоит рассмотреть другой инструмент.

Особенности решения


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

К файловым хранилищам можно организовать доступ через клиентское приложение, если оно умеет взаимодействовать с протоколами NFS/CIFS/SMB. Аналогичным образом поддерживается работа из собственного кода. На GitHub есть даже готовые клиенты для Python вроде NfsClient.

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

Грузовой самолет — аппаратная СХД


Аппаратная СХД — это физическое оборудование, специально созданное для централизованного хранения данных. Оно представляет собой массивы жестких дисков и специализированные контроллеры, которые управляют этими дисками.

Аппаратные СХД обеспечивают высокую производительность, надежность и отказоустойчивость, что делает их популярными в корпоративных средах для работы с критически важными данными.

В мире Top Gear аппаратная СХД напоминает грузовой самолет, созданный для скорости и надежности. Это дорогое и мощное решение, которое обеспечивает высокую производительность и минимальные задержки при работе с данными.


Аппаратная СХД в виде самолета, взгляд нейросети.

Особенности решения


Как и в случае с самолетом, вам понадобится заранее подготовить «аэропорт» — специализированную инфраструктуру. Для работы СХД нужна выделенная сеть (обычно на базе технологий Fiber Channel или InfiniBand), обеспечивающая сверхбыструю передачу данных.

Кроме того, специализированная инфраструктура включает использование отдельных коммутаторов, специальных адаптеров (HBA, Host Bus Adapter), которые подключаются к серверам, и качественной оптики для соединения всех компонентов.

Вместе с этим потребуется настройка LUN-ов (Logical Unit Numbers) — логических разделов, которые предоставляют доступ к хранилищу, как если бы это были локальные диски на сервере. А еще для организации «аэропорта» нужно правильно настроить доступ, разделение ресурсов и RAID.

Иными словами, для работы «самолета» потребуется целый авиационный комплекс, который должен включать профессиональный подход и квалифицированную команду. Только тогда все заработает как часы. Зато, как только все настроите, ваши данные «взлетят» с невероятной скоростью и прибудут туда, куда нужно, с максимальной надежностью.

Важно: аппаратные СХД обычно используют в пределах FC-сети в рамках ЦОД. Однако технически возможно использование поверх TCP/IP — в том числе через сеть интернет.

Объем хранения в аппаратных СХД обычно больше, чем в файловых хранилищах. Это может быть порядка сотен терабайт или даже десятка петабайт. При этом, возможно, аппаратные СХД — самые производительные системы хранения данных, созданные индустрией.

Облачные базы данных — от автомобиля до гоночного болида


Облачные базы данных — это автомобили мира данных. Они бывают самыми разными: от экономичных гибридов для CMS до мощных болидов для DWH. При этом базы данных могут хранить от сотен гигабайт до десятков терабайт данных.

Выбирайте машину разумно, ориентируйтесь на свои задачи. Давайте рассмотрим основные модели.

MySQL — надежный и экономичный Toyota Prius для базовых задач



MySQL глазами нейросети.

Это одна из самых популярных систем управления реляционными базами данных (СУБД) с открытым исходным кодом. Она разработана для хранения, управления и работы с данными, организованными в таблицы, строки и столбцы. Это делает ее удобной для множества приложений — от веб-сайтов до корпоративных систем.

В мире Top Gear MySQL как Toyota Prius: надежный, проверенный временем, простой в использовании вариант, который идеально подходит для базовых задач. Он экономичен и обеспечивает стабильную работу при умеренных нагрузках. Для начинающих — идеальное решение, которое «просто работает». Возможно, у MySQL не самая высокая мощность, но зато отличная оптимизация.

Ключевые особенности


  • Реляционная структура. Данные организуются в таблицы, связанные друг с другом с помощью ключей.
  • Поддержка SQL (Structured Query Language). MySQL использует язык SQL для выполнения запросов: выборки, добавления, изменения или удаления данных.
  • Масштабируемость. Решение подходит как для небольших приложений, так и для систем с большими объемами данных.
  • Высокая производительность. MySQL оптимизирована для работы с быстрыми операциями чтения/записи.
  • Поддержка транзакций. Решение предоставляет средства для обеспечения атомарности, согласованности, изоляции и долговечности (ACID).
  • Широкая экосистема. Существуют многочисленные инструменты и библиотеки для управления, мониторинга и интеграции MySQL.

PostgreSQL — кастомная машина, которую можно подстроить под любые нужды



PostgreSQL в виде кастомного Ford.

Это мощная, надежная и широко используемая система управления реляционными базами данных (СУБД) с открытым исходным кодом. PostgreSQL известна своей гибкостью, расширяемостью и богатым набором функций. А еще она идеально подходит как для традиционных реляционных задач, так и для современных приложений, требующих работы с нереляционными данными.

В мире Top Gear PostgreSQL — это автомобиль, собранный под конкретные задачи. Это кастом, в котором можно выбрать любые параметры: мощность, колеса, тип кузова и даже использовать экстремальные модификации. Под капотом — мощный движок, который позволяет работать практически с любыми нагрузками.

Это выбор тех, кто хочет гибкости и готов вложиться в настройку, чтобы получить максимум от своей машины. В зависимости от вашего проекта, PostgreSQL может быть представлен и как гоночный Ford Mustang, и как грузовая фура из фильма «Безумный Макс».

Ключевые особенности


  • Реляционная структура. Данные организуются в таблицы, связанные друг с другом с помощью ключей.
  • SQL (Structured Query Language). PostgreSQL использует язык SQL для выполнения запросов, таких как выборка, добавление, изменение или удаление данных.
  • Кастомизируемость. Позволяет пользователям добавлять собственные функции, операторы, агрегаты и даже типы данных. В качестве примера можно рассмотреть мое любимое решение Parquet S3 FDW, которое позволяет взаимодействовать с файлами, расположенными в объектных S3-хранилищах, используя SQL-запросы. Передаю привет инженерам, считавшим, что такая фича есть только в ClickHouse.
  • Поддержка транзакций. Решение предоставляет средства для обеспечения атомарности, согласованности, изоляции и долговечности (ACID).
  • Высокая производительность. PostgreSQL обеспечивает параллельное выполнение запросов и оптимизацию ресурсов.
  • Открытый исходный код. Решение постоянно развивается благодаря большому сообществу разработчиков.
  • Расширенная работа с данными. Поддерживает JSON и XML для работы с нереляционными данными. Обеспечивает индексацию сложных типов данных, таких как массивы, хранилища JSONB и геоданные.

Redis — стремительный городской мопед для коротких дистанций



Доставка Redis на мопеде.

Это быстрое хранилище данных в оперативной памяти с открытым исходным кодом, которое поддерживает различные структуры данных: строки, списки, множества, хеши и отсортированные множества.

Redis обычно используют для кэширования, управления сессиями, реализации очередей и обмена сообщениями, обеспечивая мгновенный доступ к данным. Кроме того, решение может работать как база данных с высокой производительностью, сохраняя данные в памяти и поддерживая различные методы сохранения на диск для долговечности. Благодаря своей скорости и гибкости Redis часто используют для оптимизации приложений и обработки больших данных в реальном времени.

В мире Top Gear Redis — это типичный курьерский мопед в большом азиатском городе, быстро доставляющий заказ на короткие дистанции. Он прост, легок и невероятно быстр. Да, у него нет большого кузова для длительного хранения данных, но если нужно оперативно доставить что-то не очень большое, Redis сделает это за миллисекунды. Идеален для кэширования и моментальной обработки.

Ключевые особенности


  • Нереляционная модель данных, ориентированная на работу со строками, списками, множествами и хешами. Это позволяет работать с гибкими и быстрыми типами данных, которые не требуют схемы как в реляционных БД.
  • noSQL. В отличие от реляционных СУБД, Redis не использует SQL. Он имеет собственный набор команд для работы с данными, который ориентирован на конкретные структуры — например, на команды для работы со строками, списками, хешами и т. д. Работа с Redis происходит через API, командную строку или клиентские библиотеки.
  • Поддержка транзакций. Решение поддерживает основные транзакционные возможности через механизм, называемый MULTI/EXEC. Это позволяет сгруппировать несколько команд в одну транзакцию, что гарантирует их выполнение как единое целое. Однако в отличие от традиционных реляционных СУБД, транзакции в Redis не обеспечивают такую же строгую изоляцию.
  • Производительность. Это является одним из главных преимуществ Redis, поскольку данные хранятся в оперативной памяти. Redis может обрабатывать миллионы операций в секунду, что делает его идеальным выбором для задач с высокими требованиями к скорости — например, для организации кэширования, очередей сообщений и обработки данных в реальном времени.

Kafka — огромный почтовой грузовик



Автопоезд Kafka, представление от нейросети.

Это распределенная платформа для обработки потоковых данных (часто используется термин шина данных), которая используется для создания, хранения и обработки потоков сообщений в реальном времени. Kafka позволяет эффективно передавать большие объемы данных между различными системами, обеспечивая высокую доступность, масштабируемость и устойчивость к сбоям.

В мире Top Gear Kafka будто скоростная фура-автопоезд для доставки сообщений, который беспрерывно перевозит данные с высокой скоростью. Подобно почтовому фургону, он может отправлять большие объемы информации в разные места и гарантирует, что ни одно сообщение не потеряется. Этот «автопоезд» создан для надежной и массовой доставки.

Ключевые особенности


  • Нереляционная модель данных. Kafka не требует фиксированных схем и таблиц для хранения данных. Она ориентирована на потоковую обработку и хранение сообщений в виде тем (topics), которые могут быть разбиты на партиции (partitions).
  • noSQL. В отличие от реляционных БД, запросы к данным в Kafka не строятся на языке SQL. Для взаимодействия с данными используются специализированные API и команды для отправки или чтения сообщений в реальном времени.
  • Поддержка транзакций. Kafka поддерживает транзакции, что гарантирует атомарность записи сообщений в несколько тем или партиций.
  • Производительность. Решение считается производительным инструментом благодаря своей распределенной архитектуре. Чаще используется в системах с высокими требованиями к пропускной способности, нежели в системах, которые требовательны к низким показателям latency.

OpenSearch — внедорожник с умным бортовым компьютером, автопилотом, GPS и сенсорами



Навороченный внедорожник, вдохновленный OpenSearch.

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

В мире Top Gear OpenSearch напоминает мощный внедорожник, который может ездить по самым сложным дорогам и находить нужную информацию даже в труднодоступных местах. Благодаря умному бортовому компьютеру, продвинутой навигации и сенсорам (поисковым и аналитическим возможностям) он легко прокладывает путь через «пересеченные» массивы данных и находит нужные ключевые точки. OpenSearch — именно тот инструмент, про который говорят: «Эта машина умнее водителя».

Ключевые особенности


  • Нереляционная модель данных. OpenSearch ориентирован на работу с индексами, в которых данные хранятся в виде документов, а не таблиц. При этом решение использует JSON для хранения и поиска информации.
  • SQL-like. Несмотря на то, что OpenSearch не использует SQL в традиционном виде, он предоставляет интерфейс для выполнения SQL-подобных запросов. Это упрощает работу с данными для пользователей, знакомых с реляционными СУБД.
  • Не поддерживает традиционные транзакции (ACID), так как это делают реляционные СУБД.
  • Производительность. Считается, что OpenSearch обладает высокой производительностью благодаря своей распределенной архитектуре и возможности горизонтального масштабирования. Он эффективно индексирует и выполняет поисковые запросы по огромным объемам данных, поддерживает автошардирование.
  • Работа с данными. Решение работает с данными в виде документов JSON и индексирует их для быстрого поиска и анализа. Поддерживает гибкую и мощную модель запросов, позволяя выполнять полнотекстовый поиск, фильтрацию, агрегацию и прочий анализ данных.

ClickHouse — гоночный болид для аналитики больших данных



ClickHouse в стиле Top Gear глазами нейросети.

Это высокоскоростная аналитическая реляционная колоночная база данных с открытым исходным кодом, предназначенная для обработки больших объемов данных в реальном времени. ClickHouse поддерживает SQL-подобный язык запросов и является мощным инструментом для анализа данных в реальном времени и построения аналитических систем. Также используется для логирования, мониторинга и обработки больших данных.

В мире Top Gear ClickHouse — это как высокотехнологичный гоночный болид. Он специально настроен на максимальную скорость при обработке аналитических запросов. Как болид на трассе, ClickHouse эффективно использует ресурсы для мгновенного анализа огромных массивов данных, но лучше всего работает на подготовленных трассах (оптимизированных данных).

Ключевые особенности


  • Реляционная структура. ClickHouse — реляционная база данных, но в отличие от традиционных СУБД использует колоночное хранение данных. Это позволяет значительно ускорить операции аналитического типа — например, агрегацию и фильтрацию по колонкам.
  • SQL-like. Решение поддерживает SQL-подобный язык для запросов, что позволяет использовать стандартные SQL-команды для работы с данными: SELECT, INSERT, JOIN, GROUP BY, ORDER BY. А также многие специфические функции для аналитических запросов — например, оконные функции, агрегации и функции для работы с временными рядами.
  • Не поддерживает традиционные транзакции (ACID). Системы, использующие ClickHouse, обычно не требуют жестких транзакционных гарантий.
  • Производительность. ClickHouse оптимизирован для высокой производительности при выполнении аналитических запросов — особенно при обработке больших объемов данных. Считается хорошим инструментом хранения для OLAP-ориентированного профиля нагрузки.

Выводы


Выбор облачного хранилища похож выбор транспорта для вашей задачи.

  • Нужно дешево перевезти груз в любую точку мира? Выбирайте S3.
  • Хотите быстрые локальные операции внутри облака? Используйте файловое хранилище на NFS или CIFS.
  • Нужна enterprise-скорость, надежность и производительность без ограничений по бюджету? Добро пожаловать в мир аппаратных СХД.
  • А если любите контроль и драйв, берите облачные базы данных, как ваш личный суперкар.

Напоминаю. «Модель мира», рассмотренная в статье, — шуточная. Она построена на моих ассоциациях, и я считаю ее довольно интересной. Модель не претендует на звание технически точного отражения реальности, но как первое знакомство с продуктами хранения данных в Selectel может оказаться полезной.

В Top Gear для каждой трассы есть подходящая машина. Желаю и вам в новом году найти наиболее подходящий инструмент хранения данных. С этим вам может помочь наш сайт.

Давайте попробуем дополнить мир Top Gear. Расскажите, с чем в рамках представленной модели у вас ассоциируется MongoDB?

Комментарии (1)


  1. skymal4ik
    14.01.2025 14:53

    Эх, я уж думал будет про запись/обработку/передачу/продакшен медиа данных с популярнейшего шоу. С экшен камер там, дронов.

    А тут просто притянутые за уши аналогии, еще и с отвратительной нейрографикой.