Подпроект Apache ShardingSphere-on-Cloud

ShardingSphere-on-Cloud — это подпроект Apache ShardingSphere для облачных решений, охватывающий все, от сценариев автоматического развертывания до виртуальных машин в облачных средах AWS, GCP, AliCloud, Huawei Cloud, таких как шаблоны стека CloudFormation, Terraform и многое другое.

Проект также охватывает такие инструменты, как Helm Charts, Operator и автоматическое горизонтальное масштабирование в средах Kubernetes, и постепенно будет охватывать высокую доступность, наблюдаемость и соответствие требованиям безопасности ShardingSphere в облачных средах.

  • Если вы хотите быстро понять, проверить или использовать функции ShardingSphere-Proxy и у вас нет среды Kubernetes, вы можете использовать AWS CloudFormation или Terraform для развертываний по требованию, как описано в предыдущей статье Используйте AWS CloudFormation для создавать кластеры высокой доступности ShardingSphere.
  • Если вы хотите выполнить развертывание в среде Kubernetes, вы можете использовать функцию оператора или установить ShardingSphere-Proxy напрямую, без использования оператора, но с диаграммами Helm.

Для получения дополнительной информации обратитесь к официальной документации.

Зачем вам нужен оператор ShardingSphere

Kubernetes предоставляет способ реализации «платформы поверх платформы», шаблона Operator, который использует пользовательскую CustomResourceDefinition с открытой платформой модели Reconcile Kubernetes.

Платформа модели Reconcile, предоставляемая Kubernetes, позволяет разработчикам быстро реализовать декларативный пользовательский инструмент Ops для данного приложения, например Prometheus-Operator, Nats-Operator и т. д.

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

Использование Operator делает развертывание и обслуживание ShardingSphere-Proxy в Kubernetes намного проще и эффективнее.

Использование оператора ShardingSphere: пример

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

Подробные инструкции можно найти в официальной документации подпроекта ShardingSphere-on-Cloud.

Установить ShardingSphere-оператор

Найдите необходимое содержимое конфигурации и конфигурацию Каталог файлов для установки здесь.

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

Онлайн-установка

kubectl create ns shardingsphere-operator
 helm repo add shardingsphere https://apache.github.io/shardingsphere-on-cloud
 helm repo update
 helm install demo-release shardingsphere/apache-shardingsphere-operator-charts -n shardingsphere-operator

Пример результата операции:

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

На данный момент вы можете видеть, что оператор внедрил crd , над которым будет работать оператор, в кластер Kubernetes, используя kubectl get crd:

А также просмотр развернутого ShardingSphere-Operator:

Развертывание кластеров ShardingSphere-Proxy

Список всех параметров, которые можно настроить, можно найти в документации здесь.

Совет. вам необходимо предоставить доступный кластер ZooKeeper, прежде чем вы сможете запустить ShardingSphere-Proxy.

Для запуска ShardingSphere-Proxy вам необходимо написать два CustomResourceDefinition файла: shardingsphereproxy.yaml и shardingsphereproxyserverconfigs.yaml, примеры которых следующие:

# shardingsphereproxy.yaml
apiVersion: shardingsphere.apache.org/v1alpha1
kind: ShardingSphereProxy
metadata:
  labels:
    app: shardingsphere-proxy
  name: shardingsphere-proxy
  namespace: shardingsphere-demo
spec:
  mySQLDriver:
    version: 5.1.47
  port: 3307
  proxyConfigName: shardingsphere-proxy-configuration
  replicas: 3
  serviceType:
    type: ClusterIP
  version: 5.3.0
---
# shardingsphereproxyserverconfigs.yaml
apiVersion: shardingsphere.apache.org/v1alpha1
kind: ShardingSphereProxyServerConfig
metadata:
  labels:
    app: shardingsphere-proxy
  name: shardingsphere-proxy-configuration
  namespace: shardingsphere-demo
spec:
  authority:
    privilege:
      type: ALL_PERMITTED
    users:
    - password: root
      user: root@%
  mode:
    repository:
      props:
        maxRetries: 3
        namespace: governance_ds
        operationTimeoutMilliseconds: 5000
        retryIntervalMilliseconds: 500
        server-lists: shardingsphere-proxy-zookeeper.shardingsphere:2181 # 此处为示例,根据实际部署进行修改
        timeToLiveSeconds: 600
      type: ZooKeeper
    type: Cluster
  props:
    proxy-frontend-database-protocol-type: MySQL

Примеры операций:

Затем вы можете проверить статус пода, работающего под пространством имен shardingsphere-demo:

Связанные ресурсы, созданные Оператором, также можно найти по адресу:

Настройка ShardingSphere-Proxy для возможности шифрования данных

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

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

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

Ниже приведены примеры шифрования данных:

  1. Зарегистрировать узлы хранения

2. Создайте правила шифрования

3. Создайте логические таблицы

4. Просмотр физических свойств таблицы

5. Логическая вставка таблицы и запрос

6. Запрос физической таблицы источника данных

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

Хорошие новости! Наша новая ShardingSphere-on-Cloud уже запущена!

С миграцией подпроекта ShardingSphere-on-Cloud на https://github.com/apache/shardingsphere-on-cloud мы разработали и запустили новый веб-сайт.

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

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

🔗 ShardingSphere-on-Cloud Github

🔗 Официальный сайт ShardingSphere-on-Cloud

🔗 Apache ShardingSphere GitHub

🔗 Официальный сайт Apache ShardingSphere

🔗 Slack-канал Apache ShardingSphere