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
Search
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