Présentation de l'outil d'ajustement automatique

Cette page présente l'outil Autoscaler pour Spanner (Autoscaler), un outil Open Source que vous pouvez utiliser en tant qu'outil associé à Spanner. Cet outil vous permet d'augmenter ou de réduire automatiquement la capacité de calcul dans une ou plusieurs instances Spanner en fonction de la capacité utilisée.

Pour en savoir plus sur le scaling dans Spanner, consultez la section Autoscaling Spanner. Pour en savoir plus sur le déploiement de l'outil Autoscaler, consultez les ressources suivantes:

Cette page présente les fonctionnalités, l'architecture et la configuration générale de l'autoscaler. Ces sections vous guident tout au long du déploiement de l'Autoscaler sur l'un des environnements d'exécution compatibles dans chacune des différentes topologies.

Autoscaler

L'outil Autoscaler est utile pour gérer l'utilisation et les performances de vos déploiements Spanner. Pour vous aider à équilibrer les coûts en fonction des besoins en termes de performances, l'outil Autoscaler surveille vos instances, et ajoute ou supprime automatiquement des nœuds ou des unités de traitement afin de garantir qu'ils restent dans les paramètres suivants:

Plus ou moins une marge configurable.

Les déploiements d'autoscaling de Spanner permettent à votre infrastructure de s'adapter et d'effectuer des scalings automatiquement pour répondre aux exigences de charge, avec peu ou pas d'intervention. L'autoscaling redimensionne également l'infrastructure provisionnée, ce qui peut vous aider à réduire les frais engagés.

Architecture

L'Autoscaler comporte deux composants principaux : le sondeur et le redimensionneur. Bien que vous puissiez déployer l'autoscaler avec différentes configurations sur plusieurs environnements d'exécution dans plusieurs topologies avec différentes configurations, la fonctionnalité de ces composants principaux est la même.

Cette section décrit plus en détail ces deux composants et leurs objectifs.

Outil de sondage

Le polleur collecte et traite les métriques de séries temporelles pour une ou plusieurs instances Spanner. Elle prétraite les données des métriques pour chaque instance Spanner de sorte que seuls les points de données les plus pertinents soient évalués et envoyés au scaleur. Le prétraitement effectué par le scrutateur permet également de simplifier le processus d'évaluation des seuils pour les instances Spanner régionales, birégionales et multirégionales.

Échelle

Le scaling évalue les points de données reçus du composant Poller et détermine si vous devez ajuster le nombre de nœuds ou d'unités de traitement et, le cas échéant, dans quelle mesure. Elle compare les valeurs des métriques au seuil, plus ou moins une marge autorisée, et ajuste le nombre de nœuds ou d'unités de traitement en fonction de la méthode de scaling configurée. Pour en savoir plus, consultez la section Méthodes de scaling.

Tout au long du flux, l'outil Autoscaler écrit un résumé de ses recommandations et actions dans Cloud Logging à des fins de suivi et d'audit.

Fonctionnalités d'Autoscaler

Cette section décrit les principales fonctionnalités de l'outil Autoscaler.

Gérer plusieurs instances

L'outil Autoscaler est capable de gérer plusieurs instances Spanner sur plusieurs projets. Les instances multirégionales, birégionales et régionales ont toutes des seuils d'utilisation différents qui sont utilisés lors du scaling. Par exemple, le scaling des déploiements multirégionaux et birégionaux est de 45% de l'utilisation du processeur par les tâches à priorité élevée, tandis que le scaling des déploiements régionaux est de 65% de l'utilisation du processeur par les tâches à priorité élevée, plus ou moins une marge autorisée. Pour en savoir plus sur les différents seuils de scaling, consultez la page Alertes en cas d'utilisation intensive du processeur.

Paramètres de configuration indépendants

Chaque instance Spanner avec autoscaling peut avoir une ou plusieurs planifications d'interrogation. Chaque planification d'interrogation possède son propre ensemble de paramètres de configuration.

Ces paramètres déterminent les facteurs suivants :

  • Nombre minimal et maximal de nœuds ou d'unités de traitement qui contrôlent la taille possible de votre instance, vous permettant de contrôler les frais engagés.
  • La méthode de scaling utilisée pour ajuster votre instance Spanner en fonction de votre charge de travail.
  • Les périodes de transition pour permettre à Spanner de gérer les divisions des données.

Méthodes de scaling

L'outil Autoscaler fournit trois méthodes de scaling différentes pour les instances Spanner en termes de scaling à la hausse et à la baisse: par étapes, linéaire et direct. Chaque méthode est conçue pour accepter différents types de charges de travail. Vous pouvez appliquer une ou plusieurs méthodes à chaque instance Spanner qui subit un autoscaling lorsque vous créez des planifications d'interrogation indépendantes.

Les sections suivantes contiennent des informations supplémentaires sur ces méthodes de mise à l'échelle.

Par étapes

Le scaling par étapes est utile pour les charges de travail qui présentent des pics petits ou nombreux. Il provisionne la capacité pour les éliminer à l'aide d'un seul événement d'autoscaling.

Le graphique suivant présente un modèle de charge avec des plateaux ou étapes de charge multiples, où chaque étape comporte plusieurs petits pics. Ce modèle est particulièrement adapté à la méthode par étapes.

Schéma de charge avec des étapes multiples.

Lorsque le seuil de charge est dépassé, cette méthode provisionne et supprime des nœuds ou des unités de traitement en utilisant un nombre fixe mais configurable. Par exemple, trois nœuds sont ajoutés ou supprimés pour chaque action de scaling. En modifiant la configuration, vous pouvez autoriser l'ajout ou la suppression d'incréments de capacité supérieurs à tout moment.

Linéaire

Le scaling linéaire est préférable avec des modèles de charge qui changent plus progressivement ou présentent quelques pics importants. La méthode calcule le nombre minimal de nœuds ou d'unités de traitement requis pour maintenir l'utilisation en dessous du seuil de scaling. Le nombre de nœuds ou d'unités de traitement ajoutés ou supprimés pour chaque événement de scaling n'est pas soumis à un incrément fixe.

L'exemple de modèle de charge dans le graphique suivant montre des augmentations et des diminutions soudaines importantes de la charge. Ces fluctuations ne sont pas regroupées dans des étapes perceptibles, comme elles l'étaient dans le graphique précédent. Ce modèle peut être mieux géré à l'aide du scaling linéaire.

Schéma de charge avec fluctuations.

L'outil Autoscaler utilise le ratio de l'utilisation observée par rapport au seuil d'utilisation pour déterminer s'il faut ajouter ou soustraire des nœuds ou des unités de traitement au nombre total actuel.

La formule permettant de calculer le nouveau nombre de nœuds ou d'unités de traitement se présente comme suit :

newSize = currentSize * currentUtilization / utilizationThreshold

Direct

Le scaling direct offre une augmentation immédiate de la capacité. Cette méthode est destinée à gérer les charges de travail par lots dans lesquelles un nombre de nœuds prédéterminé plus élevé est périodiquement exigé dans une planification avec une heure de début connue. Cette méthode procède au scaling à la hausse de l'instance jusqu'à atteindre le nombre maximal de nœuds ou d'unités de traitement spécifié dans la planification. Elle est prévue pour être utilisée en plus d'une méthode linéaire ou par étapes.

Le graphique suivant décrit l'augmentation planifiée importante de la charge, pour laquelle Autoscaler a préprovisionné la capacité à l'aide de la méthode directe.

Modèle de charge avec scaling direct préprovisionné.

Une fois la charge de travail par lot terminée et l'utilisation repassée à un niveau normal, selon votre configuration, le scaling linéaire ou par étapes est appliqué pour effectuer un scaling à la baisse de l'instance automatiquement.

Configuration

L'outil Autoscaler dispose de différentes options de configuration que vous pouvez utiliser pour gérer le scaling de vos déploiements Spanner. Bien que les fonctions Cloud Run et les paramètres GKE soient similaires, ils sont fournis différemment. Pour en savoir plus sur la configuration de l'outil Autoscaler, consultez Configurer un déploiement de fonctions Cloud Run et Configurer un déploiement GKE.

Configuration avancée

L'outil Autoscaler dispose d'options de configuration avancées qui vous permettent de contrôler plus précisément quand et comment vos instances Spanner sont gérées. Les sections suivantes présentent une sélection de ces commandes.

Seuils personnalisés

L'outil Autoscaler détermine le nombre de nœuds ou d'unités de traitement à ajouter ou à soustraire d'une instance à l'aide des seuils Spanner recommandés pour les métriques de charge suivantes:

  • Processeur à priorité élevée
  • Utilisation du processeur, moyenne glissante de 24 heures
  • Utilisation du stockage

Nous vous recommandons d'utiliser les seuils par défaut, comme décrit dans la section Créer des alertes portant sur des métriques Spanner. Toutefois, dans certains cas, vous souhaiterez peut-être modifier les seuils utilisés par l'outil Autoscaler. Par exemple, vous pouvez définir des seuils inférieurs pour que l'outil Autoscaler réagisse plus rapidement que pour des seuils plus élevés. Cette modification permet d'éviter le déclenchement d'alertes à des seuils plus élevés.

Métriques personnalisées

Bien que les métriques par défaut de l'outil Autoscaler répondent à la plupart des scénarios de scaling et de performances, il peut arriver que vous deviez spécifier vos propres métriques pour déterminer quand effectuer un scaling à la hausse et à la baisse. Pour de tels scénarios, vous définissez des métriques personnalisées dans la configuration à l'aide de la propriété metrics.

Marges

Une marge définit une limite supérieure et inférieure au seuil. L'outil Autoscaler ne déclenche un événement d'autoscaling que si la valeur de la métrique est supérieure à la limite supérieure ou inférieure à la limite inférieure.

L'objectif de ce paramètre est d'éviter les déclenchements d'événements d'autoscaling pour les fluctuations de charge de travail mineures autour du seuil, réduisant ainsi la fluctuation des actions d'Autoscaler. Le seuil et la marge définissent la plage suivante, en fonction de la valeur de métrique souhaitée :

[threshold - margin, threshold + margin]

Plus la marge est faible, plus la plage est réduite, ce qui augmente la probabilité qu'un événement d'autoscaling soit déclenché.

La spécification d'un paramètre de marge pour une métrique est facultative et sa valeur par défaut est de cinq points de pourcentage, avant et sous le paramètre.

Divisions des données

Spanner attribue des plages de données appelées divisions aux nœuds ou aux subdivisions d'un nœud appelé unités de traitement. Le nœud ou les unités de traitement gèrent et diffusent indépendamment les données selon les divisions définies. Les divisions des données sont créées en fonction de plusieurs facteurs, y compris le volume de données et les modèles d'accès. Pour en savoir plus, consultez la page Spanner : schéma et modèle de données.

Les données sont organisées en divisions, et Spanner gère celles-ci automatiquement. Ainsi, lorsque l'outil Autoscaler ajoute ou supprime des nœuds ou des unités de traitement, il doit laisser suffisamment de temps au backend Spanner pour réattribuer et réorganiser les divisions en fonction de la capacité ajoutée ou supprimée des instances.

L'outil Autoscaler utilise des périodes de transition pour les événements de scaling à la hausse et à la baisse afin de contrôler la vitesse à laquelle il peut ajouter ou supprimer des nœuds ou des unités de traitement dans une instance. Avec cette méthode, l'instance dispose du temps nécessaire pour réorganiser les relations entre les notes de calcul ou unités de traitement et les divisions de données. Par défaut, les périodes de transition d'autoscaling à la hausse et à la baisse sont définies sur les valeurs minimales suivantes:

  • Valeur de scaling à la hausse : 5 minutes
  • Valeur de scaling à la baisse : 30 minutes

Pour en savoir plus sur les recommandations de scaling et les périodes de transition, consultez la page Scaling des instances Spanner.

Tarifs

La consommation de ressources de l'outil Autoscaler est faible en termes de calcul, de mémoire et de stockage. En fonction de la configuration de l'Autoscaler, lorsqu'il est déployé dans des fonctions Cloud Run, l'utilisation des ressources de l'Autoscaler se situe généralement dans le niveau gratuit de ses services dépendants (fonctions Cloud Run, Cloud Scheduler, Pub/Sub et Firestore).

Utilisez le simulateur de coût pour générer une estimation des coûts de vos environnements en fonction de votre utilisation prévue.

Étape suivante