Человечество уверенно вступило в эпоху публичных облаков. Не значит ли это, что вендорлок (привязка к единственному поставщику) следует оставить в прошлом? Базы данных (БД) — один из последних его бастионов, который еще не пал. Основатель и генеральный директор SaaS-платформы виртуализации БД Datometry Майк Ваас рассказывает на портале The New Stack о перспективах новой технологии виртуализации, которая поможет избавиться от вендорлока в сфере БД.

За последние 20 лет виртуализация изменила почти все области ИТ — от хранения данных и вычислений до сетевых технологий. В этой революции поучаствовали и БД — одна из старейших ИТ-дисциплин и один из последних бастионов вендорлока. Насколько сильна хватка старых поставщиков БД? «Не так-то просто подхватить эту рабочую нагрузку и перенести ее, поскольку это стоит больших денег. [Teradata] проделала хорошую работу, сделав это чертовски трудным », — заявил недавно генеральный директор Snowflake Фрэнк Слоутман.

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

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

Виртуализация стала «большим уравнителем» в ИТ. Так как она может разрушить вендорлок в области БД?

Как виртуализировать БД

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

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

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

Виртуализация данных — это не виртуализация БД

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

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

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

Когда не стоит использовать виртуализацию БД

Стандартная реакция технологов при первом знакомстве с виртуализацией БД: «Слишком хорошо, чтобы быть правдой». Затем следует шквал специфических вопросов о замысловатых функциях и крайних случаях. И хотя теоретически нет предела тому, что она может эмулировать, имеются ситуации, для которых она не подходит. Неудивительно, что виртуализация БД лучше всего работает, когда целевая система имеет равные или, по крайней мере, аналогичные возможности обработки. Виртуализация рабочей нагрузки, скажем, 5 млн. ежедневных выписок на систему, которая едва справляется с 2 млн., не даст результата.

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

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

На старт!

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