Présentation de Spanner Omni

Spanner Omni est une version téléchargeable de Spanner qui vous permet de déployer la technologie de base de données distribuée de Google dans des centres de données sur site, des clouds publics 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-environnement, 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

Limites de la version preview de Spanner Omni

La version Preview de Spanner Omni inclut les fonctionnalités de base de Spanner, à l'exception des éléments suivants :

  • Les fonctionnalités de sécurité pour les entreprises et le chiffrement TLS ne sont pas pris en charge.

  • Spanner Omni cesse d'écrire des données 90 jours après la création d'un déploiement.

  • Les sauvegardes et les restaurations ne sont pas acceptées.

Pour accéder de manière anticipée à l'édition avec toutes les fonctionnalités, contactez Google.

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 partitionner automatiquement vos données et équilibrer les partitions pour obtenir un scaling flexible 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.

  • Cohérence externe forte : Spanner Omni offre une cohérence transactionnelle globale à l'aide de TrueTime basé sur logiciel, qui peut être déployé dans n'importe quel environnement.

  • Multimodèle interopérable : Spanner Omni prend en charge plusieurs modèles de données (relationnel, clé-valeur, graphique, vectoriel) et fonctionnalités (recherche en texte intégral, traitement analytique), et fournit des requêtes intermodèles et des transactions conformes à la norme 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, car elle s'exécute sur une seule machine. Les mises à niveau vers 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 objectifs 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 dans une seule zone.

  • Multicluster (ou multirégional) : les serveurs Spanner Omni résident dans plusieurs zones de plusieurs clusters. Pour assurer la 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 la configuration minimale recommandée suivante pour les déploiements de serveur :

Environnement OS ou plate-forme Recommandation de configuration matérielle
Sur site Linux (RHEL 9, Ubuntu 22) 4 Go de RAM par processeur virtuel, 20 Go d'espace disque ou plus
Cloud (Google Cloud et AWS) VM ou pods Kubernetes 4 processeurs virtuels, 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.