Uncategorized

PlanetScale упрощает сложность распределенной базы данных за 30 миллионов долларов

Повысьте уровень технологий и стратегии корпоративных данных на Transform 2021.


Некоторым людям, создающим базу данных, нравится начинать с чистого листа. PlanetScale, которая в среду получила 30 миллионов долларов в рамках серии B с участием a16z и SignalFire, использовала несколько иной подход. Компания посмотрела на MySQL, ей понравилось то, что она увидела, и вложила в нее все улучшения. Ядром по-прежнему является MySQL, работающий со стандартными механизмами и отвечающий на стандартные запросы, но оболочка обрабатывает все проблемы сегментирования и репликации, позволяя создать, по словам PlanetScale, базу данных, которую можно запустить за секунды и масштабировать. бесконечно ».

По заявлению компании, разработчики могут создать новую базу данных за секунды, которая будет расти по мере роста без каких-либо ограничений масштабируемости. Разработчикам не нужно знать об окружающей среде, например о новых облачных зонах, размерах кластеров и других «мелочах, ориентированных на БД». Новый раунд финансирования будет использован для глобального масштабирования команды и ускорения распространения и внедрения платформы, говорится в заявлении компании.

Чтобы узнать немного больше о том, что встроено в эти дополнительные уровни, VentureBeat встретился с Сэмом Ламбертом, главным директором по продукту PlanetScale. Он сообщает нам, что среди нововведений PlanetScale есть некоторые, основанные на Vitess, ответвлении MySQL, которое возникло в результате работы в YouTube для горизонтального масштабирования земного шара. Vitess используется такими гипермасштабирующими программами, как Slack, GitHub и Square.

Это интервью отредактировано для краткости и ясности.

VentureBeat: Какова самая большая цель PlanetScale?

Сэм Ламберт: Проблема практически со всеми существующими базами данных заключается в том, что никто, создающий базы данных, не думает о повседневной жизни людей, которые их используют. Просто и понятно. Что отличает нас в PlanetScale, так это то, что мы вникаем в повседневную жизнь разработчика и решаем проблемы разработчика, связанные с базой данных.

VentureBeat: Что еще нужно разработчику? Или нужно?

Ламберт: Помните движение за NoSQL? MongoDB позиционировала себя как инструмент, в котором разработчикам не нужно заботиться о схемах, которые они ненавидят, схемах, которыми сложно управлять, схемах, которые сложно развернуть и использовать. Все это было правдой, вся реальная критика любой реляционной базы данных.

Что мы сделали, так это разрешили ветвление и развертывание запросов на изменение схемы. Вы можете протестировать свою схему, а затем просто запустить ее в производство. Это полностью доступное неблокирующее изменение. Это как если бы вы просто отправили код. У него такая простота использования без каких-либо проблем. Таким образом, вы получаете отличное качество MySQL во всех рабочих процессах разработчика.

VentureBeat: Чем это отличается от простого выполнения изменения схемы с помощью SQL?

Ламберт: Команда SQL заблокирует таблицу. Это приведет к ужасному простою, ваше приложение будет замедляться, ваши запросы будут накапливаться – это будет просто беспорядок.

VentureBeat: Значит, вы можете внести изменения, заблокировав производство?

Ламберт: По-нашему, он просто асинхронно переносит изменения в продакшн, но если мы видим всплеск трафика, мы останавливаемся. Мы просто приостанавливаем то, что делаем, позволяем этому трафику закончиться, а затем продолжаем его перенос. Это похоже на действительно безопасное развертывание кода, как если бы он просто отправлялся на все эти узлы в кластере базы данных.

Итак, если вы хотите изменить схему, у вас есть таблица. Это ваша таблица пользователей. Вы хотите добавить столбец, чтобы отслеживать, например, подписан ли пользователь. Что мы делаем, так это создаем пустую копию таблицы users. Просто схема. Мы добавляем столбец с подпиской, а затем медленно начинаем перебирать данные из существующего в новый. Мы делаем это онлайн. Так что он просто получает все новые обновления, которые приходят. Они применяются, а мы продолжаем грызть. Когда они оба обновляют друг друга, мы мгновенно меняем местами, и новый столбец находится в рабочем состоянии. Старая таблица существует, и мы удаляем ее, и новый столбец находится в рабочем состоянии. Это то же самое, что и при развертывании приложений: вы запускаете новые модули в производственную среду. Это способ делать вещи, с которыми разработчики хорошо знакомы.

VentureBeat: Какое место занимает Витесс?

Ламберт: Vitess – это мегамасштабная технология баз данных с открытым исходным кодом, созданная для поддержки YouTube, которая поддерживает все, от Slack до GitHub, но она сложна. Сложно поддерживать. Очень сложно взять что-то из большой компании и применить это к средним или небольшим компаниям, не говоря уже о небольших командах или отдельных лицах. Он создан для Google и YouTube. И они проделали огромную работу, используя это. Это для людей, работающих с базами данных. Это для тех, кто занимается инфраструктурой.

VentureBeat: Значит, он связан с MySQL?

Ламберт: Мы сделали это за вас с новым PlanetScale. Мы просто полностью убираем сложность. Мы специалисты по вашей инфраструктуре. Мы люди из вашей базы данных. Мы встречаем вас там, где вы как разработчик, где вы не понимаете регионов, кластеров, серверов и всего того, что другие требуют от вас выбора. Но мы построены на Витессе и обладаем силой Витесса.

VentureBeat: Вы использовали здесь слово «ветвление». Это похоже на репозиторий Git?

Ламберт: Ветвление – это настоящий волшебный соус. Итак, когда вы получаете ветку, получаете совершенно новый кластер, это полностью изолированный кластер от вашего текущего. Это полностью изолированная среда.

VentureBeat: Это что-то вроде промежуточного кластера?

Ламберт: Нет. Я уверен, вы знаете, что декорации – адская проблема для всех. Мы собираемся убить концепцию постановочной среды. Это ненужный беспорядок. Это просто еще одна проблема, которую нужно поддерживать с ветвлением.

Мы говорим: не создавайте этой монолитной постановочной среды. Просто создайте ветку для каждой ветки кода. И это само по себе хорошее окружение. Протестируйте, разверните. Потом это уходит. Создавайте столько веток, сколько хотите. Если хотите, возьмите по 100 на разработчика. Все они используются для постановки, но это прыжок поколений за пределы старого мира постановочных сред.

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

Ламберт: Да, если ваш проект большой, их клонирование стоит огромных денег. Если вы создадите филиал, вы не удвоите количество потребляемых ресурсов. Это легкое небольшое подмножество.

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

Ламберт: Лучшее, что я видел в промежуточных средах, – это то, что они берут вчерашнюю резервную копию и восстанавливают ее в отдельный кластер. Так что он немного несвежий и просто хрупкий.

Мы этого не делаем. Мы размещаем основную базу данных PlanetScale на PlanetScale. Когда мы добавляем функцию, мы кодируем ее локально и создаем ветку базы данных. Когда мы закончили, мы продвигаем изменения, и все они учтены.

VentureBeat: Итак, когда базы данных начинают расти, как вы их масштабируете?

Ламберт: Горизонтальное шардирование. Он в высшей степени элегантен и разбивает задачу на несколько маленьких частей. Шардинг намного элегантнее, чем штабелирование ваших машин. Если вы разделите данные на сегменты на обычных машинах, вы не только получите такое же количество ядер ЦП, обслуживающих операции чтения, как в среде с вертикальным масштабом, но и получите больше операций записи. Задержка репликации не становится проблемой, и вы просто продолжаете расти.

VentureBeat: Что происходит, когда запросы должны касаться всех шардов, возможно, для построения агрегированного отчета?

Ламберт: Это случается. Но вы можете оптимизировать, и мы дадим вам способы сделать это. Определенно существуют кросс-сегментные агрегаты, и это немного медленнее. Но когда вам это нужно, это все простые оптимизации по сравнению с обычной проблемой согласованности, которую намного сложнее осмыслить.

VentureBeat: В основе вашего продукта лежит MySQL. А стоковую версию используете?

Ламберт: Дело в том, что MySQL – лучший. По сути, это первая премьера, когда речь идет о хранилищах и механизмах хранения. Вы просто не можете победить. У вас есть доступ ко всем механизмам хранения – мы совместимы с другими разработчиками MySQL. Но для чистого механизма хранения, для чего мы его используем, он просто идеален.

VentureBeat: А что для вас означает бессерверность?

Ламберт: Посмотрите на наших конкурентов. Они спрашивают вас, сколько узлов вам нужно. Сколько процессоров сервера? Сколько VCPU? Сколько IO? Мусор! Мы ни о чем не просим. Когда вы подписываетесь на наш продукт, мы создаем вашу базу данных. И мы сделаем для вас автоматическое масштабирование, потому что я просто не верю, что информация нужна. Мы эксперты. Мы любим базы данных. Строим базы данных. Мы решим эту проблему за вас.

Более того, люди в восторге от нашей модели выставления счетов, потому что люди действительно ненавидят чувствовать, что с них взимают плату за то, что они не используют. Мы взимаем плату за каждую прочитанную и записываемую строку, а затем за объем используемого хранилища. Это оно. Нет VCPU. Нет зарезервированного ввода-вывода. Ничего подобного. Что вы потребляете и что делаете. Это действительно потрясающий опыт обслуживания.

VentureBeat: такое название, как PlanetScale, означает, что вам нужно создать довольно большое облако.

Ламберт: У нас есть служба поддержки, которая предназначена, в основном, для крупных компаний, которые являются нашими клиентами. И если вы зайдете на нашу первую страницу или увидите логотипы с такими известными именами, это наши клиенты. Но наша главная судьба – в нашем облачном продукте. Вся эта магия ветвления и изменения схемы обеспечивается облаком. Наша дорожная карта с некоторыми из этих чрезвычайно интересных функций, которые появятся в ближайшее время, требует облака. Это функции, которые вы можете предоставить только в облачной службе. Это то, чего хотят люди. Бессерверная версия выигрывает. Бессерверное происходит.

VentureBeat

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

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

  • актуальная информация по интересующим вас темам
  • наши информационные бюллетени
  • закрытый контент для лидеров мнений и льготный доступ к нашим ценным мероприятиям, таким как Преобразование 2021: Учить больше
  • сетевые функции и многое другое

Стать членом

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button