13 марта 2017

Реляционные СУБД в облаке Google


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

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

1) СУБД, устанавливаемые пользователем самостоятельно

В облаке Google вы можете создать себе виртуальную машину из множества процессоров и памяти, практически любого размера, включая размеры не кратные двум, с абсолютно любой поддерживаемой вендором серверной операционной системой из линеек Linux и Windows.

Далее, на эту виртуальную машину с помощью консоли для удалённого доступа, вы можете установить любую обычную (не облачную) СУБД, точно также, как вы устанавливали её на локальный сервер. 

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

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


2) Готовые образы виртуальных машин с предустановленной СУБД

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

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

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


3) Google Cloud SQL - стандартные СУБД в качестве облачного сервиса от Google

Для некоторых СУБД, например таких как, MySQL или PostgreSQL, Google разработал отдельные облачные сервисы, которые специально оптимизированы под эти базы данных.

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

При этом, вы будете платить только за использованный объём вычислительных ресурсов, а не за создание и поддержание инфраструктуры СУБД. Более того, поскольку Google изначально создавал инфраструктуру Goolge Cloud SQL для оптимального распределения нагузки, себестоимость её поддержки ниже, чем в случае обычных (неуправляемых) виртуальных машин. Как следствие, в случае использования Google Cloud SQL вы можете получить самую лучшую цену из всех вариантов для стандартной реляционной СУБД.


4) Google Cloud Spanner - настоящая облачная СУБД

Ввиду того, что скорость света конечна, и при передаче сигнала вокруг Земли составляет весомую для СУБД задержку, построение реально работающего глобального GEO кластера на базе стандартной реляционной СУБД (т.е. использующей между узлами вариации алгоритмов 2PC/3PC для фиксации транзакций) не представляется возможным, так как согласно информационной дилемме итоговая база данных будет доступна, надёжна, либо непротиворечива (но никак не всё вместе). 

Пока все узлы кластера стандартной СУБД находятся в пределах одного региона страны, они могут обеспечить надёжность и целостность при видимой доступности (задержка менее 10мс), но если вы ничего не меняя в ядре стандартной СУБД, разнесёте узлы кластера на разные концы Земли, то либо вы получите в общем случае противоречивый (неверный) ответ (когда 2PC/3PC выключен или настроен только для ближайших узлов, а далее идёт асинхронная репликация данных) за конечное время, либо верный ответ, но за неприемлемо долгое время (отсутствие доступности более 0,5с для каждого факта фиксации транзакции по 3PC). 

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

Google Cloud Spanner с программной точки зрения для разработчика полностью удовлетворяет стандарту SQL и имеет стандартные драйверы JDBC для доступа из приложений, однако внутренне она полностью оптимизирована для работы в инфраструктуре Google в режиме GEO кластера и может практически бесконечно масштабироваться добавлением новых узлов в любом регионе Земли, где есть датацентры Google.

В отличие от всех остальный реляционных СУБД Google Cloud Spanner не имеет обычной (локальной) версии и может существовать только в облаке Google, однако, если вы захотите попробовать поработать с настоящей облачной СУБД, а потом передумаете, то нет проблем перенести данные, как в неё, так и из неё в стандартную реляционную СУБД. 

В общем, Google предлагает реляционные СУБД на любой вкус, цвет и кошелёк. Если вам надо обеспечить реальную целостность финансовых транзакций, то выбирайте Google Spanner, если бысто перенести Интернет магазин на более мощную и удобную платформу, то выбирайте Google Cloud SQL, если просто перенести всю инраструктуру Microsoft в облако, ничего не меняя и по минимальной цене, то выбирайте стандартные образы СУБД, например Microsoft SQL Server.

Главное помнить, что в облаке Google возможны все варианты. 
Выбор за вами!

Комментариев нет: