Некоторое время назад SphereEx, стартап, созданный основной командой разработчиков Apache ShardingSphere, официально представил концепцию Database Mesh 2.0 и связанное с ней решение с открытым исходным кодом Pisanix, вызвав обсуждение и размышления в сообществе о ShardingSphere. и сетка базы данных.

Некоторые пользователи сообщества могут задаться вопросом, зачем вам начинать с нуля в новой области, если вы уже являетесь частью успешного проекта с открытым исходным кодом, такого как Apache ShardingSphere? Еще один вопрос, который может прийти на ум, заключается в том, будет ли ShardingSphere в будущем постепенно включаться в концепцию Database Mesh с учетом облачной тенденции?

С введением концепции Database Mesh 2.0 компания SphereEx наметила другой курс для разработки с открытым исходным кодом, казалось бы, противоречащий уже успешному ShardingSphere, но на самом деле они дополняют друг друга, будучи взаимозависимыми.

В этом посте основное внимание будет уделено взглядам сообщества ShardingSphere на концепцию Database Mesh и будущим путям развития, а также вы познакомитесь с основной философией Apache ShardingSphere, Database Plus и тем, как это связано с концепцией Database Mesh.

Что изменилось от управления микросервисами к управлению услугами в облачных базах данных?

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

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

Если база данных рассматривается как микрослужба, хотя доступом к базе данных можно управлять с помощью Service Mesh, она по-прежнему подвержена многим ограничениям. В то же время у баз данных есть некоторые специальные атрибуты управления, такие как протоколы связи, управление ресурсами, балансировка нагрузки на основе запросов данных, разделение базы данных и таблиц, наблюдаемость, контроль доступа и т. путем применения концепции службы и должны полагаться на проектирование надежности базы данных.

Отсюда и разработка Database Mesh. Компания SphereEx выдвинула концепцию Database Mesh 2.0, которая фокусируется на том, как достичь следующих целей в облачной среде:

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

В последнее время, когда бизнес-приложения начали упаковываться и доставляться в контейнерах, а также многократно ежедневно выпускаться в инфраструктуру Kubernetes в различных центрах обработки данных с использованием потоков CI/CD, мы не могли не задуматься о том, как реализовать проектирование надежности баз данных в облаке. среды и, наконец, придумали Database Mesh 2.0.

Разница между ShardingSphere Database Plus и Database Mesh

Во-первых, другая философия. На самом деле, судя по их принципам и концепциям, Database Plus и Database Mesh совершенно разные.

Что касается Database Mesh, SphereEx считает, что облачное управление базами данных имеет некоторые общие черты, но также обладает и собственной уникальностью. Общие проблемы могут быть решены путем стандартизации и автоматизации, в то время как уникальные могут быть решены путем предоставления гибкого механизма масштабирования, который позволяет инженерам настраивать и внедрять по требованию. Это требует больших возможностей для программирования, чтобы соответствовать требованиям масштабирования при решении задач управления базами данных в облаке.

Что касается Database Plus, сообщество Apache ShardingSphere рассматривает его как проект распределенной системы баз данных, целью которого является создание общей экосистемы, включающей фрагментированные гетерогенные базы данных, обеспечивающей глобальную масштабируемость и наложенные вычислительные возможности на основе максимизации собственных вычислительных возможностей базы данных. . Это обеспечивает взаимодействие между приложениями и базами данных в соответствии со стандартами, разработанными Database Plus, защищая от влияния фрагментации базы данных на бизнес верхнего уровня.

С неизбежной тенденцией к облачным базам данных, Database Mesh и Database Plus неизбежно будут частично пересекаться. В сценарии облачной и распределенной базы данных будет больше взаимодействий между ShardingSphere и Database Mesh.

Во-вторых, сценарии применения также различаются.

ShardingSphere, руководствуясь концепцией Database Plus, в основном используется в сценариях с распределенными базами данных, в то время как Database Mesh в основном реализуется для руководства более конкретными практиками обеспечения надежности базы данных в облачных сценариях.

Будучи двумя разными проектами в двух разных областях, Database Plus и Database Mesh представляют инновационные идеи в соответствующих сценариях управления данными, что привело к созданию двух решений с открытым исходным кодом ShardingSphere и Pisanix.

Database Mesh 2.0 стремится предоставить структуру управления, ориентированную на базу данных:

  1. Базы данных в приоритете: все действия вращаются вокруг управления базами данных, например, контроль доступа, управление трафиком, наблюдаемость и т. д.
  2. Опыт, ориентированный на инженеров: разработчики могут работать с удобными и простыми в использовании объявлениями и определениями базы данных, не заботясь о расположении базы данных. Для групп обслуживания и эксплуатации и администраторов баз данных предусмотрено несколько абстрактных методов управления базами данных для автоматизации проектирования надежности баз данных.
  3. Облачная среда: подходит для различных облачных сред с открытой экосистемой и механизмом реализации, чтобы создавать и достигать облачной ориентации, не беспокоясь о привязке к поставщику.

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

Короче говоря, Apache ShardingSphere, проект, основанный на концепции Database Plus, имеет большую практическую ценность для сценариев распределенных баз данных, а Database Mesh — идеальное решение для устранения трудностей управления базами данных в облачных сценариях.

Наконец, бизнес-сценарии и требования отличаются

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

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

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

Кроме того, администраторы баз данных также уделяют внимание изменениям данных, емкости, безопасному доступу, резервному копированию, миграции и т. д. Именно глубокое понимание сценариев управления базами данных и стремление к лучшему взаимодействию с пользователем породили основную идею Database Mesh 2.0. : для достижения высокой производительности за счет программирования и решения задач управления базами данных в облаке.

С бумом облачных приложений: будет ли разрыв между ShardingSphere и облаком?

Еще в 2018 году, когда Service Mesh набирала обороты, председатель PMC Apache ShardingSphere Чжан Лян уже воспользовался преимуществами Service Mesh и предложил концепцию Database Mesh, предполагая, существует ли модель, которая могла бы эффективно сочетать преимущества клиентов JDBC и Proxy, избегая их недостатки для создания настоящей облачной инфраструктуры с автоматическим масштабированием + отсутствием вторжений + децентрализацией. Решение ShardingSphere Sidecar было создано на этапе Database Mesh 1.0.

Поскольку распределенные подходы и облачные технологии стали тенденцией, ShardingSphere с характеристиками проекта с открытым исходным кодом, ориентированного на сообщество, должен идти в ногу с быстрыми изменениями, происходящими в различных бизнес-операциях и различных сценариях. Поэтому он претерпел преобразование из Sharding-JDBC в ShardingSphere, изменив не только свое название, но и свое позиционирование и построение технологической экосистемы.

Является ли Pisanix облачной версией ShardingSphere, переписанной на Rust and Go?

Недавно SphereEx представила Pisanix, решение с открытым исходным кодом для Database Mesh. Что касается Pisa-Proxy, основного компонента Pisanix для трафика базы данных, он имеет сходство с ShardingSphere-Proxy, что позволяет легко думать о них как о результате рефакторинга.

Конечно, это не только Pisanix и ShardingSphere-Proxy, но и все прокси базы данных MySQL имеют схожий архитектурный дизайн. Особенно в отношении баз данных есть определенное сходство. Суть в том, чтобы найти различия между продуктами. Для Pisanix и ShardingSphere-Proxy они отличаются тем, чего вы хотите достичь, когда получаете данные, и какие проблемы хотите решить.

Следовательно, Pisanix нельзя просто считать переписанным ShardingSphere с помощью Rust. Они совершенно разные, за исключением точки входа, потому что когда дело доходит до баз данных, всегда есть сходство.

С другой стороны, многие пользователи, естественно, считают Database Mesh и ShardingSphere-Sidecar одним и тем же. Тем не менее, они очень разные на уровне ядра.

В качестве реализации концепции сетки базы данных Pisanix теперь может взять на себя некоторые возможности управления данными оригинального ShardingSphere-Sidecar в облачной среде, упрощая пользователям использование ShardingSphere в облачной среде.

Sidecar не служит ядром Database Mesh, которое должно быть ориентировано на конкретную инженерную проблему, а Sidecar — это всего лишь одна из форм развертывания концепции Database Mesh. Вполне возможно, что однодневный Pisanix-Proxy не будет структурирован как Sidecar или превратится в очень тонкий средний слой. В общем, Sidecar — это просто средство для достижения возможностей управления.

Реальное ядро ​​​​Database Mesh сосредоточено на расширении пользовательского опыта и управлении службами базы данных. Если в будущем будет доступно больше типов баз данных и появится больше сценариев, как облачных, так и вне облака, концепция сетки базы данных также будет расширена, а это именно то, на что нацелена сетка базы данных.

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

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

Взгляд в будущее баз данных: ShardingSphere + Database Mesh +….

Может ли Database Mesh управлять ShardingSphere?

Если вы думаете о ShardingSphere как о высокопроизводительной распределенной базе данных, управление ShardingSphere будет таким же, как управление MySQL, TiDB и другими базами данных для Database Mesh.

Таким образом, несмотря на то, что ShardingSphere может управляться, сама по себе она не обязательно требует поддержки, поскольку ее концепция проектирования, Database Plus, заключается в расширении тех возможностей, которыми сама MySQL не обладает по своей природе, посредством подключения, расширения и подключаемости. С помощью ShardingSphere собственную базу данных можно объединить с базовой базой данных для развертывания большей вычислительной мощности на стороне приложения, превратив ее в высокопроизводительную распределенную базу данных, которая позволяет избежать нерационального использования ресурсов и обеспечивает более экономичное решение, чем другие распределенные базы данных.

Возможности в облачных сценариях

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

Руководствуясь концепцией Database Plus, Apache ShardingSphere может расширять существующие функции, предоставляя предприятиям и платформам облачных вычислений более мощные возможности для различных продуктов баз данных. Базовая совместимость с несколькими базами данных и всеми видами продуктов баз данных в облаке упрощает выполнение задач НИОКР.

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

Как две совершенно независимые философии проектирования, Database Plus и Database Mesh не конкурируют друг с другом. Напротив, Database Mesh и Database Plus могут хорошо работать друг с другом.

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

Соответствующие ссылки:

ШардингСфера Гитхаб

ШардингСфера Твиттер

ShardingSphere Slack

Руководство автора

"Ссылка для скачивания"

Сетка базы данных

Проект Писаникс

Если этот пост был полезен, пожалуйста, несколько раз нажмите кнопку аплодисментов 👏, чтобы выразить свою поддержку автору 👇

🚀Разработчики: учитесь и развивайтесь, не отставая от того, что важно, ПРИСОЕДИНЯЙТЕСЬ К FAUN.