Présentation de Spanner Omni

Spanner Omni est une version de Spanner déployable n'importe où. Elle vous permet d'exécuter la technologie de base de données distribuée de Google dans des centres de données sur site, des clouds publics tels que Google Cloud, Amazon Web Services (AWS) et sur votre ordinateur portable. Il offre les principales fonctionnalités de Spanner, y compris l'évolutivité horizontale, la haute disponibilité, la conformité ACID et la forte cohérence externe, en utilisant la réplication basée sur Paxos, le partitionnement automatique et l'API TrueTime définie par logiciel.

Spanner Omni intègre des modèles de données relationnels, de graphes, vectoriels et clé-valeur avec des fonctionnalités d'analyse opérationnelle et en texte intégral. Comme Spanner, Spanner Omni est compatible avec GoogleSQL, PostgreSQL et Spanner Graph Language. Vous pouvez obtenir une résilience inter-environnements, une portabilité des applications et une pile de développement cohérente dans différents environnements. Spanner Omni est compatible avec les options de déploiement suivantes :

  • Machines virtuelles
  • Conteneurs Linux
  • Clusters Kubernetes

Principales fonctionnalités

Spanner Omni propose les fonctionnalités suivantes :

  • Flexibilité du déploiement : exécutez Spanner Omni sur Linux ou macOS. Spanner Omni est compatible avec les environnements de cloud public, tels que Google Cloud (Google Kubernetes Engine (GKE) et Cloud Storage) et Amazon Elastic Kubernetes Service (Amazon EKS) et Amazon Elastic Compute Cloud (Amazon EC2), les environnements sur site et les ordinateurs portables.

  • Haute évolutivité : Spanner Omni peut segmenter automatiquement vos données et équilibrer les segments pour obtenir un scaling élastique pour les lectures et les écritures.

  • Haute disponibilité : Spanner Omni propose plusieurs topologies de déploiement. Spanner Omni propose un déploiement multizone et multicluster pour assurer une haute disponibilité en cas de défaillance de zone ou de cluster.

  • Forte cohérence externe : Spanner Omni offre une cohérence transactionnelle globale grâce à TrueTime, un logiciel qui peut être déployé dans n'importe quel environnement.

  • Multimodèle interopérable : Spanner Omni est compatible avec plusieurs modèles de données (relationnel, clé-valeur, graphique, vectoriel) et fonctionnalités (recherche en texte intégral, traitement analytique). Il fournit des requêtes intermodèles et des transactions conformes à ACID sur différents modèles de données.

  • Interface familière : interagissez avec vos données à l'aide de la CLI Spanner, qui inclut un shell SQL pour les requêtes interactives. Spanner Omni est compatible avec les dialectes GoogleSQL et PostgreSQL, ainsi qu'avec GQL, ce qui vous permet de migrer des applications existantes.

Topologies de déploiement

Spanner Omni utilise une hiérarchie de régions, de zones et de serveurs pour définir sa configuration de déploiement. Spanner Omni propose les configurations de déploiement suivantes :

  • Serveur unique : Spanner Omni s'exécute sur une seule machine. Cette topologie est une bonne option pour le développement local. Spanner Omni vous permet d'utiliser la fonctionnalité de sauvegarde et de restauration sans restriction si elle est déployée dans une configuration à serveur unique avec quatre processeurs virtuels ou moins. Les mises à niveau de cette topologie entraînent un temps d'arrêt.

  • Zone unique (ou zonal) : tous les serveurs Spanner Omni font partie d'une même zone. Utilisez au moins trois serveurs pour cette configuration de déploiement. Pour une disponibilité optimale, cette topologie présente des cibles de disponibilité plus faibles, car une défaillance dans une seule zone peut entraîner une indisponibilité.

  • Multizone (ou régional) : Spanner Omni distribue les serveurs dans plusieurs zones. Toutes les zones se trouvent au même endroit. Pour les déploiements multizones, utilisez au moins trois zones. Chaque zone doit comporter au moins un serveur. Nous vous recommandons d'utiliser trois serveurs dans chaque zone. Cette configuration de déploiement offre une disponibilité plus élevée que le déploiement à zone unique.

  • Multicluster (ou multirégional) : les serveurs Spanner Omni résident dans plusieurs zones de plusieurs clusters. Pour une haute disponibilité, utilisez trois zones dans au moins deux clusters et configurez chaque zone avec au moins trois serveurs.

Configuration requise

Pour optimiser les performances, utilisez les exigences minimales recommandées suivantes pour les déploiements de serveur :

Environnement OS ou plate-forme Recommandation matérielle
Sur site Linux (RHEL 9, Ubuntu 22) 4 Go de RAM par vCPU, 20 Go d'espace disque ou plus
Cloud (Google Cloud et AWS) VM ou pods Kubernetes 4 vCPU, 16 Go de RAM par VM ou pod Kubernetes
Développeur (ordinateurs portables, ordinateurs de bureau) macOS (M1, M2, M3) 4 Go de RAM, 10 Go d'espace disque

Pour le stockage, nous vous recommandons d'utiliser un disque dur SSD dédié avec un système de fichiers ext4.

Connectivité et développement

Pour vous connecter à Spanner Omni et développer des applications, pensez aux outils suivants :

  • Bibliothèques clientes : vous pouvez utiliser les bibliothèques clientes Spanner existantes pour Java et Go en spécifiant le point de terminaison Spanner Omni. Par exemple, en Java, définissez setExperimentalHost("http://localhost:15000").

  • PGAdapter : ce proxy permet aux applications PostgreSQL existantes de se connecter aux bases de données Spanner Omni avec dialecte PostgreSQL à l'aide du protocole de communication PostgreSQL standard.

  • Diagnostics : une commande spanner admin diagnostics create dédiée collecte les journaux, les traces et les piles de threads pour le dépannage.