Обзор DBaaS: что нужно знать про базы данных в облаке, чтобы не ошибиться с выбором
Обозреваем 8 видов облачных БД. Рассказываем, какие базы данных доступны из облака и для каких задач больше подходит каждая из них.
3К открытий3К показов
Руководители компаний все чаще ставят задачи выжимать из данных максимум пользы для бизнеса. В результате растет нагрузка по администрированию систем, которые хранят и обрабатывают данные.
Упростить эту работу для тех, кто занимается эксплуатацией СУБД, независимо от размера и ресурсов компании, позволяют облачные базы данных, предоставляемые по модели DBaaS (Database-as-a-service). Они снимают огромную часть эксплуатационной рутины по их развертыванию, настройке и масштабированию.
Рассказываем, какие базы данных доступны из облака и для каких задач больше подходит каждая из них.
Дмитрий Лазаренко
Директор по продукту VK Cloud Solutions
Базы данных — важный элемент любого современного бизнес-приложения. Раньше приходилось развертывать и администрировать их самостоятельно, нанимая для этого отдельных специалистов.
Теперь, благодаря развитию облачных платформ, можно получить готовые и настроенные базы данных как сервис — 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, что существенно упрощает развертывание и масштабирование БД, снижает расходы на их поддержку и обеспечение отказоустойчивости. Это позволяет команде сосредоточиться на управлении данными, их аналитике и разработке цифровых сервисов.
3К открытий3К показов