Skip to content

Multitenant Architecture

References

Mes Notes en vracs

  • SaaS = est uniquement un business model !
  • Multitenancy = pattern d'archi mutualise les mêmes ressources pour plusieurs tenant -> maximiser la densité
  • MVP = un feedback de la team D365 lors de la migration onprem vers Azure en mt tenant
    • Minimum: créer rapidement quelque chose et le déployer aux clients
    • Viable: avoir suffisemment de fonctionnel pour proposer de la valeur

Concepts

Par Solution

Azure OpenAI

Concepts

  • Prompt: Texte d'entrée envoyé au modèle
  • Completion: Texte généré par le modèle
  • Tokens: Unité de texte traitée par le modèle (~3 à 5 caractères)
  • Tokenization: Processus de découpage du texte en tokens
  • Model: Modèle de langage utilisé pour générer du texte
  • TPM: Token per minute, nombre de tokens traités par minute par l'instance du modèle
  • RPM: Requêtes par minute, nombre de requêtes traitées par minute par l'instance du modèle
  • Quotas: Limites de consommation de ressources (TPM et RPM par modèle, par région et par souscription)
  • Content Filtering: Filtrage des résultats pour éviter les contenus inappropriés

Solutions

  • In-Model tenancy:
    • 1 instance partagée avec 1 déploiement de modèle partagé
    • Ne doit pas être utilisé dans un usage Fine Tuning
  • Per-Model tenancy:
    • 1 instance partagée avec 1 déploiement de modèle par tenant
    • Granularité plus fine sur la gestion des quotas par déploiement de modèle
  • Per-Service on ISV Side tenancy: Le service est provisionné et géré par l'ISV pour un tenant spécifique
  • Per-Service on Customer Side tenancy:
    • Le service est provisionné et géré par le client
    • Il est utilisé par l'ISV afin de bénéficier des quotas du client (quotas, content filtering, opt-out, modèles en preview, fine tuning...)
  • WARNING:
    • Les quotas sont établis par modèle, par région et par souscription
    • Un déploiement de modèle n'est pas entièrement stateless à cause du Content Safety (mais pas de "retrieving" de données possible)
    • Le plan PTU fourni une capacité fixe
 Topics  In-Model tenancy  Per-Model tenancy  Per-Service ISV tenancy  Per-Service Cust. tenancy
 Isolation  Medium  High  High  High
 PTU Ressources Usages  Best  Best  Worst  Worst
 PTU Cost Optim  Best  Best  Worst  Worst
 PTU Scalability  Shared capacity  Shared capacity  Dedicated capacity  Dedicated capacity
 no-PTU Perfs  Worst  Best  Best  Best
 no-PTU Scalability  Shared quotas  Dedicated quotas  Dedicated quotas  Dedicated quotas
 Dev & Ops complexity  High  Medium  Low  Medium

Concepts

  • Search :
    • Fournit la capacité en calcul et fonctionnalités pour la recherche
    • Comparable à une base de données.
  • Index :
    • Contient les données à rechercher.
    • Chaque index a son propre schéma défini par plusieurs champs personnalisables.
    • Similaires à une table dans une base de données.
  • Champs :
    • Définissent le schéma de chaque index
    • Comparables aux colonnes d'une table.
  • Documents :
    • Les données sont ajoutées sous forme de documents individuels
    • Doivent correspondres au schéma de l'index ciblé.
    • Analogues aux lignes (= record) d'une table de base de données.
  • Analyseurs :
    • Les analyzers définissent comment les données sont analysées et indexées.
    • Permettent de définir des règles de tokenisation, de normalisation et de filtrage.
  • Requêtes de recherche :
    • La recherche de données s'effectue à travers des requêtes de recherche en texte intégral
    • Une requête cible un index spécifique.
  • Filtres :
    • Les filtres permettent de restreindre les résultats de recherche.
    • Peuvent être appliqués sur des champs spécifiques ou sur l'ensemble de l'index.
  • Partitions :
    • Les index sont divisés en partitions pour gérer la distribution des données.
    • Ajoutées pour augmenter le stockage d'un service de recherche.
  • Réplicas :
    • Les réplicas sont des copies des partitions d'un index.
    • Sont répartis sur des nœuds de calcul pour améliorer la performance et la disponibilité.

Solutions

  • In-Index tenancy:
    • Ajout d'un champ dans un index pour désigner une valeur spécifique à chaque tenant potentiel.
    • Lors des requêtes ou modifications d'un index, l'application cliente spécifie la valeur appropriée pour ce champ, utilisant la capacité de filtrage de la solution de Search.
  • Per-index tenancy: 1 index par tenant
  • Per-instance tenancy: 1 service par tenant
  • Hybride: Mix Per-index et Per-service tenancy, en fonction de la taille du tenant
  • WARNING:
    • Il n'est pas possible de copier un index d'un service à un autre, il faut copier les données.
    • (à confirmer) Le scale up AI Search n'est pas supporté, il faut créer un nouveau service et copier les données.
    • La scalabilité est limitée par le stockage, le nombre d'index, le nombre de partitions et le nombre de réplicas.
 Topics  In-Index tenancy  Per-index tenancy  Per-instance tenancy  Hybrid tenancy
 Isolation  Low  Medium  High  Medium + High
 Ressources Usages  Best  Good  Worst  Best + Worst
 Cost Optim  Best  Good  Worst  Best + Worst
 Scalability  Shared resources  Shared resources  Dedicated resources  Shared + Dedi.
 Dev & Ops complexity  High  Medium  Low  Medium + Low