Cette checklist de lancement fournit une liste d'éléments à prendre en compte avant de lancer une application de production sur Spanner. Il n'a pas vocation à être exhaustif, mais sert à mettre en évidence les considérations clés pour minimiser les risques, optimiser les performances et s'assurer de l'alignement avec les objectifs commerciaux et opérationnels. Il offre une approche systématique pour un déploiement Spanner fluide et fiable.
Cette checklist est composée des sections suivantes :
- Conception, développement, test et optimisation
- Migration (facultatif)
- Déploiement
- Optimisation des requêtes et gestion des statistiques
- Reprise après sinistre
- Sécurité
- Journalisation et surveillance
- Bibliothèque cliente
- Assistance
- Gestion des coûts
Conception, développement, test et optimisation
L'optimisation de la conception des schémas, des transactions et des requêtes est essentielle pour exploiter l'architecture distribuée de Spanner afin de bénéficier de performances et d'une évolutivité élevées. Des tests rigoureux à l'échelle de la production et de bout en bout garantissent que le système peut gérer des charges de travail réelles, des pics de charge et des opérations simultanées, tout en minimisant les risques de goulots d'étranglement ou de défaillances en production.
Case à cocher | Activité |
---|---|
❑ |
Concevez le schéma en tenant compte de l'évolutivité et de l'architecture distribuée de Spanner. Suivez les bonnes pratiques, par exemple en sélectionnant des clés primaires et des index appropriés pour éviter les hotspots, et envisagez des optimisations telles que l'entrelacement de tables pour les données associées. Consultez les bonnes pratiques de conception de schémas pour vous assurer que le schéma est compatible à la fois avec des performances élevées et une évolutivité dans les charges de travail attendues.
|
❑ |
Optimisez les transactions et les requêtes pour un verrouillage minimal et des performances maximales. Utilisez les modes de transaction de Spanner, tels que le verrouillage en lecture-écriture, la lecture seule stricte et les instructions LMD partitionnées, pour équilibrer la cohérence, le débit et la latence. Réduisez la portée du verrouillage en utilisant des transactions en lecture seule pour les requêtes, le traitement par lot pour un débit LMD maximal ou des instructions LMD partitionnées pour les mises à jour et les suppressions à grande échelle. Lorsque vous migrez à partir de systèmes avec des niveaux d'isolation différents (par exemple, PostgreSQL ou MySQL), utilisez des transactions pour éviter les goulots d'étranglement de performances. Pour en savoir plus, consultez la page Transactions.
|
❑ |
Effectuez des tests de charge rigoureux à grande échelle pour valider la conception du schéma, le comportement des transactions et les performances des requêtes. Simulez des scénarios de pointe et de forte concurrence qui imitent les charges d'application réelles, y compris diverses formes de transactions et des modèles de requêtes. Évaluez la latence et le débit dans ces conditions pour vérifier que la conception de la base de données et la topologie des instances répondent aux exigences de performances.
Utilisez des tests de charge de manière itérée pendant le développement pour optimiser et affiner l'implémentation.
|
❑ |
Étendez les tests de charge à tous les services qui interagissent, et pas seulement aux applications isolées. Simulez des parcours utilisateur complets en plus des processus parallèles, tels que les chargements par lot ou les tâches d'administration qui accèdent à la base de données. Exécutez des tests sur la configuration de l'instance Spanner de production, en vous assurant que les pilotes et les services de test de charge sont alignés géographiquement sur la topologie de déploiement de production prévue. Cette approche globale identifie les conflits potentiels à l'avance et garantit des performances de base de données fluides lors des opérations réelles.
|
❑ |
Pour garantir des performances de requêtes prévisibles, utilisez la version de l'optimiseur sur laquelle la charge de travail a été testée. Par défaut, les bases de données Spanner utilisent la dernière version de l'optimiseur de requêtes.
Évaluez régulièrement les nouvelles versions de l'optimiseur dans un environnement contrôlé et ne mettez à jour la version par défaut qu'après avoir confirmé la compatibilité et les améliorations de performances. Pour en savoir plus, consultez la section Présentation de l'optimiseur de requêtes.
|
❑ |
Assurez-vous que les statistiques de l'optimiseur de requêtes sont à jour pour prendre en charge des plans d'exécution de requêtes efficaces.
Bien que les statistiques soient mises à jour automatiquement, envisagez de créer manuellement un nouveau package de statistiques dans des scénarios tels que les modifications de données à grande échelle (par exemple, les insertions, mises à jour ou suppressions groupées), l'ajout de nouveaux index ou les modifications de schéma.
Il est essentiel de maintenir à jour les statistiques de l'optimiseur de requêtes pour garantir des performances optimales.
|
Migration (facultatif)
La migration de base de données est un processus complet qui nécessite un examen approfondi des spécificités de chaque parcours de migration. Tenez compte des points suivants dans votre stratégie de migration:
Case à cocher | Activité |
---|---|
❑ |
Élaborez une procédure standard détaillée pour le passage à la nouvelle version. Cela inclut les étapes de déploiement de l'application, de basculement de la base de données et d'automatisation pour minimiser l'intervention manuelle.
Identifiez et communiquez les périodes de temps d'arrêt potentielles aux personnes concernées bien à l'avance. Implémentez des mécanismes de surveillance et d'alerte robustes pour suivre le processus de migration en temps réel et détecter rapidement toute anomalie.
Assurez-vous que le processus de basculement inclut des contrôles de validation pour confirmer l'intégrité des données et les fonctionnalités de l'application après la migration.
|
❑ |
Préparez un plan de remplacement détaillé pour revenir au système source en cas de problème critique lors de la migration. Testez les procédures de remplacement dans un environnement de préproduction pour vous assurer qu'elles sont fiables et qu'elles peuvent être exécutées avec un temps d'arrêt minimal. Définissez clairement les conditions qui déclencheraient un plan de secours et assurez-vous que l'équipe est formée pour exécuter ce plan rapidement et efficacement.
|
Déploiement
Une planification de déploiement appropriée garantit que les configurations Spanner répondent aux exigences de disponibilité, de latence et d'évolutivité des charges de travail, tout en tenant compte des considérations géographiques et opérationnelles. L'alignement du dimensionnement, de la gestion des ressources, des scénarios de basculement et de l'automatisation réduit les risques, garantit des performances optimales et évite les contraintes ou les pannes de ressources lors d'opérations critiques.
Case à cocher | Activité |
---|---|
❑ |
Assurez-vous que la configuration de votre instance Spanner (qu'elle soit régionale, birégionale ou multirégionale) est adaptée aux exigences de disponibilité et de latence de la charge de travail de votre application, tout en tenant compte des considérations géographiques. Calculez la capacité de calcul cible en fonction des tailles de stockage attendues, des tendances de trafic et des limites d'utilisation recommandées, en vous assurant d'avoir une capacité suffisante pour les pannes zonales ou régionales. Prévoyez les pics de trafic en activant l'autoscaling.
Vous pouvez définir une limite supérieure pour la capacité de calcul afin de mettre en place des mesures de protection des coûts. Pour en savoir plus, consultez la section Capacité de calcul, nœuds et unités de traitement.
|
❑ |
Si vous utilisez une configuration d'instance bi-régionale ou multirégionale, choisissez une région leader qui minimise la latence des écritures d'application à partir des services déployés dans vos emplacements les plus sensibles à la latence.
Testez les implications de différentes régions leaders sur la latence des opérations et ajustez-les pour optimiser les performances de l'application. Prévoyez des scénarios de basculement en vous assurant que la topologie de l'application peut s'adapter aux modifications de la région leader lors d'interruptions régionales. Pour en savoir plus, consultez la section Modifier la région principale d'une base de données.
|
❑ |
Configurez les tags et les libellés de manière appropriée pour plus de clarté opérationnelle et le suivi des ressources Google Cloud. Utilisez des tags pour regrouper les instances par environnement ou type de charge de travail. Utilisez des libellés pour les métadonnées qui facilitent l'analyse des coûts et la gestion des autorisations. Pour en savoir plus, consultez la section Contrôler l'accès et organiser les instances avec des tags.
|
❑ |
Évaluez si un préchauffage de Spanner est nécessaire, en particulier pour les services qui s'attendent à un trafic soudain et élevé au lancement.
Tester la latence sous des charges initiales élevées peut révéler la nécessité d'un échauffement avant le lancement pour garantir des performances optimales. Si un préchauffage est nécessaire, générez une charge artificielle. Pour en savoir plus, consultez la section Préparer la base de données avant le lancement de l'application.
|
❑ |
Consultez les limites et quotas Spanner avant le déploiement.
Si nécessaire, demandez une augmentation des quotas dans la console Google Cloud pour éviter les contraintes pendant les périodes de pointe. Tenez compte des limites strictes (par exemple, le nombre maximal de tables par base de données) pour éviter les problèmes post-déploiement. Pour en savoir plus, consultez la section Quotas et limites.
|
❑ |
Utilisez des outils d'automatisation tels que Terraform pour provisionner et gérer vos instances Spanner, en vous assurant que les configurations sont efficaces et sans erreur. Pour la gestion des schémas, envisagez d'utiliser des outils tels que Liquibase pour éviter de supprimer accidentellement des schémas lors des mises à jour. Pour en savoir plus, consultez Utiliser Terraform avec Spanner.
|
Reprise après sinistre
Établir une stratégie de reprise après sinistre robuste est essentiel pour protéger les données, réduire les temps d'arrêt et assurer la continuité des activités en cas de défaillances inattendues. Tester régulièrement les procédures de restauration et automatiser les sauvegardes permet de garantir la disponibilité opérationnelle, le respect des objectifs de récupération et une protection fiable des données adaptée aux besoins de l'organisation.
Case à cocher | Activité |
---|---|
❑ |
Définir une stratégie de reprise après sinistre complète pour Spanner, qui inclut la protection des données, les objectifs de récupération et les scénarios d'échec Définissez des objectifs de temps de récupération (RTO) et de point de récupération (RPO) clairs qui correspondent aux exigences de continuité d'activité. Spécifiez la fréquence de sauvegarde, les règles de conservation et utilisez la récupération à un moment précis (PITR) pour minimiser la perte de données en cas de défaillance. Consultez la présentation de la reprise après sinistre pour identifier les outils et les techniques appropriés pour garantir la disponibilité, la fiabilité et la sécurité de votre application. Pour en savoir plus, consultez le livre blanc Solutions de protection et de récupération des données dans Spanner.
|
❑ |
Créez une documentation détaillée des procédures de sauvegarde et de restauration, y compris des guides détaillés pour différents scénarios de récupération.
Testez régulièrement ces procédures pour vous assurer de leur disponibilité opérationnelle et valider les exigences de RTO et de RPO. Les tests doivent simuler des conditions et des scénarios d'échec réels pour identifier les lacunes et améliorer le processus de récupération. Pour en savoir plus, consultez la section Présentation de la restauration.
|
❑ |
Implémentez des calendriers de sauvegarde automatiques pour garantir une protection des données cohérente et fiable. Configurez les paramètres de fréquence et de conservation en fonction des besoins de votre entreprise et des obligations réglementaires. Utilisez les fonctionnalités de planification des sauvegardes de Spanner pour automatiser la création, la gestion et la surveillance des sauvegardes. Pour en savoir plus, consultez la section Créer et gérer des planifications de sauvegarde.
|
❑ |
Alignez les procédures de basculement sur la topologie de configuration des instances de votre application afin de minimiser l'impact de la latence en cas d'indisponibilité. Testez les scénarios de reprise après sinistre, en vous assurant que l'application peut fonctionner efficacement lorsque la région leader est déplacée vers une région de basculement. Pour en savoir plus, consultez la section Modifier la région principale d'une base de données.
|
Optimiseur de requêtes et gestion des statistiques
La gestion des versions et des statistiques de l'optimiseur de requêtes est importante pour maintenir des performances de requêtes prévisibles et efficaces. L'utilisation de versions testées et la mise à jour des statistiques garantit la stabilité, évite les changements de performances inattendus et optimise les plans d'exécution des requêtes, en particulier lors de modifications importantes des données ou du schéma.
Case à cocher | Activité |
---|---|
❑ |
Par défaut, les bases de données Spanner utilisent la dernière version de l'optimiseur de requêtes. Pour garantir des performances de requêtes prévisibles, utilisez la version de l'optimiseur sur laquelle la charge de travail a été testée. Évaluez régulièrement les nouvelles versions de l'optimiseur dans un environnement contrôlé et ne mettez à jour la version par défaut qu'après avoir confirmé la compatibilité et les améliorations de performances. Pour en savoir plus, consultez la présentation de l'optimiseur de requêtes.
|
❑ |
Assurez-vous que les statistiques de l'optimiseur de requêtes sont à jour pour prendre en charge des plans d'exécution de requêtes efficaces.
Bien que les statistiques soient mises à jour automatiquement, envisagez de créer manuellement un nouveau package de statistiques dans des scénarios tels que les modifications de données à grande échelle (par exemple, les insertions, mises à jour ou suppressions groupées), l'ajout de nouveaux index ou les modifications de schéma.
Il est essentiel de maintenir à jour les statistiques de l'optimiseur de requêtes pour garantir des performances optimales.
|
❑ |
Dans certains cas, par exemple après une suppression groupée ou lorsque la génération de nouvelles statistiques peut avoir un impact imprévisible sur les performances des requêtes, il est conseillé d'épingler un package de statistiques spécifique. Cela offre des performances de requête cohérentes jusqu'à ce qu'un nouveau package puisse être généré et testé. Vérifiez régulièrement si vous devez épingler des statistiques et les enlever une fois les packages mis à jour validés. Pour en savoir plus, consultez la section Packages de statistiques de l'optimiseur de requêtes.
|
Sécurité
L'implémentation de mesures de contrôle des accès est essentielle pour protéger les données sensibles et empêcher tout accès non autorisé dans Spanner. En appliquant le principe du moindre privilège, le contrôle des accès précis (FGAC) et la protection contre la suppression de bases de données, vous pouvez réduire les risques, assurer la conformité et protéger les éléments critiques contre les actions accidentelles ou malveillantes.
Case à cocher | Activité |
---|---|
❑ |
Examinez et implémentez des stratégies de gestion de l'identité et des accès (IAM) en suivant le principe du moindre privilège pour tous les utilisateurs et comptes de service accédant à votre base de données. N'attribuez que les autorisations nécessaires pour effectuer des tâches spécifiques et effectuez régulièrement des audits des autorisations de contrôle des accès pour vous assurer que ce modèle est respecté. Utilisez des comptes de service dotés de privilèges minimaux pour les processus automatisés afin de réduire le risque d'accès non autorisé. Pour en savoir plus, consultez la présentation d'IAM.
|
❑ |
Si l'application nécessite un accès limité à des lignes, des colonnes ou des cellules spécifiques d'une table, implémentez un contrôle précis des accès (FGAC, fine-grained access control). Concevez et appliquez des règles d'accès conditionnel en fonction des attributs utilisateur ou des valeurs des données pour appliquer des règles d'accès précises. Examinez et mettez à jour régulièrement ces règles pour les aligner sur les exigences de sécurité et de conformité en constante évolution. Pour en savoir plus, consultez la présentation du contrôle des accès précis.
|
❑ |
Implémentez des calendriers de sauvegarde automatiques pour garantir une protection des données cohérente et fiable. Configurez les paramètres de fréquence et de conservation en fonction des besoins de votre entreprise et des obligations réglementaires. Utilisez les fonctionnalités de planification des sauvegardes de Spanner pour automatiser la création, la gestion et la surveillance des sauvegardes. Pour en savoir plus, consultez la section Créer et gérer des planifications de sauvegarde.
|
❑ |
Activez la protection contre la suppression de la base de données pour éviter les suppressions accidentelles ou non autorisées. Combinez cela à des contrôles IAM stricts pour limiter les droits de suppression à un petit ensemble d'utilisateurs ou de comptes de service approuvés. De plus, configurez des outils d'automatisation d'infrastructure tels que Terraform pour inclure des mesures de protection contre la suppression accidentelle de vos bases de données. Cette approche en couches réduit les risques pour les éléments de données critiques. Pour en savoir plus, consultez la section Empêcher la suppression accidentelle de bases de données.
|
Journalisation et surveillance
Une journalisation et une surveillance efficaces sont essentielles pour maintenir la visibilité sur les opérations de base de données, détecter les anomalies et assurer l'état du système. En utilisant des journaux d'audit, un traçage distribué, des tableaux de bord et des alertes proactives, vous pouvez identifier et résoudre rapidement les problèmes, optimiser les performances et respecter les exigences de conformité.
Case à cocher | Activité |
---|---|
❑ |
Activez la journalisation d'audit pour capturer des informations détaillées sur les activités de la base de données. Configurez les niveaux de journal d'audit de manière appropriée en fonction des exigences de conformité et opérationnelles afin de surveiller les modèles d'accès et de détecter efficacement les anomalies. Notez que les journaux d'audit peuvent prendre beaucoup de place, en particulier pour les requêtes DATA_READ et DATA_WRITE , car toutes les instructions SQL et DML sont enregistrées pour ces requêtes respectives. Pour en savoir plus, consultez la section Journalisation d'audit Spanner.
Acheminer ces journaux vers un bucket de journaux défini par l'utilisateur vous permet d'optimiser vos coûts de conservation des journaux (les 30 premiers jours ne sont pas facturés) et de contrôler de manière précise l'accès aux journaux à l'aide de vues de journaux. |
❑ |
Collectez des métriques côté client en instrumentant la logique de votre application avec OpenTelemetry pour distribuer le traçage et l'observabilité. Configurez l'instrumentation OpenTelemetry pour capturer les traces et les métriques de Spanner, ce qui garantit une visibilité de bout en bout sur les performances des applications et les interactions avec les bases de données. Pour en savoir plus, consultez la section Capturer des métriques côté client personnalisées à l'aide d'OpenTelemetry.
|
❑ |
Créez et configurez des métriques de surveillance pour visualiser les performances des requêtes, la latence, l'utilisation du processeur et l'utilisation de l'espace de stockage.
Utilisez ces métriques pour le suivi en temps réel et l'analyse historique des performances de la base de données. Pour en savoir plus, consultez la page Surveiller des instances avec Cloud Monitoring.
|
❑ |
Définissez des alertes de surveillance basées sur des seuils pour les métriques critiques afin de détecter et de résoudre les problèmes de manière proactive. Configurez des alertes pour des conditions telles qu'une latence de requête élevée, une faible disponibilité de l'espace de stockage ou des pics de trafic inattendus. Intégrez ces alertes aux outils de gestion des incidents pour une action rapide. Pour en savoir plus, consultez la page Créer des alertes pour les métriques Spanner.
|
Bibliothèque cliente
La configuration du taggage des opérations, des pools de sessions et des stratégies de nouvelle tentative est essentielle pour optimiser les performances, déboguer les problèmes et maintenir la résilience dans Spanner. Ces mesures améliorent l'observabilité, réduisent la latence et garantissent une gestion efficace des demandes de charge de travail et des erreurs temporaires, en alignant le comportement du système sur les exigences de l'application.
Case à cocher | Activité |
---|---|
❑ |
Configurez la bibliothèque cliente pour qu'elle utilise des requêtes et des balises de transaction significatives. Vous pouvez utiliser des tags de requête et de transaction pour mieux comprendre vos requêtes, vos lectures et vos transactions.
Nous vous recommandons d'utiliser des métadonnées contextuelles telles que le composant de l'application, le type de requête ou le contexte utilisateur dans vos balises afin d'améliorer le débogage et l'introspection. Assurez-vous que les balises sont visibles dans les statistiques et les journaux des requêtes pour faciliter l'analyse et le dépannage des performances. Pour en savoir plus, consultez la page Résoudre les problèmes liés aux tags de requête et aux tags de transaction.
|
❑ |
Optimisez la gestion des sessions en activant le pool de sessions dans la bibliothèque cliente. Configurez les paramètres du pool, tels que les sessions minimales et maximales, pour répondre aux demandes de charge de travail tout en réduisant la latence. Surveillez régulièrement l'utilisation des sessions pour affiner ces paramètres et vous assurer que le pool de sessions offre des avantages de performances cohérents. Pour en savoir plus, consultez la section Sessions.
|
❑ |
Dans de rares cas, les paramètres par défaut de la bibliothèque cliente pour les nouvelles tentatives, y compris le nombre maximal de tentatives et les intervalles d'incrémentation exponentielle, doivent être configurés pour équilibrer la résilience et les performances. Testez ces règles de manière approfondie pour vous assurer qu'elles correspondent aux besoins de l'application.
Pour en savoir plus, consultez la section Configurer des délais d'expiration et des nouvelles tentatives personnalisés.
|
Assistance
Pour minimiser les temps d'arrêt et l'impact, définissez des rôles et des responsabilités clairs pour les incidents afin de garantir des réponses rapides et coordonnées aux problèmes liés à Spanner. Pour en savoir plus, consultez la page Obtenir de l'aide.
Case à cocher | Activité |
---|---|
❑ |
Établissez un cadre de gestion des incidents clair, en définissant les rôles et les responsabilités de tous les membres de l'équipe impliqués dans la gestion des incidents liés à Spanner. Désignez des rôles d'incidents tels que le responsable de l'incident, le responsable des communications et les experts en la matière pour assurer une coordination et une communication efficaces lors des incidents. Élaborez et documentez des processus d'identification, de transmission, d'atténuation et de résolution des problèmes. Suivez les bonnes pratiques décrites dans le manuel Google SRE sur la gestion des incidents et dans la section Gestion des incidents.
Organisez régulièrement des formations et des simulations de gestion des incidents pour vous assurer que votre équipe est prête et améliorer sa capacité à gérer efficacement les scénarios à forte pression.
|
Gestion des coûts
L'implémentation de stratégies de gestion des coûts telles que les remises sur engagement d'utilisation (CUD), l'autoscaling et les sauvegardes incrémentielles garantit une utilisation efficace des ressources et des économies de coûts importantes. L'alignement du provisionnement des ressources sur les demandes de charge de travail et l'optimisation des environnements hors production réduisent encore les dépenses, tout en préservant les performances et la flexibilité.
Case à cocher | Activité |
---|---|
❑ |
Évaluez et achetez des remises sur engagement d'utilisation pour Spanner afin de réduire les coûts liés aux charges de travail prévisibles. Ces engagements peuvent vous permettre de réaliser d'importantes économies par rapport aux tarifs à la demande. Analyser l'historique des schémas d'utilisation pour déterminer les engagements de remise sur engagement d'utilisation optimaux Pour en savoir plus, consultez les pages Remises sur engagement d'utilisation et Tarifs de Spanner.
|
❑ |
Surveillez l'utilisation de la capacité de calcul et ajustez les ressources provisionnées pour maintenir les niveaux d'utilisation du processeur recommandés. Le surprovisionnement de ressources de calcul peut entraîner des coûts inutiles, tandis que le sous-provisionnement peut avoir un impact sur les performances. Suivez les consignes d'utilisation maximale du processeur Spanner recommandées pour vous assurer d'un alignement efficace des ressources.
|
❑ |
Activez l'autoscaling pour ajuster de manière dynamique la capacité de calcul en fonction des exigences de la charge de travail. Cela garantit des performances optimales lors des pics de charge tout en réduisant les coûts pendant les périodes d'activité réduite. Configurez des règles d'ajustement avec des limites supérieure et inférieure pour contrôler les coûts et éviter un surajustement. Pour en savoir plus, consultez la section Présentation de l'autoscaling.
|
❑ |
Utilisez des sauvegardes incrémentielles pour réduire les coûts de stockage des sauvegardes.
Les sauvegardes incrémentielles ne stockent que les modifications apportées aux données depuis la dernière sauvegarde. Cela réduit considérablement les besoins en stockage par rapport aux sauvegardes complètes.
Intégrez les sauvegardes incrémentielles à votre stratégie de sauvegarde. Pour en savoir plus, consultez la section Sauvegardes incrémentielles.
|
❑ |
Optimisez les coûts des environnements hors production en sélectionnant la configuration d'instance la plus optimale et en déprovisionnant les ressources lorsque les environnements ne sont pas utilisés. Par exemple, réduisez la taille des environnements non critiques en dehors des heures de bureau ou automatisez l'ajustement des ressources pour les scénarios de développement et de test. Cette approche réduit les coûts tout en conservant la flexibilité opérationnelle.
|