Modifier

Share via


Approches architecturales pour la gestion des coûts et l’allocation dans une solution multilocataire

Azure
Gestion des coûts Azure
Azure Resource Manager
Azure Monitor

Les solutions multilocataires nécessitent souvent une attention particulière lors de la mesure et de l’allocation des coûts, ainsi que lors de l’optimisation des coûts. Sur cette page, nous décrivons quelques conseils clés que les architectes de solutions doivent prendre en compte pour mesurer, allouer et optimiser les coûts d’une application multilocataire.

Principaux éléments et exigences à prendre en compte

Tenez compte des exigences relatives à la mesure de la consommation de votre solution. Ce point est abordé plus en détail dans la section Mesure de la consommation de chaque locataire.

Objectif de la mesure

Il est important de déterminer votre objectif. Voici des exemples d’objectifs :

  • Calculer un coût approximatif des marchandises vendues pour chaque locataire. Par exemple, si vous déployez un nombre important de ressources partagées, vous pourriez n’être intéressé que par une approximation du coût encouru pour chaque locataire.
  • Calculer le coût exact encouru par chaque locataire. Par exemple, si vous facturez vos locataires pour la quantité exacte de consommation qu’ils encourent, vous devez disposer d’informations précises sur le coût des ressources de chaque locataire.
  • Identifier les locataires hors norme qui coûtent beaucoup plus que d’autres. Par exemple, si vous proposez un modèle de tarification forfaitaire, vous devrez peut-être déterminer si certains locataires consomment une quantité disproportionnée de votre capacité d’approvisionnement, afin de pouvoir appliquer des stratégies d’utilisation équitable. Dans de nombreux cas, ce cas d’usage ne nécessite pas une mesure précise des coûts.
  • Réduire le coût global d’Azure pour votre solution. Par exemple, vous pourriez vouloir examiner le coût de chaque composant, puis déterminer si vous avez surapprovisionné la charge de travail.

En comprenant l’objectif de la mesure de la consommation par un locataire, vous pouvez déterminer si les allocations de coûts doivent être approximatives ou très précises, ce qui influe sur les outils spécifiques que vous pouvez utiliser et les pratiques que vous pouvez suivre.

Composants partagés

Vous pourrez peut-être réduire le coût d’une solution multilocataire en déplaçant les locataires vers une infrastructure partagée. Toutefois, vous devez examiner attentivement l’impact du partage des ressources, notamment si vos locataires commencent à rencontrer le problème du voisin bruyant.

Vous devez également réfléchir à la manière dont vous allez mesurer et allouer les coûts des composants partagés. Par exemple, vous pouvez diviser le coût de manière égale entre chacun des locataires qui utilisent le composant partagé. Vous pouvez également mesurer l’utilisation de chaque locataire pour obtenir une mesure plus précise de sa consommation de composants partagés.

Approches et modèles à prendre en compte

Allouer les coûts en utilisant des étiquettes de ressources

Azure vous permet d’appliquer des étiquettes à vos ressources. Une étiquette est une paire clé-valeur. Vous utilisez des étiquettes pour ajouter des métadonnées personnalisées. Les étiquettes sont utiles pour de nombreuses opérations de gestion, et elles sont également utiles pour analyser le coût de votre consommation Azure. Après avoir appliqué des étiquettes, vous pouvez déterminer les coûts associés à chaque étiquette.

La façon dont vous utilisez les étiquettes dans une solution multilocataire est susceptible d’être différente selon votre architecture.

Dans certaines solutions, vous pourriez déployer des ressources dédiées pour chaque locataire, par exemple si vous déployez des empreintes de déploiement dédiées pour chaque locataire. Dans ces situations, il est clair que toute consommation Azure pour ces ressources doit être allouée à ce locataire. Vous pouvez donc étiqueter vos ressources Azure avec l’ID du locataire.

Dans d’autres situations, vous pouvez avoir des ensembles de ressources partagées. Par exemple, lorsque vous appliquez le modèle Partitionnement, vous pouvez déployer plusieurs bases de données et répartir vos locataires entre elles. Pensez à étiqueter les ressources avec un identificateur pour le groupe de locataires. Il se peut que vous ne puissiez pas allouer facilement les coûts à un seul locataire, mais vous pouvez au moins réduire le coût à un ensemble de locataires, lorsque vous utilisez cette approche. Vous pouvez également utiliser les informations de consommation pour vous aider à rééquilibrer les locataires entre les partitions si vous remarquez qu’une partition spécifique accumule des coûts plus élevés que les autres.

Notes

Il y a une limite au nombre d’étiquettes qui peuvent être appliquées à une ressource. Lorsque vous travaillez avec des ressources partagées, il est préférable de ne pas ajouter une étiquette pour chaque locataire qui partage la ressource. Pensez plutôt à ajouter une étiquette avec l’ID de la partition ou une autre façon d’identifier le groupe de locataires.

Prenons un exemple de solution multilocataire créée avec le modèle Empreintes de déploiement et le modèle de location partitionné verticalement. Chaque empreinte de déploiement comprend un serveur web partagé et des bases de données partitionnées. Des étiquettes peuvent être appliquées à chacun des composants Azure, comme indiqué dans le diagramme suivant.

Diagram showing two stamps, with tags added to each component.

La stratégie d’étiquetage employée ici est la suivante :

  • Chaque ressource a une étiquette stamp-id.
  • Chaque base de données partitionnée a une étiquette shard-id.
  • Chaque ressource dédiée à un locataire spécifique a une étiquette tenant-id.

Grâce à cette stratégie d’étiquetage, il est facile de filtrer les informations sur les coûts sur une seule empreinte. Il est également facile de trouver le coût des ressources spécifiques au locataire, comme le coût total de la base de données pour le locataire C. Les composants partagés n’ont pas d’étiquette tenant-id, mais le coût des composants partagés pour une étiquette peut être divisé entre les locataires qui sont affectés à l’utilisation de cette empreinte ou partition.

Instrumenter votre application

Dans les situations où vous n’avez pas de relation directe entre une ressource Azure et un locataire, envisagez d’instrumenter votre application pour collecter la télémétrie.

Votre couche Application peut déjà rassembler des journaux et des métriques utiles pour répondre aux questions concernant la mesure de la lumière, par exemple :

  • Combien de requêtes d’API sont effectuées par locataire, approximativement ?
  • À quels moments de la journée certains locataires sont-ils les plus occupés ?
  • Comment les modèles d’utilisation du locataire A se comparent-ils à ceux du locataire B ?

Dans Azure, ces mesures sont souvent capturées par Application Insights. En utilisant des initialiseurs de télémétrie, vous pouvez enrichir la télémétrie capturée par Application Insights pour inclure un identificateur de locataire ou d’autres données personnalisées.

Cependant, Application Insights et d’autres solutions de journalisation et de monitoring ne sont pas appropriées pour une mesure précise des coûts ou à des fins de comptage. Application Insights est conçu pour échantillonner les données, en particulier lorsque votre application a un volume élevé de requêtes. L’échantillonnage est conçu pour réduire le coût de l’analyse de votre solution, car capturer chaque élément de télémétrie peut souvent devenir coûteux.

Si vous avez besoin de suivre des détails précis sur la consommation ou l’utilisation à des fins de facturation, vous devez plutôt créer un pipeline personnalisé pour enregistrer les données nécessaires. Vous devez ensuite agréger les données en fonction de vos besoins. Les services Azure qui peuvent être utiles à cet effet incluent Event Hubs, pour capturer de gros volumes de télémétrie, et Stream Analytics, afin de les traiter en temps réel.

Utiliser les réservations Azure et le plan d’économies Azure pour réduire les coûts

Réservations Azure : Les réservations Azure vous permettent de réduire vos coûts Azure en vous engageant à l’avance sur un certain niveau de dépenses. Les réservations s’appliquent à un certain nombre de types de ressources Azure.

Les réservations peuvent être utilisées efficacement dans une solution multilocataire. Tenez compte des points suivants :

  • Lorsque vous déployez une solution multilocataire qui comprend des ressources partagées, tenez compte du niveau de consommation de base dont vous avez besoin pour la charge de travail. Vous pouvez envisager une réservation pour cette consommation de référence, puis payer les tarifs standard pour une consommation plus élevée en cas de pics imprévisibles.
  • Lorsque vous déployez des ressources pour chaque locataire, voyez si vous pouvez vous engager à l’avance sur la consommation de ressources pour un locataire spécifique ou pour l’ensemble de votre portefeuille de locataires.

Réservations Azure vous permet d’étendre vos réservations pour qu’elles s’appliquent à un groupe de ressources, un abonnement ou un ensemble d’abonnements. Cela signifie que vous pouvez tirer parti des réservations, même si vous répartissez votre charge de travail entre plusieurs abonnements.

Les étendues de réservation peuvent également s’avérer utiles lorsque vous avez des locataires dont la charge de travail est imprévisible. Par exemple, considérons une solution dans laquelle le locataire A n’a besoin que d’une instance d’une ressource spécifique, mais où les locataires B et C en ont besoin de deux. Puis le locataire B devient moins sollicité, vous réduisez donc le nombre d’instances, et le locataire A devient plus sollicité, vous augmentez donc le nombre d’instances. Vos réservations sont appliquées aux locataires qui en ont besoin.

Plan d’économies Azure pour le calcul : Le plan d’économies Azure pour le calcul est un plan d’économies flexible qui vous permettent de réaliser des économies significatives sur les tarifs du paiement à l’utilisation. Vous souscrivez à un contrat d’un ou trois ans et bénéficiez de remises sur les services de calcul éligibles. Ces services incluent les machines virtuelles, les hôtes dédiés, les instances de conteneur, les fonctions Azure Premium et Azure App Services. Les économies s’appliquent à ces services de calcul, quelle que soit la région, la taille des instances ou le système d’exploitation. Pour plus d’informations, consultez Vue d’ensemble du plan d’économies Azure et Documentation du plan d’économies Azure.

Réservations et plan d’économies combinés : Pour optimiser le coût et la flexibilité, vous pouvez combiner un plan d’économies Azure avec les réservations Azure.

Antimodèles à éviter

  • Ne pas suivre du tout les coûts. Il est important d’avoir au moins une idée approximative des coûts que vous encourez et de l’impact de chaque locataire sur le coût de livraison de votre solution. Sinon, si vos coûts changent au fil du temps, vous n’avez aucune base de référence à laquelle comparer. Vous pouvez également ne pas être capable de prédire l’impact d’une croissance des locataires sur vos coûts et votre rentabilité.
  • Faire des hypothèses ou deviner. Assurez-vous que votre mesure des coûts est basée sur des informations réelles. Vous n’avez peut-être pas besoin d’un degré élevé de précision, mais même vos estimations doivent s’appuyer sur des mesures réelles.
  • Précision inutile. Il est possible que vous n’ayez pas besoin d’une comptabilité détaillée de tous les coûts encourus pour chaque locataire. La mise en place de processus précis de mesure et d’optimisation des coûts inutiles peut s’avérer contre-productive, ce qui rend l’ingénierie plus complexe et crée des processus fragiles.
  • Mesure en temps réel. La plupart des solutions n’ont pas besoin de mesures de coûts en temps réel. Les données de mesure et de consommation pouvant être complexes à traiter, il est préférable de consigner les données nécessaires, puis de les agréger et de les traiter de manière asynchrone ultérieurement.
  • Utiliser des outils de surveillance pour la facturation. Comme décrit dans la section Instrumenter votre application, veillez à utiliser des outils conçus pour le suivi et la mesure des coûts. Les solutions de monitoring d’applications ne sont généralement pas de bons candidats pour ce type de données, en particulier lorsque vous avez besoin d’une grande précision.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteur principal :

  • John Downs | Ingénieur client principal, FastTrack for Azure

Autres contributeurs :

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes