Написать пост

Обзор DBaaS: что нужно знать про базы данных в облаке, чтобы не ошибиться с выбором

Аватарка пользователя Dmitrii Lazarenko

Обозреваем 8 видов облачных БД. Рассказываем, какие базы данных доступны из облака и для каких задач больше подходит каждая из них.

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

Упростить эту работу для тех, кто занимается эксплуатацией СУБД, независимо от размера и ресурсов компании, позволяют облачные базы данных, предоставляемые по модели DBaaS (Database-as-a-service). Они снимают огромную часть эксплуатационной рутины по их развертыванию, настройке и масштабированию.

Рассказываем, какие базы данных доступны из облака и для каких задач больше подходит каждая из них.

Базы данных — важный элемент любого современного бизнес-приложения. Раньше приходилось развертывать и администрировать их самостоятельно, нанимая для этого отдельных специалистов.

Теперь, благодаря развитию облачных платформ, можно получить готовые и настроенные базы данных как сервис — DBaaS. В рамках этой модели за развертывание и администрирование СУБД отвечает облачный провайдер. В облаках доступны разные базы данных — и каждая из них имеет свои особенности.

Популярность облачных баз данных растет. В обзоре Research and Markets, опубликованном в июне 2021 года, мировой рынок облачных баз данных оценивался в $12,67 млрд в 2020 году. По предварительному прогнозу агентства, к концу 2021 года он должен был превысить $15 млрд. Средний темп роста рынка (CAGR) с 2020 по 2026 год составит 19,6%.

Стремительное развитие рынка DBaaS объясняется рядом причин:

  • Распределенное хранение информации в облаках надежнее, чем на собственных серверах.Для того чтобы организовать резервное копирование данных на собственных мощностях, придется развертывать и администрировать мощную и дорогую инфраструктуру. А в облаке бэкапы доступны как часть сервиса.
  • DBaaS легче развертывается и масштабируется: для этого не нужно закупать сервера и нанимать отдельных специалистов.На самостоятельное развертывание и настройку СУБД можно потратить несколько дней. В облаке это делается за несколько минут, а масштабировать вычислительные ресурсы под растущую базу данных можно за пару кликов.
  • DBaaS позволяет экономить на ИТ: сервис от облачного провайдера подразумевает оплату в размере фактической нагрузки — не нужно переплачивать за простаивающие мощности.Кроме этого, снижаются эксплуатационные расходы, включая оплату труда ИТ-специалистов. Администрированием и поддержкой облачных баз данных занимается провайдер, компания только управляет данными.
  • Облачные базы данных позволяют командам быстро запускать проекты (или целые стартапы) и тестировать гипотезы без капитальных вложений.Например, одновременно проверять несколько бизнес-гипотез, из которых одну-две успешные можно масштабировать, а остальные — свернуть, просто выключив мощности. Таким образом, достигается 100%-ое использование арендованных вычислительных ресурсов.В случае с собственной инфраструктурой придется купить «железо» под гипотезы, а затем думать, что делать с серверами, оставшимися от неудачных проектов.

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

MySQL

Самая популярная в мире универсальная реляционная база данных с открытым исходным кодом и 25-летней историей. MySQL включена во множество комплексных решений, например, стек веб-технологий LAMP (Linux, Apache HTTP Server, MySQL и PHP).

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

Все это сделало MySQL отличным выбором для небольших проектов, ожидающих от своей базы данных наличия лишь стандартных функций по хранению данных и манипулированию ими, а также способности работы с такими CMS, как Drupal, Joomla, WordPress и т.д. Например, возможностей этой СУБД достаточно для интернет-магазина.

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

Простота в сочетании с высокой производительностью при параллельном чтении позволяют использовать MySQL не только для веб-приложений. Она подходит для инструментов бизнес-аналитики.

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

PostgreSQL

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

PostgreSQL является объектно-реляционной СУБД, а значит обладает некоторыми свойствами объектно-ориентированных баз данных. В частности, поддерживает объекты, классы и наследование как в структуре данных, так и в языке запросов.

Кроме того, сильной стороной PostgreSQL является способность хранить и индексировать географические объекты благодаря расширению PostGIS. Есть встроенная поддержка слабоструктурированных данных в формате JSON и возможность их индексировать.

Как и MySQL, PostgreSQL может быть развернута в облаке и использоваться в качестве DBaaS. Надежность алгоритмов репликации и восстановления позволяют использовать эту СУБД в платежных сервисах, для автоматизации бухгалтерского и управленческого учётов. Способность работать с геоданными делает PostgreSQL хорошим выбором для создания геоинформационных сервисов.

Postgres Pro

Бывает, что компания или организация хочет воспользоваться возможностями PostgreSQL, но не может, например, из-за требования по использованию отечественного ПО. Именно эту область потребностей закрывает Postgres Pro.

Разработчики из РФ внесли значительный вклад в развитие PostgreSQL. В 2015 году появилась российская компания Postgres Professional. Взяв за основу исходные коды PostgreSQL, компания занялась самостоятельным развитием продукта под потребности отечественных организаций.

Сейчас Postgres Pro входит в реестр российского ПО, поддерживает работу с персональными данными и конфиденциальной информацией, имеет версию Postgres Pro Certified, сертифицированную ФСТЭК России.

Для крупных организаций с повышенными требованиями к объемам обрабатываемой информации компания предлагает расширенный вариант своего продукта под названием Postgres Pro Enterprise.

Эта СУБД способна работать в облаках любых типов, может производить компрессию данных на уровне блоков и разбивку на тысячи секций, поддерживает распределенные транзакции и многое другое. Кроме того, все версии Postgres Pro отлично работают совместно с продуктами 1С.

Greenplum

Как заставить СУБД в разумные сроки обрабатывать сложные запросы к БД, объем которой измеряется многими петабайтами? Ответом на этот вопрос стало появление СУБД Greenplum.

Как и две предыдущих, она построена на базе открытого проекта PostgreSQL, но использует массивно-параллельную архитектуру, дающую возможность одновременно обрабатывать множество потоков запросов к данным, распределенным между несколькими серверами (шардами).

Специальная интеллектуальная система балансировки заботится о том, чтобы нагрузка равномерно распределялась на все шарды. Масштабирование такой СУБД заключается в простом добавлении дополнительных серверов.

Простая в облачном развертывании, Greenplum подойдет для работы с большими данными. Но именно активной работы, а не простого хранения. Например, когда к данным нужно часто обращаться, сохранив быстродействие систем и гибкость в настраивании и масштабировании СУБД.

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

ClickHouse

Типичный представитель «колоночных» СУБД, которые часто называют «аналитическими». Особенностью ClickHouse является ее способность с огромной скоростью обрабатывать самые сложные обращения. Там, где реляционная СУБД давно перестала бы отвечать на запросы, ClickHouse будет работать, переваривая миллиарды записей.

С развитием технологий Business Intelligence, позволяющих перевести транзакционную деловую информацию в человекочитаемый вид, пригодный для бизнес-анализа, понадобился инструмент для быстрого получения аналитических отчетов на основе огромных массивов данных.

А особенность аналитических запросов состоит в том, что они, как правило, обращены к значениям, собранным в колонках, а не строках. Поэтому при работе ClickHouse не требуется извлекать из БД таблицы целиком, чем и объясняется ее высокая производительность.

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

Vertica

Еще одна колоночная СУБД, которая позиционируется как универсальная платформа для анализа больших данных в реальном времени. С начала 2022 года доступна как облачный сервис.

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

СУБД реализована на открытой масштабируемой архитектуре, что позволяет легко вписать его в уже существующий аналитический ландшафт. Vertica из облака интегрируется с Kubernetes, а объем кластера автоматически меняется в зависимости от текущей нагрузки.

Высокая эффективность и аналитические функции делают эту СУБД эффективным инструментом для построения систем бизнес-аналитики и обработки больших данных. Платформа подходит для задач по глубокой аналитике и построения озер данных.

Redis

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

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

Основным типом данных здесь является строка с произвольными данными в бинарном виде. Строки объединяются в списки в порядке добавления, что делает Redis удачным решением не только для кэширования основной базы данных, но и в качестве брокера сообщений, хранилища очередей.

Лучше всего эта СУБД покажет себя в таких высоконагруженных проектах, как социальные сети, службы обмена сообщениями, платформы голосования и в других сферах, где важна потоковая безопасность.

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

Tarantool

Еще одна скоростная технология для работы с данными — Tarantool. Это российская платформа in-memory вычислений с открытым исходным кодом, разработанная VK. Недавно появилась возможность использовать ее Community-версию из облака.

In-memory платформа хранит данные в оперативной памяти, что делает ее лидером по быстродействию среди СУБД. Она кратно ускоряет работу систем, обеспечивает максимальную пропускную способность и предсказуемое время отклика.

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

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

In-memory базы данных иногда путают с кэшами и считают ненадёжными, предполагая, что данные не сохраняются на диск.

В Tarantool используется упреждающая запись на диск журнала транзакций, а также синхронная репликация, что гарантирует высокую сохранность данных и позволяет использовать Tarantool в качестве основного хранилища, не опасаясь потери данных или нарушения целостности.

***

СУБД выбирают исходя из типа и объема данных и, конечно, задач бизнеса — какие проекты планируется развивать на ее основе.

Многие популярные базы данных доступны в облаке в виде DBaaS, что существенно упрощает развертывание и масштабирование БД, снижает расходы на их поддержку и обеспечение отказоустойчивости. Это позволяет команде сосредоточиться на управлении данными, их аналитике и разработке цифровых сервисов.

Следите за новыми постами
Следите за новыми постами по любимым темам
2К открытий2К показов