Checklist de lancement pour Spanner

Cette checklist de lancement fournit une liste d'éléments à prendre en compte avant de lancer une application de production sur Spanner. Il n'est pas exhaustif, mais met en évidence les points clés à prendre en compte pour minimiser les risques, optimiser les performances et garantir l'alignement sur les objectifs commerciaux et opérationnels. Il offre une approche systématique pour déployer Spanner de manière fluide et fiable.

Cette checklist est composée des sections suivantes :

Conception, développement, test et optimisation

Il est essentiel d'optimiser la conception des schémas, les transactions et les requêtes pour utiliser l'architecture distribuée de Spanner afin d'obtenir des performances et une évolutivité élevées. Des tests rigoureux de bout en bout et à l'échelle de la production garantissent que le système peut gérer les charges de travail réelles, les pics de charge et les 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 les clés primaires et les index appropriés pour éviter les points chauds, 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 avec les 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 avec cohérence forte et de LMD partitionné, pour équilibrer la cohérence, le débit et la latence. Réduisez les étendues de verrouillage en utilisant des transactions en lecture seule pour les requêtes, le traitement par lot pour un débit LMD maximal ou les instructions LMD partitionnées pour les mises à jour et les suppressions à grande échelle. Lorsque vous migrez depuis des systèmes avec des niveaux d'isolation différents (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 pointe et de forte concurrence qui imitent les charges d'application réelles, y compris diverses formes de transactions et 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 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 pour englober tous les services interagissant, et pas seulement les applications isolées. Simulez des parcours utilisateur complets en parallèle de processus 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 veillant à ce que les pilotes et services de test de charge soient alignés géographiquement sur la topologie de déploiement de production prévue. Cette approche holistique identifie les conflits potentiels à l'avance et assure le bon fonctionnement de la base de données lors des opérations réelles.
❑  
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. 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 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 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 conserver des performances 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 éléments suivants dans votre stratégie de migration :

Case à cocher Activité
❑  
Élaborez une procédure opérationnelle standard (SOP) détaillée pour la transition de la migration. Cela inclut les étapes de déploiement de l'application, de bascule de la base de données et d'automatisation pour minimiser l'intervention manuelle. Identifiez et communiquez les fenêtres d'indisponibilité potentielles aux parties prenantes 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 transfert inclut des contrôles de validation pour confirmer l'intégrité des données et les capacité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 plan de secours 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 reprise après sinistre et de l'automatisation permet de minimiser les risques, d'assurer des performances optimales et d'éviter les contraintes ou les pannes de ressources 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 veillant à ce que la capacité soit suffisante en cas de panne zonale ou régionale. 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 mesures de protection 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'application à partir des services déployés dans vos emplacements les plus sensibles à la latence. Testez les implications de différentes régions principales 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 est capable de s'adapter aux changements de région principale en cas de panne régionale. 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é lors du 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 Préparer la base de données avant le lancement de l'application.
❑  
Avant le déploiement, consultez les limites et les quotas de Spanner. 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 après le déploiement. Pour en savoir plus, consultez Quotas et limites.
❑  
Utilisez des outils d'automatisation comme 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, pensez à 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 (DR) robuste pour protéger les données, minimiser les temps d'arrêt et assurer la continuité des activités en cas de défaillance inattendue. Tester régulièrement les procédures de restauration et automatiser les sauvegardes permet de garantir la préparation opérationnelle, la conformité aux 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. 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é des activités. Spécifiez la fréquence des sauvegardes 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 d'assurer la conformité en termes de disponibilité, de fiabilité et de 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 pour les 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 d'être opérationnel 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 Présentation de la restauration.
❑  
Implémentez des plannings de sauvegarde automatisés pour assurer une protection des données cohérente et fiable. Configurez la fréquence et les paramètres 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 plannings de sauvegarde.
❑  
Alignez les procédures de basculement sur la topologie de configuration d'instance de votre application pour minimiser l'impact de la latence en cas de panne. Testez les scénarios de reprise après sinistre pour vous assurer que l'application peut fonctionner efficacement lorsque la région principale 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êtes 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 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 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 conserver des performances 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'épinglage 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 stratégies 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 vérifiez 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, des colonnes ou des cellules spécifiques d'un tableau, implémentez un contrôle des accès ultraprécis (CAUP). 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.
❑  
Implémentez des plannings de sauvegarde automatisés pour assurer une protection des données cohérente et fiable. Configurez la fréquence et les paramètres 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 plannings 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 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 de l'infrastructure tels que Terraform pour inclure des mesures de protection contre la suppression involontaire de vos bases de données. Cette approche multicouche minimise les risques pour les ressources 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 assurer l'intégrité du système. En utilisant les journaux d'audit, le traçage distribué, les tableaux de bord et les 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 capturer 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 modèles 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 enregistrées pour ces requêtes respectives. Pour en savoir plus, consultez Journalisation des audits 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 précisément l'accès aux journaux à l'aide des 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 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 du 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

Il est essentiel de configurer le taggage des opérations, les pools de sessions et les règles de réessai 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 exigences de charge de travail et des erreurs temporaires, en alignant le comportement du système sur les exigences des applications.

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 liés aux tags de requête et aux tags de transaction.
❑  
Optimisez la gestion des sessions en activant le regroupement de 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 d'intervalle exponentiel entre les tentatives, 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 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 clairement les rôles et les responsabilités 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 gestion des 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 du domaine, afin d'assurer une coordination et une communication efficaces lors des incidents. Développez et documentez 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 Gestion des incidents. Organisez régulièrement des formations et des simulations de réponse aux incidents pour vous assurer que votre équipe est prête et améliorer sa capacité à gérer efficacement les scénarios à haute pression.

Gestion des coûts

L'implémentation 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 importantes. L'alignement du provisionnement des ressources sur les exigences de charge de travail et l'optimisation des environnements hors production permettent de réduire davantage les dépenses tout en maintenant 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 à la tarification à la demande. Analysez les schémas d'utilisation historiques 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 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 recommandées concernant l'utilisation maximale du processeur Spanner pour vous assurer d'aligner les ressources de manière rentable.
❑  
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 de faible activité. Configurez des règles de scaling avec des limites supérieures et inférieures pour contrôler les coûts et éviter le surdimensionnement. Pour en savoir plus, consultez la page Présentation de l'autoscaling.
❑  
Utilisez les 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 des sauvegardes incrémentielles à votre stratégie de sauvegarde. Pour en savoir plus, consultez Sauvegardes incrémentielles.
❑  
Optimisez les coûts pour les environnements hors production en sélectionnant la configuration d'instance la plus optimale et en supprimant les ressources lorsque les environnements ne sont pas utilisés. Par exemple, réduisez la taille des environnements non critiques après les 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.