Présentation d'AlloyDB

AlloyDB pour PostgreSQL est un service de base de données entièrement géré compatible avec PostgreSQL. Il est conçu pour les charges de travail les plus exigeantes, y compris le traitement transactionnel et analytique hybride. AlloyDB associe un moteur de base de données Google et une architecture cloud multinœud pour offrir des performances, une fiabilité et une disponibilité de niveau entreprise.

Fonctionnement d'AlloyDB

Une application se connecte aux instances AlloyDB à l'aide des protocoles et techniques PostgreSQL standards. L'application utilise ensuite la syntaxe de requête PostgreSQL pour interagir avec la base de données.

En arrière-plan, AlloyDB utilise une hiérarchie de composants et de fonctionnalités basés sur le cloud, conçus pour maximiser la disponibilité de vos données et optimiser les performances et le débit des requêtes. Google CloudLes outils d'administration vous permettent de surveiller l'état de santé de votre déploiement AlloyDB, en ajustant son échelle et sa taille pour répondre au mieux aux exigences changeantes de votre charge de travail.

Différences architecturales entre AlloyDB et PostgreSQL standard

Les déploiements PostgreSQL traditionnels associent le moteur de base de données qui traite les requêtes au stockage où résident vos données, souvent sur le même serveur. AlloyDB utilise une architecture désagrégée. Les couches de calcul et de stockage sont distinctes et offrent un scaling individuel.

La mise à l'échelle d'une configuration PostgreSQL typique implique une mise à l'échelle verticale en passant à un serveur plus grand ou une mise à l'échelle horizontale pour les lectures en utilisant des instances répliquées avec accès en lecture qui dupliquent également les données.

La conception désagrégée d'AlloyDB, basée sur le système de fichiers distribué de Google, offre plusieurs avantages :

  • Scaling indépendant : vous pouvez augmenter ou diminuer vos ressources de calcul, en particulier les nœuds et les instances, en fonction des exigences des requêtes, sans provisionner ni déprovisionner de stockage. Vous pouvez également effectuer un scaling horizontal les nœuds en lecture seule pour la scalabilité en lecture, sans impact sur la disponibilité. À mesure que vos données augmentent, l'espace de stockage évolue, sans impact sur le calcul.
  • Performances améliorées : grâce à un moteur de stockage cloud natif optimisé, AlloyDB offre des performances de requêtes transactionnelles et analytiques rapides, grâce à des couches de mise en cache intelligentes et à une gestion avancée des E/S.
  • Gestion simplifiée : la séparation des préoccupations permet la gestion automatique de nombreuses opérations de base de données, y compris la réplication, les sauvegardes et l'application de correctifs, qui sont des tâches manuelles dans PostgreSQL autogéré.
  • Haute disponibilité et durabilité : le stockage redondant des données dans la couche durable s'étend sur plusieurs zones de disponibilité, ce qui permet un basculement et une récupération automatiques sans perte de données, quelle que soit l'état de l'instance.

Cette différence architecturale fondamentale se manifeste dans la hiérarchie des ressources d'AlloyDB, qui utilise des clusters comme conteneurs de base de données logiques globaux, avec des nœuds fournissant la puissance de calcul et des instances servant de points de connexion d'application, tandis que les données persistent dans une couche de stockage distincte et désagrégée.

Le diagramme suivant illustre un exemple de cluster mis à l'échelle pour gérer des charges de travail exigeantes, avec l'inclusion de plusieurs instances de pool de lecture à équilibrage de charge :

Schéma montrant un cluster contenant une instance principale et des instances de pool de lecture

Clusters

Un déploiement AlloyDB unique dans une région Google Clouddonnée organise toutes ses ressources dans un cluster. Cela inclut toutes vos bases de données, vos journaux et vos autres métadonnées. AlloyDB déploie toutes les ressources d'un cluster dans un seul cloud privé virtuel (VPC) et utilise un système de fichiers basé sur le cloud conçu par Google et optimisé pour AlloyDB.

Nœuds et instances

Un cluster contient plusieurs nœuds, qui sont des instances de machines virtuelles dédiées à l'exécution du moteur de base de données compatible avec PostgreSQL que les applications utilisent pour interroger les données de votre cluster. AlloyDB organise les nœuds en instances, chacune disposant d'une adresse IP privée et statique dans votre VPC. En pratique, vos applications se connectent aux instances à ces adresses IP à l'aide des protocoles PostgreSQL. Les instances transmettent ensuite les requêtes SQL à leurs nœuds.

AlloyDB comporte deux types d'instances :

  • Instance principale : chaque cluster dispose d'une instance principale qui fournit un point d'accès en lecture ou en écriture à vos données. Une instance principale peut être disponibilité élevée (HA) ou de base.

    • Instance principale à haute disponibilité : une instance principale à haute disponibilité comporte deux nœuds : un nœud actif et un nœud de secours. AlloyDB surveille la disponibilité du nœud actif et promeut automatiquement le nœud de secours en nœud actif si nécessaire.

    • Instance de base : les environnements hors production qui ne nécessitent pas de haute disponibilité peuvent éventuellement utiliser des instances de base. Une instance de base ne comporte qu'un seul nœud, sans nœud de secours. Pour en savoir plus, consultez Réduire les coûts à l'aide d'instances de base.

  • Instance de pool de lecture : votre cluster peut éventuellement comporter une ou plusieurs instances de pool de lecture, chacune contenant un ou plusieurs nœuds en lecture seule, jusqu'à un maximum de 20 pour l'ensemble du cluster. AlloyDB équilibre automatiquement la charge de toutes les requêtes envoyées à une instance de pool de lecture, en les acheminant vers les nœuds de l'instance.

Pour les cas d'utilisation plus simples, un cluster peut ne comporter que l'instance principale, sans pool de lecture, et les applications utilisent l'instance principale pour toutes les requêtes. Pour les tâches plus exigeantes, vous pouvez ajouter des instances de pool de lecture au cluster. Vous configurez ensuite vos applications de reporting ou d'analyse pour qu'elles leur envoient des requêtes de lecture. Cette technique réduit la charge sur votre instance principale et améliore l'évolutivité en répartissant la charge sur plusieurs nœuds.

Vous pouvez ajouter, supprimer ou ajuster le nombre de nœuds d'une instance de pool de lecture à tout moment, en fonction des besoins de votre application. Vous pouvez également redimensionner la mémoire et le nombre de processeurs virtuels des nœuds constitutifs d'une instance chaque fois que nécessaire, avec un temps d'arrêt minimal. La mise à l'échelle de vos instances ne présente aucun risque de perte de données, car AlloyDB stocke vos données dans la couche de stockage flexible du cluster, et non dans les instances.

Principales fonctionnalités

AlloyDB se distingue d'une installation PostgreSQL standard de plusieurs façons, au-delà des avantages de scaling vertical et horizontal inhérents à l'architecture multinœud décrite précédemment. Les sections suivantes examinent plus en détail les principales fonctionnalités d'AlloyDB.

Fonctionnalités de base de données automatiques et adaptatives

Le moteur de base de données entièrement compatible avec PostgreSQL qui alimente chaque nœud AlloyDB comporte plusieurs fonctionnalités qui analysent en continu la structure et la fréquence des requêtes traitées par vos instances. Il utilise ces informations pour suggérer des améliorations de schéma ou appliquer automatiquement des optimisations :

  • Un conseiller d'index vous aide à identifier les opportunités d'optimisation de votre schéma de base de données à l'aide de nouveaux index basés sur vos schémas d'utilisation.

  • Un moteur de données en colonnes peut accélérer les performances des requêtes analytiques en stockant les données en mémoire au format en colonnes. Cela permet à AlloyDB d'utiliser des techniques de traitement avancées pour analyser efficacement une grande quantité de données de table si nécessaire.

  • Une variation adaptative de la fonctionnalité d'autovacuum de données obsolètes de PostgreSQL ajuste automatiquement les paramètres liés à l'aspiration pour s'adapter au mieux à la forme de votre charge de travail.

  • Les systèmes de gestion automatique de la mémoire et du stockage tirent parti de l'environnement cloud conçu par Google sur lequel AlloyDB s'exécute. Ils allouent et libèrent en continu de la mémoire et du stockage selon les besoins pour que votre cluster fonctionne avec des performances et une efficacité des ressources optimales.

Haute disponibilité

Par défaut, un cluster AlloyDB offre une haute disponibilité grâce aux nœuds redondants de son instance principale, situés dans deux zones différentes, avec basculement automatique.

Les clusters fonctionnant dans des environnements hors production qui ne nécessitent pas de haute disponibilité peuvent éventuellement utiliser des instances principales de base à zone unique.

L'ajout d'instances de pool de lecture contenant au moins deux nœuds crée des points d'accès multizones à haute disponibilité et à équilibrage de charge pour vos données. Toutes les instances de pool de lecture s'exécutent indépendamment de l'instance principale.

Pour en savoir plus sur les considérations spécifiques à la région, consultez Zones géographiques et régions.

Sauvegarde des données et reprise sur sinistre

AlloyDB propose un système de sauvegarde et de récupération continues qui vous permet de créer un cluster basé sur n'importe quel point dans le temps au cours d'une période de conservation ajustable. Cela vous permet de récupérer rapidement vos données en cas de perte accidentelle.

De plus, AlloyDB peut créer et stocker des sauvegardes complètes des données de votre cluster, à la demande ou selon un calendrier régulier. À tout moment, vous pouvez restaurer une sauvegarde dans un nouveau cluster AlloyDB contenant toutes les données du cluster d'origine au moment de la création de la sauvegarde.

Pour en savoir plus, consultez À propos des sauvegardes.

Comme autre méthode de reprise après sinistre, vous pouvez obtenir une réplication interrégionale en créant des clusters secondaires dans des régions Google Clouddistinctes. AlloyDB diffuse de manière asynchrone les données d'un cluster principal désigné vers chacun de ses clusters secondaires. Si nécessaire, vous pouvez promouvoir un cluster secondaire en cluster AlloyDB complet avec des instances principales et de pool de lecture.

Pour en savoir plus, consultez À propos de la réplication interrégionale.

Sécurité et contrôle d'accès

Vous pouvez configurer un cluster pour qu'il nécessite une connexion avec le proxy d'authentification AlloyDB sécurisé, qui utilise Google Cloud Identity Access and Management (IAM) pour le contrôle des accès. Pour en savoir plus, consultez Autorisation.

AlloyDB utilise le système de rôles utilisateur PostgreSQL standard pour l'authentification, en introduisant quelques rôles supplémentaires spécifiques à AlloyDB. Pour en savoir plus, consultez Gérer les rôles utilisateur AlloyDB.

Chiffrement

Par défaut, AlloyDB protège toutes les données au repos à l'aide des méthodes de chiffrement de Google. Si vous devez chiffrer vos données à l'aide d'une clé que vous fournissez, vous pouvez spécifier une clé de chiffrement gérée par le client (CMEK) lorsque vous créez un cluster. AlloyDB utilise ensuite la clé CMEK pour chiffrer toutes les données écrites dans ce cluster.

Les clés CMEK s'appliquent également aux sauvegardes. Vous pouvez spécifier une clé CMEK lorsque vous créez une sauvegarde à la demande, configurez une programmation de sauvegarde ou restaurez une sauvegarde.

Pour en savoir plus, consultez À propos de CMEK.

Maintenance n'entraînant pas d'interruption

Les opérations de maintenance AlloyDB sont conçues pour minimiser les perturbations de votre base de données. Les instances principales et secondaires ont un temps d'arrêt de moins d'une seconde, tandis que les pools de lecture restent disponibles en continu sans temps d'arrêt. Pour ce faire, nous préparons des serveurs de remplacement et les échangeons rapidement avec les serveurs actifs lorsqu'ils sont prêts. Au cours de ce processus, toutes les connexions actives à la base de données sont momentanément interrompues. Vous pouvez continuer à utiliser votre base de données normalement tout au long de ce processus.

Bien que ce processus de remplacement garantisse un temps d'arrêt minimal, l'opération globale peut prendre plusieurs minutes, comme indiqué dans la console Google Cloud et dans la Google Cloud CLI.

Ces opérations de maintenance incluent les tâches de maintenance périodiques exécutées par Google et celles que vous effectuez manuellement, comme la configuration des indicateurs et le redimensionnement des instances. Si vous souhaitez appliquer immédiatement une mise à jour, même si cela signifie un temps d'arrêt plus long, utilisez l'indicateur de base de données FORCE_APPLY.

AlloyDB AI

AlloyDB AI intègre une suite de fonctionnalités d'IA et de ML directement dans votre base de données AlloyDB. Par le passé, la création d'applications d'IA nécessitait des pipelines de données et des processus ETL complexes pour transférer les données des bases de données opérationnelles vers des plates-formes d'IA/ML spécialisées. Cette méthode a entraîné des problèmes tels qu'une latence accrue lors du transfert de données, des frais opérationnels plus élevés pour la gestion de différents systèmes et un stockage en double. En intégrant des fonctionnalités d'IA directement dans la base de données, AlloyDB/AI élimine le besoin de déplacer de grandes quantités de données externes.

Pour faciliter le développement d'applications d'IA, AlloyDB AI fournit les extensions suivantes :

  • vector (version de pgvector personnalisée pour AlloyDB AI) : stocke et indexe les embeddings vectoriels pour la recherche sémantique. Permet d'exécuter des requêtes hybrides et des recherches de similarité. Pour commencer à utiliser la recherche vectorielle, consultez Effectuer une recherche vectorielle.
  • alloydb_scann : fournit une recherche approximative des plus proches voisins très performante en implémentant un index des plus proches voisins très efficace basé sur l'algorithme ScaNN. Pour en savoir plus, consultez Créer un index ScaNN.
  • google_ml_integration : donne accès au moteur de requêtes d'IA, qui permet d'appeler des modèles de ML à partir d'AlloyDB pour des tâches telles que la génération d'embeddings, le classement sémantique, les filtres et les jointures basés sur l'IA, ainsi que la génération et la synthèse de texte. La gestion des points de terminaison de modèle permet d'enregistrer et d'appeler des modèles d'IA, y compris des modèles externes d'OpenAI ou d'Anthropic. Pour en savoir plus, consultez Enregistrer un point de terminaison de modèle et Évaluer les requêtes sémantiques avec des opérateurs d'IA.
  • alloydb_ai_nl : permet d'interagir avec votre base de données en langage naturel. Il permet aux développeurs d'applications de générer des requêtes SQL précises et sécurisées en réponse aux questions en langage naturel des utilisateurs finaux, ce qui permet aux utilisateurs non SQL d'accéder aux données. Pour en savoir plus, consultez la présentation du langage naturel.

Pour obtenir la liste des cas d'utilisation des fonctionnalités AlloyDB AI, consultez Créer des applications d'IA générative.

Compatibilité avec les extensions

AlloyDB est compatible avec un certain nombre d'extensions PostgreSQL populaires. Pour obtenir la liste complète, consultez Extensions de base de données compatibles.

Une alternative auto-hébergée : AlloyDB Omni

Google propose AlloyDB Omni comme alternative à l'exécution d'AlloyDB dans Google Cloud. Cette édition simplifiée et téléchargeable d'AlloyDB vous permet d'exécuter son puissant moteur de base de données dans votre propre environnement informatique basé sur Linux, où que ce soit.

Pour en savoir plus, consultez À propos d'AlloyDB Omni.

Étapes suivantes