Planetscale — Бессерверная База Данных Sql Для Разработчиков

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

Быстро были найдены движок для сайта с поддержкой бессерверных вычислений и поставщик слоя кэширования — NextJS (с развертыванием на Vercel) и Upstash с оплатой за каждую отдельную операцию и байт в хранилище.

Камнем преткновения стал выбор провайдера для DBaaS. Мне хотелось реализовать всё так, чтобы в проекте было две разные базы данных — для разработки и для производства, а запускать базу разработки на локальной машине мне не хотелось.

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

И я начал смотреть отчеты и презентации на YouTube, и именно в этот момент я открыл для себя PlanetScale.



Коротко о бессерверном режиме

Прежде чем углубиться в эту статью, я настоятельно рекомендую прочитать эти замечательные статьи о том, что такое бессерверная технология:
  • Короткая статья о бессерверных технологиях в стиле вопросов и ответов.

    Интересное о Serverless: статьи на хабре о приложении, инструментах, кейсах и инструкциях для первого свидания

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

Бессерверный провайдер все сделает за вас, вам останется только написать код для ваших приложений.

Так что же такое PlanetScale? Прежде всего, это компания-разработчик Vitess — ПО с открытым исходным кодом для кластеризации баз данных с целью вертикального масштабирования.

На секунду на YouTube используют Vitess, о чем господин Сугу рассказывал 7 лет назад. PlanetScale решила, что пора двигаться дальше, и начала упрощать жизнь не только гигантам из Кремниевой долины, но и рядовому разработчику из глубинки.

Так родился PlanetScale.com — веб-приложение, с помощью которого вы можете в один клик создать собственную бессерверную базу данных MySQL на базе Vitess и начать работать с ней прямо сейчас.



Что особенного в PlanetScale?

Схему базы данных изменить невозможно.

Не волнуйтесь, это относится только к производственным базам данных.

А в PlanetScale базу данных обычно называют веткой.

Вы уже догадываетесь, к чему это приведет? Вы абсолютно правы, это всё напоминает git, где пушить изменения в ветку master запрещено и единственный способ внести изменения — открыть пул-реквест (deploy request).

Для этого вы создаете новую ветку разработки, которая представляет собой полную копию основной базы данных, вносите необходимые изменения в схему и все — PlanetScale автоматически определит, какие именно изменения были внесены, и визуализирует их на веб-панели в форму SQL. Запрос на развертывание выглядит следующим образом.



PlanetScale — бессерверная база данных SQL для разработчиков

Внешний вид страницы запроса на развертывание Здесь нет ничего нового — автор изменений, краткое изложение этих самых изменений, количество одобрений, проверка на конфликты и т. д. Всё это позволяет проводить миграции схем в стиле git, не опасаясь перед этим нанести вред рабочей базе данных.

вы готовы к этому.

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

Их пока немного - US West (LA), US East (NY), EU West (Дублин, Ирландия), но этот вопрос открыт и прямо сейчас вы можете оставить заявку на добавление нужного вам региона (из список регионов, поддерживаемых Amazon AWS) в разделе обсуждения на GitHub планетарный масштаб/бета .

А для каждой вашей базы данных и всех ее филиалов предоставляется ежедневное резервное копирование без дополнительной оплаты за хранение резервных копий с возможностью изменения расписания и продолжительности хранения снимков.



В чем подвох?

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

Если вы используете ORM при работе с базой данных, разница останется незаметной.

Поскольку Foreign Key — это ограничение на уровне самой базы данных, его можно дублировать на уровне ORM (что, собственно, и реализовано в Sequelize, TypeORM и Prisma, например, самых популярных ORM для NodeJS).

Больше проблем это не вызовет, но гарантийный слой в случае чего сохранится.

Короче говоря, не для любителей чистых SQL-запросов.



Сколько это стоит?

Как и любой другой бессерверный сервис, PlanetScale использует модель «оплата по факту»: чем больше ресурсов используется, тем больший счет вы получите в конце месяца.

Если ресурсы не используются, то платить ни за что не нужно.

Ценовая политика следующая:

Тариф для разработчиков Тариф скейлера
Максимальное количество баз данных 3
Стоимость хранилища объемом 1 ГБ $0 $1.25
Стоимость 100 миллионов прочтений $0 $15
Стоимость 10 миллионов записей $0 $15
Важный! Тариф «Разработчик» действует только во время бета-тестирования, в рамках которого вы можете создать 3 базы данных с неограниченным количеством операций чтения и записи и 10 гигабайтами хранилища на базу.

Последующие базы данных будут тарифицироваться по тарифу Scaler. Тарификация осуществляется за каждый байт или операцию записи/чтения.

Это означает, что при цене за чтение в 0,00000015 доллара и квоте в 50 миллионов чтений вы заплатите ровно 7,25 доллара.

Объем использованной квоты и цена за ее использование будут доступны Вам в конце расчетного периода в счете.

Напоследок советую посмотреть презентацию интеграции PlanetScale с Vercel. Там руководитель отдела разработки PlanetScale рассказывает о сервисе и отвечает на вопросы, которые ему задавали в чате (во время презентации и вопросов-ответов он отвечал буквально на все заданные и витающие в воздухе вопросы).

Интересный факт: PlanetScale работает на PlanetScale :) Теги: #Хранение данных #Администрирование баз данных #Бессерверное #sql #масштабирование #Vitess #MySQL #шардинг #Системы контроля версий #PlanetScale

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.