Checklist de lancement pour Spanner

Cette checklist de lancement fournit une liste des éléments à prendre en compte avant de lancer une application de production sur Spanner. Elle n'est pas exhaustive, mais sert à mettre en évidence les points clés pour minimiser les risques, optimiser les performances et assurer l'alignement avec les objectifs commerciaux et opérationnels, en proposant une approche systématique pour un déploiement Spanner fluide et fiable.

Cette checklist est composée des sections suivantes :

Conception, développement, tests et optimisation

L'optimisation de la conception des schémas, des transactions et des requêtes est essentielle pour utiliser l'architecture distribuée de Spanner afin d'obtenir des performances et 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 liées à la conception de schémas pour vous assurer que le schéma est compatible avec des performances élevées et l'évolutivité sous les charges de travail attendues.
❑  
Optimisez les transactions et les requêtes pour minimiser le verrouillage et maximiser les performances. Utilisez les modes de transaction de Spanner, tels que les instructions de lecture-écriture avec verrouillage, de lecture seule forte et de LMD partitionné, pour équilibrer la cohérence, le débit et la latence. Réduisez les champs d'application 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 depuis des systèmes avec différents niveaux d'isolation (par exemple, PostgreSQL ou MySQL), utilisez des transactions pour éviter les goulots d'étranglement des performances. Pour en savoir plus, consultez 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 pic et de forte simultanéité qui imitent les charges d'application réelles, y compris diverses formes de transactions et schémas de requête. É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 de l'instance répondent aux exigences de performances. Utilisez les tests de charge de manière itérative pendant le développement pour optimiser et affiner l'implémentation.
❑  
Étendez les tests de charge à tous les services en interaction, et pas seulement aux applications isolées. Simulez des parcours utilisateur complets ainsi que des processus parallèles, tels que des chargements par lot ou des 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 géographiquement alignés sur la topologie de déploiement de production prévue. Cette approche holistique permet d'identifier les conflits potentiels à l'avance et d'assurer des performances de base de données optimales lors des opérations réelles.
❑  
Pour garantir des performances de requête 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 des performances. Pour en savoir plus, consultez Présentation de l'optimiseur de requêtes.
❑  
Assurez-vous que les statistiques de l'optimiseur de requêtes sont à jour pour permettre des plans d'exécution de requêtes efficaces. Bien que les statistiques soient mises à jour automatiquement, envisagez de créer manuellement un package de statistiques dans des scénarios tels que des modifications de données à grande échelle (par exemple, des insertions, des mises à jour ou des suppressions groupées), l'ajout de nouveaux index ou des modifications de schéma. Il est essentiel de maintenir à jour les statistiques de l'optimiseur de requêtes pour conserver des performances de requête optimales.

Migration (facultatif)

La migration de base de données est un processus complet qui nécessite d'examiner en détail les 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 opérationnelle normalisée (SOP) détaillée pour le basculement de la migration. Cela inclut les étapes de déploiement de l'application, de basculement de la base de données et d'automatisation pour minimiser les interventions manuelles. Identifiez et communiquez les périodes d'indisponibilité potentielles aux parties prenantes bien à l'avance. Mettez en place 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èmes critiques lors de la migration. Testez les procédures de secours 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 retour en arrière et assurez-vous que l'équipe est formée pour exécuter ce plan rapidement et efficacement.

Déploiement

Une planification du déploiement appropriée garantit que les configurations Spanner répondent aux exigences de charge de travail en termes de disponibilité, de latence et d'évolutivité, 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 minimise les risques, garantit des performances optimales et évite les contraintes de ressources ou les pannes lors des opérations critiques.

Case à cocher Activité
❑  
Assurez-vous que la configuration de votre instance Spanner (régionale, birégionale ou multirégionale) correspond 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 modèles de trafic et des limites d'utilisation recommandées, en vous assurant que la capacité est 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 d'établir des protections des coûts. Pour en savoir plus, consultez Capacité de calcul, nœuds et unités de traitement.
❑  
Si vous utilisez une configuration d'instance birégionale ou multirégionale, choisissez une région principale qui minimise la latence pour les écritures d'applications à partir de 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. Planifiez des scénarios de basculement en vous assurant que la topologie de l'application peut s'adapter aux changements de région principale lors des pannes régionales. Pour en savoir plus, consultez Modifier la région principale d'une base de données.
❑  
Configurez correctement les tags et les libellés pour une clarté opérationnelle et le suivi des ressources Google Cloud. Utilisez des tags pour regrouper les instances par environnement ou par 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 Contrôler l'accès et organiser les instances avec des tags.
❑  
Évaluez si le 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 échauffement 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 les quotas de Spanner avant le déploiement. Si nécessaire, demandez des augmentations de 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 après le déploiement. Pour en savoir plus, consultez Quotas et limites.
❑  
Utilisez des outils d'automatisation tels que Terraform pour provisionner et gérer vos instances Spanner, en veillant à ce que les configurations soient efficaces et sans erreur. Pour la gestion des schémas, envisagez d'utiliser des outils tels que Liquibase pour éviter les suppressions accidentelles de schémas lors des mises à jour. Pour en savoir plus, consultez Utiliser Terraform avec Spanner.

Reprise après sinistre

Il est essentiel d'établir une stratégie de reprise après sinistre robuste pour protéger les données, minimiser les temps d'arrêt et assurer la continuité de l'activité en cas de défaillances inattendues. Tester régulièrement les procédures de restauration et automatiser les sauvegardes permet de garantir la préparation opérationnelle, la conformité avec les objectifs de récupération et une protection fiable des données adaptée aux besoins de l'organisation.

Case à cocher Activité
❑  
Définissez une stratégie complète de reprise après sinistre pour Spanner, qui inclut la protection des données, les objectifs de récupération et les scénarios d'échec. Établissez des objectifs de temps de récupération (RTO) et des objectifs de point de récupération (RPO) clairs, qui s'alignent sur les exigences de continuité des activités. Spécifiez la fréquence de sauvegarde et 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 techniques appropriés afin de garantir la conformité de votre application en termes de disponibilité, de fiabilité et de sécurité. 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 pour les procédures de sauvegarde et de restauration, y compris des guides par étapes pour différents scénarios de récupération. Testez régulièrement ces procédures pour vous assurer de l'état de préparation opérationnelle et valider les exigences de RTO et de RPO. Les tests doivent simuler des conditions et des scénarios de défaillance réels afin d'identifier les lacunes et d'améliorer le processus de récupération. Pour en savoir plus, consultez Présentation de la restauration.
❑  
Mettez en œuvre des planifications de sauvegarde automatisées pour garantir une protection des données cohérente et fiable. Configurez les paramètres de fréquence et de conservation pour répondre aux besoins de votre entreprise et aux 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 Créer et gérer des programmations de sauvegarde.
❑  
Alignez les procédures de basculement sur la topologie de configuration des instances de votre application pour minimiser l'impact de la latence en cas d'indisponibilité. Tester des scénarios de reprise après sinistre, en s'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 Modifier la région principale d'une base de données.

Optimiseur de requêtes et gestion des statistiques

Il est important de gérer les versions et les statistiques de l'optimiseur de requêtes pour maintenir des performances de requête prévisibles et efficaces. L'utilisation de versions testées et la mise à jour des statistiques garantissent la stabilité, évitent les changements de performances inattendus et optimisent 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 prévisibles des requêtes, 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 mettez à jour la version par défaut uniquement après avoir confirmé la compatibilité et les améliorations des 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 permettre des plans d'exécution de requêtes efficaces. Bien que les statistiques soient mises à jour automatiquement, envisagez de créer manuellement un package de statistiques dans des scénarios tels que des modifications de données à grande échelle (par exemple, des insertions, des mises à jour ou des suppressions groupées), l'ajout de nouveaux index ou des modifications de schéma. Il est essentiel de maintenir à jour les statistiques de l'optimiseur de requêtes pour conserver des performances de requête optimales.
❑  
Dans certains cas, par exemple après des suppressions groupées 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 permet d'obtenir 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 s'il est nécessaire d'épingler les statistiques et supprimez l'épingle une fois que les packages mis à jour ont été validés. Pour en savoir plus, consultez Packages de statistiques de l'optimiseur de requêtes.

Sécurité

Il est essentiel d'implémenter des mesures de contrôle des accès pour protéger les données sensibles et empêcher les accès non autorisés dans Spanner. En appliquant le principe du moindre privilège, le contrôle précis des accès et la protection contre la suppression de bases de données, vous pouvez minimiser les risques, assurer la conformité et protéger les ressources critiques contre les actions accidentelles ou malveillantes.

Case à cocher Activité
❑  
Examinez et implémentez les règles Identity and Access Management (IAM) en suivant le principe du moindre privilège pour tous les utilisateurs et comptes de service qui accèdent à votre base de données. N'attribuez que les autorisations nécessaires pour effectuer des tâches spécifiques et auditez régulièrement les autorisations de contrôle des accès pour vous assurer que ce modèle est respecté. Utilisez des comptes de service avec des 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 restreint à des lignes, colonnes ou cellules spécifiques d'une table, implémentez un contrôle des accès ultraprécis. Concevez et appliquez des règles d'accès conditionnel basées sur les attributs utilisateur ou les valeurs de données pour appliquer des règles d'accès précises. Examinez et mettez à jour régulièrement ces règles pour les adapter à l'évolution des exigences de sécurité et de conformité. Pour en savoir plus, consultez la présentation du contrôle des accès ultraprécis.
❑  
Activez la protection contre la suppression de la base de données pour éviter les suppressions accidentelles ou non autorisées. Combinez cette fonctionnalité avec des contrôles IAM stricts pour limiter les droits de suppression à un petit ensemble d'utilisateurs ou de comptes de service de confiance. Configurez également des outils d'automatisation d'infrastructure tels que Terraform pour inclure des mesures de protection contre la suppression involontaire de vos bases de données. Cette approche multicouche réduit les risques pour les éléments de données critiques. Pour en savoir plus, consultez Empêcher la suppression accidentelle d'une base 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 garantir l'état du système. En utilisant des journaux d'audit, le 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 répondre aux exigences de conformité.

Case à cocher Activité
❑  
Activez la journalisation d'audit pour enregistrer des informations détaillées sur les activités de la base de données. Configurez les niveaux de journaux d'audit de manière appropriée en fonction des exigences de conformité et opérationnelles pour surveiller les schémas d'accès et détecter efficacement les anomalies. Sachez que les journaux d'audit peuvent devenir volumineux, en particulier pour les requêtes DATA_READ et DATA_WRITE, car toutes les instructions SQL et LMD sont consignées pour ces requêtes respectives. Pour en savoir plus, consultez Journaux d'audit Spanner.

L'acheminement de 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 des vues de journaux.
❑  
Collectez des métriques côté client en instrumentant votre logique d'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 vous permettra de bénéficier d'une visibilité de bout en bout sur les performances de l'application et les interactions avec la base de données. Pour en savoir plus, consultez Capturer des métriques personnalisées côté client à 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 suivre en temps réel et analyser l'historique des performances de la base de données. Pour en savoir plus, consultez Surveiller les 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é du stockage ou des pics de trafic inattendus. Intégrez ces alertes aux outils de réponse aux incidents pour une action rapide. Pour en savoir plus, consultez 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 règles de réessai 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 tags de requête et de transaction pertinents. Vous pouvez utiliser des tags de requête et de transaction pour mieux comprendre vos requêtes, vos lectures et vos transactions. Bonne pratique : utilisez des métadonnées contextuelles telles que le composant d'application, le type de requête ou le contexte utilisateur dans vos tags pour améliorer le débogage et l'introspection. Assurez-vous que les tags sont visibles dans les statistiques et les journaux de requêtes pour faciliter l'analyse des performances et le dépannage. Pour en savoir plus, consultez Résoudre les problèmes avec les tags de requête et de transaction.
❑  
Optimisez la gestion des sessions en activant la mise en pool des sessions dans la bibliothèque cliente. Configurez les paramètres du pool, tels que le nombre minimal et maximal de sessions, pour répondre aux exigences de la charge de travail tout en minimisant 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 en termes de performances de manière cohérente. Pour en savoir plus, consultez 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 exponentiels entre les tentatives, doivent être configurés pour équilibrer la résilience et les performances. Testez minutieusement ces règles pour vous assurer qu'elles correspondent aux besoins de l'application. Pour en savoir plus, consultez 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 en cas d'incident afin de garantir des réponses rapides et coordonnées aux problèmes liés à Spanner. Pour en savoir plus, consultez Obtenir de l'aide.

Case à cocher Activité
❑  
Établissez un cadre clair de réponse aux incidents, 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 pour les incidents, tels que le responsable des incidents, le responsable des communications et les experts en la matière, afin d'assurer une coordination et une communication efficaces lors des incidents. Développer et documenter des processus pour identifier, escalader, atténuer et résoudre les problèmes. Suivez les bonnes pratiques décrites dans le manuel Google SRE sur la réponse aux incidents et dans Gérer les incidents. Organisez régulièrement des formations et des simulations de réponse aux incidents pour vous assurer que l'équipe est prête et améliorer sa capacité à gérer efficacement les scénarios à forte pression.

Gestion des coûts

La mise en œuvre de stratégies de gestion des coûts telles que l'autoscaling et les sauvegardes incrémentielles garantit une utilisation efficace des ressources et des économies significatives. L'alignement du provisionnement des ressources sur les exigences de la charge de travail et l'optimisation des environnements de non-production permettent de réduire davantage les dépenses tout en maintenant les performances et la flexibilité.

Case à cocher Activité
❑  
Évaluez et souscrivez des remises sur engagement d'utilisation pour Spanner afin de réduire les coûts des charges de travail prévisibles. Ces engagements peuvent vous permettre de réaliser d'importantes économies par rapport aux tarifs à la demande. Analysez les habitudes d'utilisation historiques pour déterminer les engagements de remise sur engagement d'utilisation optimaux. Pour en savoir plus, consultez 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 des 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 garantir un alignement des ressources rentable.
❑  
Activez l'autoscaling pour ajuster de manière dynamique la capacité de calcul en fonction des besoins 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 de faible activité. Configurez des règles de scaling avec des limites supérieure et inférieure pour contrôler les coûts et éviter le surdimensionnement. Pour en savoir plus, consultez la 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 de 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 les environnements non critiques en dehors des heures de bureau ou automatisez le scaling des ressources pour les scénarios de développement et de test. Cette approche permet de minimiser les coûts tout en conservant une flexibilité opérationnelle.