Локальная разработка с помощью облачных технологий

Есть ли способ выполнить локальную разработку с помощью облачного ключа? Я просмотрел документы и инструмент CLI, и, похоже, там ничего нет. В качестве альтернативы, может ли кто-нибудь предложить базу данных SQL, которая ведет себя аналогичным образом при чтении (не уверен, что делать с записью)?

РЕДАКТИРОВАТЬ: Чтобы уточнить, я ищу базу данных, которая говорит на том же вкусе SQL, что и Cloud Spanner, поэтому я могу заниматься разработкой локально. Точные характеристики производительности не так важны, как API и согласованное поведение. Я не думаю, что таракан соответствует этим требованиям?


person Daniel Compton    schedule 17.02.2017    source источник


Ответы (4)


Теперь Google предлагает эмулятор для локальной разработки. По состоянию на 5/2020 он находится в стадии бета-тестирования.

https://cloud.google.com/spanner/docs/emulator

Он хранит данные только в памяти, но вы можете использовать командную строку gcloud для резервного копирования и восстановления данных разработки на диск и с диска по мере необходимости.

https://cloud.google.com/spanner/docs/backup/gcloud

person Ed J    schedule 15.05.2020

В настоящее время Cloud Spanner не поддерживает локальную разработку. Ваш текущий вариант - запустить экземпляр с одним узлом на GCP.

В настоящее время нет другой базы данных, которая работала бы как Cloud Spanner, однако CockroachDB работает по аналогичным принципам. Поскольку у них нет доступа к атомным часам и приборам GPS, они идут на разные компромиссы. В частности, в отношении операций чтения и записи и отсутствия «устаревшего чтения». Вы можете прочитать больше в блоге Джепсена:

Если Spanner ожидает после каждой записи, чтобы гарантировать линеаризуемость, CockroachDB блокируется только при оспариваемых чтениях. Как следствие, гарантии его непротиворечивости немного слабее.

person Dan McGrath    schedule 17.02.2017

Как сказал Дэн, в настоящее время поддерживаемый способ - иметь несколько экземпляров (dev, staging, prod) или вы можете разместить несколько баз данных в одном экземпляре, чтобы разделить затраты на ресурсы между средами.

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

person Dominic Preuss    schedule 21.02.2017

CockroachDB должен вести себя так же, как Cloud Spanner для чтения, и вы можете запускать его изначально в Mac OS X и Linux, а также в Windows с помощью Docker. Для локальной разработки отсутствие TrueTime не имеет значения, поскольку все работает на одной машине.

Для писем вам сейчас не повезло. Spanner имеет собственный API для записи, в то время как CockroachDB поддерживает стандартные операторы INSERT / UPDATE / DELETE. Результатом этого является то, что CockroachDB с большей вероятностью будет работать с выбранным вами ORM, и мы прилагаем все усилия, чтобы расширить эту поддержку.

person Peter Mattis    schedule 17.02.2017
comment
Неужели нет разницы в чтении Cloud Spanner и Cockroach? Насколько я понимаю, 1) профиль производительности отличается, как минимум, из-за блокировки оспариваемых чтений, 2) отсутствия устаревших функций чтения, 3) Многопользовательские транзакционные чтения могут не обеспечивать линеаризуемость, если они находятся на разных узлах. [Рад быть исправленным по любому поводу!] - person Dan McGrath; 20.02.2017
comment
Я не очень хорошо знаком с Cloud Spanner, учитывая его недавний выпуск. 1) CockroachDB не блокирует оспариваемые чтения. Или вы утверждаете, что это делает Cloud Spanner? 2) CockroachDB поддерживает AS OF SYSTEM TIME, чтобы разрешить запросы в определенный момент времени в прошлом. Возможно, я неправильно понимаю ваш комментарий о функциональности устаревшего чтения. 3) Да, вероятно, существует разница в линеаризуемости для многоузловых развертываний, но исходный вопрос касается локальной разработки, и на одном узле с клиентом, работающим на том же узле, что и сервер, не будет искажения часов, чтобы повлиять на линеаризуемость. . - person Peter Mattis; 21.02.2017
comment
1) Это было то, что я узнал из блога @Aphyr: CockroachDB блокируется только при оспариваемых операциях чтения. Как следствие, его гарантии согласованности немного слабее. 2) Похоже, я неправильно понял вашу документацию. 3) Согласен. - person Dan McGrath; 06.03.2017