Среди множества облачных сервисов на рынке имеется, конечно, и такая полезная услуга, как облачный доступ к СУБД. Востребована она разработчиками, не желающими тратиться на инфраструктуру, администрирование, масштабирование и другие типовые накладные расходы, характерные не только для СУБД. Пока интерес к облачным СУБД мал: по оценкам Forrester, менее 1% на август 2013 г. среди всех облачных сервисов. Однако он заметно увеличивается, и по мере того как будет расти спрос на облачные аналитические системы, подобные услуги, прежде всего публичные, быстро наберут заметный вес. Эксперты из IDC, кстати, предсказывают, что ежегодное увеличение рынка систем обработки больших данных для всех видов организации информации составляет 60%.

Играет роль и явная тенденция перехода к узкоспециализированным СУБД, самостоятельная настройка которых весьма трудоёмка. Универсальные движки БД плохо подходят под современные многоплановые аналитические задачи, где приходится исследовать неструктурированную информацию и содержимое документов, а проектировщик выбирает подчас из десятков вариантов под конкретный корпоративный профиль запросов к БД. А когда СУБД доступны в классическом облачном формате, достаточно купить несколько часов эксплуатации нужного продукта и сразу проверить работу под большой нагрузкой на реальных данных. Такая модель смотрится очень соблазнительно и даже получила собственное название: Database as a Service (DbaaS). Однако концепции DbaaS и облачных СУБД часто смешивают, что негативно влияет на процесс выбора нужной технологии.

Что такое DbaaS

В чем различие, в контексте прикладного использования СУБД как сервиса, между моделями DbaaS, SaaS, PaaS и облачными СУБД? Что касается самой DbaaS, то я воспользуюсь определением Стива Бобровского, известного специалиста по СУБД, книги которого по Oracle переводились на русский ещё в середине 1990-х. Итак, DbaaS — это управляемый сервис, предоставляемый в режиме оплаты за использование и обеспечивающий доступ внешних программ к СУБД (для решения задач хранения и обработки данных). Фактически облачные СУБД тарифицируются почти по формату PaaS (по характеристикам объёма ОЗУ виртуальной машины, поддерживающей СУБД, и доступного дискового пространства), а DbaaS — по объёму реально используемой БД и количеству клиентских подключений к базе.

Отличие DbaaS от классической модели PaaS достаточно очевидно и наглядно: PaaS предоставляет готовый хостинг, где уже предустановлена настроенная и работающая СУБД, однако взаимодействие разрабатываемого ПО с ней надо организовывать вручную, через локальные интерфейсы, администрировать и обновлять систему нужно самостоятельно, а оплата берётся помесячно, за хостинг в целом (это одно из принципиальных отличий). При этом отнюдь не исключается вариант, когда DbaaS входит в сервис PaaS, подразумевающий предустановленные средства разработки.

Взаимоотношения DbaaS и SaaS примерно такие же: “СУБД как сервис” — это просто частный случай варианта “ПО как сервис”. Необходимо также отличать “хранилище как сервис” (дистанционный доступ к файлам, находящимся в облаке) от “СУБД как сервис” (дистанционный доступ к программному интерфейсу движка БД).

По большому счету неясности остаются только в соотношении облачной модели с DbaaS. Предлагаю придерживаться разграничения, которое дают эксперты из Forrester. Отмечу предварительно, что различие здесь делается в основном на деталях технической реализации со стороны поставщика сервиса (и рынок делится в том же духе), а вот конечный потребитель в большинстве случаев вполне может обойтись единым универсальным понятием “облачная СУБД”.

В чем различие облачных СУБД и DbaaS

Облачные СУБД — это полностью автоматизированный многопользовательский и неограниченно масштабируемый сервис, который предоставляет функциональность СУБД, но управляется и администрируется “незаметно”, провайдером сервиса. При этом не следует путать облачную СУБД (это сервис) и СУБД, запущенную на виртуальной машине (данный подход, как уже говорилось, ближе к PaaS).

Облачная модель обеспечивает высокие эластичность сервиса и масштабируемость, быстрый доступ к интерфейсам программирования и настройкам, а продаётся она пропорционально использованию. Пользователь может подключиться к системе в любой миг — например, на один час, — задать нужные параметры работы (объём дискового пространства для БД, скорость операций чтения-записи, полосу пропускания), загрузить данные, сформировать запросы и получить результаты, не заботясь о версии СУБД, её администрировании и настройках. По этой схеме работают Amazon, Google, Microsoft, Salesforce.com, а их конкретные облачные СУБД — это Amazon Relational Database/DynamoDB, Database.com и др.

Forrester делает акцент на том, что облачная СУБД обязательно должна работать в публичном облаке, однако с учётом популярности гибридной модели это, наверное, излишне строгое требование. И тем не менее текущий рынок публичных облачных СУБД, составляющий 400 млн. долл., к 2017-му увеличится до 1,2 млрд. долл.

Database as a Service — предоставление простого, но функционально насыщенного профильного решения “СУБД в облаке” для нужд среднего, малого бизнеса и ИТ-отделов крупных корпораций. Оно, как правило, не реализуется провайдером напрямую в собственном ЦОДе (слишком дорого), а функционирует как надстройка над классическими облачными сервисами (чаще всего используются AWS, HP Cloud Services, Joyent Cloud и Rackspace). Практически всегда конкретный DbaaS — это одна определённая СУБД, предоставляемая в облаке непосредственными разработчиками. Типичные примеры: Caspio, EnterpriseDB, Heroku Postgres, Xeround.

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

Облачные лидеры

Ведущие поставщики СУБД двигаются, конечно, в классическую облачную модель. Так, Amazon Relational Database (RDS) предлагает MySQL, Oracle и Microsoft SQL Server. Более простой бессхемный сервис Amazon SimpleDB предназначен для задач с невысокой нагрузкой и сложностью. Сторонники NoSQL могут воспользоваться Amazon DynamoDB, которая особенно шустро работает на твердотельных накопителях, а репликация идёт как минимум в три физически разнесённых ЦОДа. Любопытно, что этот сервис оказался самой быстрорастущей в плане спроса услугой Amazon за всю его историю.

Своё трёхлетие в июле 2013-го проект открытой облачной платформы OpenStack отметил анонсом решения Trove (OpenStack Open Source Database as a Service), поддерживающего реляционные и нереляционные БД. А Rackspace представила сервис Cloud Databases, базирующийся на OpenStack, — он, как утверждается, функционирует особенно быстро за счёт отказа от фоновой виртуальной инфраструктуры.

Microsoft SQL Server доступен как в DbaaS-модели, так и в облачной (на платформе Azure) через технологию SQL Data Sync. Корпорация также предлагает облачный NoSQL-сервис Tables, оптимизированный для хранения больших двоичных объектов (медийные файлы). К профильному востребованному функционалу Windows Azure и Windows Azure SQL Database следует также отнести поддержку PaaS-сервисов.

В июне 2013 г. Microsoft заключила соглашение с Oracle по развёртыванию облачных систем на платформе Windows: под Windows Server Hyper-V и Windows Azure будут адаптированы последние версии Java, Oracle WebLogic Server и, конечно, СУБД Oracle. Кстати, этим же летом Oracle амбициозно объявила свою Oracle Database 12c новой парадигмой баз данных и даже самой первой СУБД, целенаправленно спроектированной для работы в облаках, которая заставит айтишников переосмыслить способы хранения информации и управления ею. Насколько это известие обрадует самих айтишников, скоро узнаем.

Oracle Database 12c входит в состав Cloud Application Foundation, которая объединяет сервер приложений Oracle WebLogic, СУБД-в-памяти Coherence и Oracle Enterprise Manager. Аналитики из IDC даже назвали это решение качественно новым интеграционным трендом, который обеспечивает уникальные пути взаимодействия сервера приложений с СУБД, однако чем данная линейка отличается от регулярно представляемых интеграционных подходов десяти- или двадцатилетней давности, рядовому потребителю пока не очень понятно.

IBM расширяет свою платформу PowerLinux новыми технологиями анализа и облачной обработки. Она включает Linux-серверы на процессорах Power7, системное ПО и софт промежуточного слоя для поддержки Java-приложений в открытом облачном окружении. В дополнение к IBM DB2 пользователям будет также доступно более дешёвое решение EnterpriseDB PostgreSQL.

СУБД IBM DB2 10.5 тем временем пополнилась набором технологий повышения эффективности при обработке облачных и больших данных: BLU Acceleration ускоряет процессы генерации отчётов и аналитики в 25 раз, а некоторые запросы ускорились на два порядка, причём никакой ручной оптимизации не выполнялось. Так, ERP-система SAP на DB2 BLU Acceleration стала формировать отчёты в 40 раз быстрее, время отклика снизилось на 40%, объем БД — на 70%. Сегодня, кстати, 40% установок SAP используют СУБД Oracle, и хотя в ней имеются режимы скоростной работы в памяти, сотрудник Gartner Дональд Фейнберг утверждает, что эта версия ограничена в поддержке аналитики и транзакций.

Сама SAP также активно развивает облачное направление: в дополнение к облачной платформе HANA, которая обеспечивает прежде всего доступ к бизнес-приложениям, по модели DbaaS через AWS доступна СУБД Sybase. Сооснователь SAP Джим Снейб утверждает даже, что SAP — единственная в мире компания, которая предлагает полную линейку облачных систем с поддержкой работы в памяти. Ближайшим же к HANA продуктом эксперты называют Microsoft SQL Server 2014 со встроенным OLTP-движком “в памяти”, который пока доступен в бета-версии. Его функции по созданию архивных копий хорошо интегрированы с Windows Azure, имеется технология по созданию “реплик” данных AlwaysOn Availability Groups.

DbaaS-лидеры

С кем стоит связываться, если решено задействовать модель DbaaS? Эта ниша пока очень молода, но солидные игроки тут уже активно действуют. В июле 2013 г. фирма Cloudant объявила о слиянии NoSQL-СУБД BigCouch с открытым проектом Apache CouchDB, который теперь получит всю мощь кластерных технологий и средств “межцодовской” репликации, а также поддержку сверхбольших БД. По убеждению Cloudant, версия, развиваемая сообществом СПО, будет совершенствоваться быстрее! И хотя BigCouch сама по себе считается очень солидным продуктом — с 2008 г. с её помощью обрабатываются петабайты данных Большого адронного коллайдера, — Cloudant объявила о решении сосредоточить все усилия на развитии своего облачного сервиса, запущенного этой весной. Более того, BigCouch/CouchDB будет развиваться в полном соответствии с моделью DbaaS и сможет работать поверх облаков Amazon Web Services, IBM SoftLayer, Joyent и Microsoft.

В направление DbaaS Cloudant было быстро привлечено 12 млн. долл. инвестиций от таких компаний, как Rackspace (уже анонсирована облачная версия продуктов Cloudant), Samsung, Avalon Ventures, Toba Capital, инновационное подразделение ЦРУ In-Q-Tel и др. Один из директоров Devonshire Investors заявил при этом, что сегодня как никогда велик рыночный интерес к управляемым хостингам СУБД, и именно в масштабируемую модель NoSQL-СУБД сегодня движутся мобильные и веб-системы.

Стоит серьёзно присмотреться и к EnterpriseDB, которая предоставляет PostgreSQL DbaaS корпоративного класса и средства совместимости с Oracle, — утверждается, что проект, аналогичный по функционалу системе на базе Oracle, обойдётся на 92% дешевле. Недавно EnterpriseDB переманила к себе Лорена Осборна, который в Gartner возглавлял программу взаимодействия с ВМС США, а до этого трудился в фирме MicroFocus, известной средствами разработки на Коболе, где обзавёлся множеством связей в американских госструктурах, доныне эксплуатирующих Кобол-системы сорокалетней давности.

Неплохую нишу нашла фирма Xeround, разработав систему управления и развёртывания легкомасштабируемых баз MySQL на различных облачных платформах и по разным технологиям (AWS, CitrixRackspace, Joyent, HP, OpenStack). Самая популярная на сегодня NoSQL MongoDB доступна у множества облачных провайдеров, от AWS до Joyent. Фирма Garantia позволяет запускать NoSQL-сервисы Redis и Memcached в облаках AWS. А вот компания StormDB отказалась от использования виртуальной инфраструктуры — её одноименная СУБД предоставляется как сервис напрямую с физических серверов собственного мини-ЦОДа.

Оригинальным путём пошёл и стартап GenieDB, выпустивший продукт GenieDB Globally Distributed MySQL-as-a-Service (Linux-расширение для MySQL 5.1—5.6). Отличительная его особенность — глобальная синхронизация БД между географически разнесёнными ЦОДами и различными облачными провайдерами. При этом клиенты продолжают работать с собственной версией MySQL. Авторы технологии не скрывают, что вдохновлялись системой Google Spanner, в которой используются GPS-датчики для контроля физического местонахождения информации! И ещё одна реализация данной идеи — система TransLattice, отличающаяся от GenieDB только маркой СУБД PostgreSQL.