Partager via


Données pour les charges de travail SaaS sur Azure

Traitez les données comme la ressource la plus précieuse de votre solution. En tant que fournisseur de logiciels indépendant (ISV), vous êtes responsable de la gestion des données de vos clients. Votre stratégie de conception de données et votre choix de magasin de données peuvent affecter considérablement vos clients.

Cet article fournit des conseils sur la façon de garantir l’intégrité et la confidentialité des données pour vos clients tout en répondant aux exigences de performances de l’entreprise. Il met en évidence les principales considérations à prendre en compte pour vous aider à atteindre ces objectifs efficacement.

Sélectionner un magasin de données

Le magasin de données dans une solution SaaS (Software as a Service) affecte son architecture, ses performances, sa fiabilité et sa complexité transactionnelle. Comparez les fonctionnalités des services managés Azure avec des offres non-Microsoft similaires. Dans certaines situations, vous pouvez également envisager d’exécuter des produits open source sur des machines virtuelles.

Considérations sur la conception

  • Différencier vos opérations transactionnelles et analytiques. Les magasins de données transactionnels sont conçus pour prendre en charge vos applications et les magasins de données analytiques sont utilisés pour la création de rapports et les tâches telles que le Machine Learning. Ces magasins sont créés avec des produits spécialisés et ont des besoins uniques en matière de performances, de modèles d’accès, de schémas et de cas d’usage.

    Ce guide se concentre sur les magasins de données transactionnels.

  • Comprendre vos besoins en données. Estimer le volume, la fréquence à laquelle il peut changer et le type de données que vous devez stocker.

    Attendez-vous à ce que les données augmentent considérablement au fil du temps. Pour les solutions SaaS, la croissance se produit dans plusieurs dimensions. Prévoyez des augmentations du volume et des types de données à mesure que le nombre de clients augmente. Veillez à planifier cette croissance et à investir dans des technologies qui peuvent la soutenir.

    Choisissez entre une plateforme de données relationnelles ou non relationnelles en fonction de la nature de vos données. Pour de nombreuses charges de travail transactionnelles, une base de données relationnelle est une bonne option pour modéliser les entités d’application en tant que tables discrètes. Cette approche permet aux requêtes de fonctionner sur le modèle de données relationnelles. Sinon, si vos données correspondent naturellement à un modèle de document ou suivent une structure de graphique, une approche non relationnelle peut être plus appropriée.

    Pour plus d’informations, consultez les plateformes de données SQL et NoSQL.

  • Réduisez les types de magasins de données. Le stockage de différents types de données dans plusieurs magasins de données distincts peut être bénéfique pour les organisations matures qui ont une expertise sur différentes plateformes de données. Toutefois, cette approche introduit souvent une complexité inutile pour les start-ups et les petites organisations. Il est plus efficace de se concentrer sur un ou un petit nombre de magasins de données.

    Si vous n’avez pas de justification métier pour l’utilisation de plusieurs magasins de données, concentrez-vous sur un ou un petit nombre de magasins de données.

  • Utilisez ce que vous savez et investissez-y. Si votre équipe a déjà une expertise avec un magasin de données spécifique, il est souvent préférable d’utiliser ce magasin de données au lieu d’investir dans l’apprentissage de nouvelles compétences. Les magasins de données et les plateformes sont complexes et les décisions de conception peuvent être difficiles à inverser.

    Toutefois, gardez à l’esprit la croissance potentielle. Si votre magasin de données actuel ne répond plus à vos besoins, choisissez un magasin de données qui peut améliorer les performances, la résilience, la sécurité et l’efficacité opérationnelle de votre solution. Il devrait également aider votre équipe à approfondir son expertise.

Recommandations de conception

Recommandation Avantage
Séparez les magasins de données transactionnels pour les opérations quotidiennes des magasins de données analytiques et de création de rapports. Le mélange de l’intention de vos magasins de données peut entraîner une complexité inutile. La segmentation des données améliore l’efficacité opérationnelle et optimise l’utilisation de chaque magasin de données.
Choisissez entre une structure de données relationnelle ou non relationnelle en fonction de vos besoins. Commencez par un ou un petit nombre de magasins de données.

Hiérarchiser les magasins de données managés. Les choix courants incluent Azure Cosmos DB, Azure SQL, MySQL, MongoDB et PostgreSQL.
Cette approche permet de réduire la complexité et de vous assurer que vous utilisez le bon produit pour optimiser l’efficacité. Les magasins de données managés offrent une flexibilité en matière de gestion des ressources et des coûts de manière élastique et de mise à l’échelle en fonction de vos besoins. L’utilisation de magasins de données managés crée moins de charge de gestion que le déploiement de votre propre magasin de données sur votre propre infrastructure.
Investissez dans l’apprentissage de votre technologie choisie. Équipez votre équipe pour gérer les exigences de mise à l’échelle élevées et d’autres complexités des solutions SaaS. Découvrez les outils que vous utilisez et leur écosystème plus large afin de pouvoir utiliser efficacement votre plateforme de données à mesure que vous effectuez une mise à l’échelle.
Adoptez la flexibilité de votre conception de données. À mesure que votre solution SaaS augmente ou que vos besoins changent, vous pouvez vous adapter en ajoutant ou en modifiant des magasins de données. Cette flexibilité vous permet de commencer par un magasin de données et d’évoluer au fil du temps pour répondre à vos besoins.

Modèle de location et stratégie de base de données

Un aspect clé de la conception des données est la décision d’héberger des ressources pour le compte de vos clients ou d’héberger des ressources dans leur environnement. La plupart des fournisseurs SaaS hébergent des ressources pour tous les clients, ce qui offre une flexibilité dans la gestion des bases de données. Si vous hébergez des ressources dans l’environnement du client, réfléchissez à la façon dont vous accédez à ces ressources et gérez ces ressources.

Considérations sur la conception

  • Planifiez la segmentation de votre base de données. Dans les solutions SaaS métier à entreprise (B2B), nous vous recommandons de créer des bases de données dédiées pour chaque client. Cette approche améliore la sécurité des données en conservant une isolation stricte entre les clients, ce qui réduit le risque de mélange de données et prend en charge les clés de chiffrement gérées par le client. Il vous aide également à répondre aux exigences de conformité réglementaire pour certains clients.

    La séparation des données client en bases de données individuelles peut améliorer les performances en réduisant les problèmes de voisin bruyants. Certains magasins de données managés incluent des contrôles d’allocation de ressources pour atténuer ces problèmes, fournir des économies et incorporer des outils pour gérer plusieurs bases de données à grande échelle.

    Dans certains cas, il est approprié de stocker les données de plusieurs clients dans un magasin de données unique. Par exemple, dans les solutions B2C (Business-to-Consumer), vous pouvez enregistrer des données dans un magasin unique avec le partitionnement logique basé sur l’ID client. Dans les solutions B2B qui partagent des composants, vous pouvez utiliser un magasin de données unique pour des parties spécifiques, telles qu’un magasin d’événements, tout en vous assurant d’inclure des ID client sur chaque événement.

  • Colocaliser des magasins de données avec des composants d’application. Si vous hébergez des ressources pour le compte du client, déployez dans la même région Azure pour éviter les frais de bande passante de sortie et la latence. Lorsque vous hébergez des applications et des magasins de données dans l’environnement d’un client, déployez-les ensemble dans le même environnement pour éviter les complexités inter-environnements.

  • Normaliser la gestion des magasins de données autant que pratique. L’uniformité est essentielle à la gestion des données entre les clients. À mesure que votre entreprise augmente, les différences entre les clients augmentent le risque et la complexité. Ces différences peuvent également rendre les pannes de production plus probables et la résolution des problèmes plus difficiles.

    Évitez les modifications ponctuelles de votre gestion pour prendre en charge des clients individuels. Par exemple, pour prendre en charge les métadonnées gérées par le client, évitez les modifications de schéma, telles que l’ajout de colonnes supplémentaires à votre base de données. Au lieu de cela, créez des fonctionnalités permettant aux clients d’ajouter leurs propres métadonnées. De même, si vous devez fournir différents niveaux de performances de base de données pour différents clients, créez un processus unique que vous pouvez utiliser pour appliquer différentes configurations à différents niveaux de clients.

Pour plus d’informations sur la façon dont votre modèle de location affecte votre stratégie de données, consultez .

Recommandations de conception

Recommandation Avantage
Déterminez s’il faut partager des bases de données entre plusieurs clients ou fournir une plateforme de données partagée.

Déployez une base de données unique pour les données de chaque client, le cas échéant. Assouplissez cette stratégie si l’isolation stricte n’est pas requise, comme dans les solutions B2C.
Cette approche réduit les problèmes de voisins bruyants et peut prendre en charge les exigences de conformité pour certains clients.
Déployez des applications et leurs bases de données dans la même région. Cette approche optimise les coûts de bande passante et la latence encourus par l’accès à une base de données interrégion.
Concevez une approche standardisée pour stocker des données ou des métadonnées définies par le client. Évitez de modifier le schéma pour des clients individuels ou de provoquer des environnements clients différents. Cette approche vous permet d’éviter le fardeau opérationnel de la gestion des incohérences entre les bases de données pour chaque client.
Planifiez les opérations de maintenance de routine dans l’environnement déployé par le client.

Planifiez l’accès à la base de données pour les mises à jour, les modifications de schéma, la maintenance et d’autres opérations.
Cette approche proactive réduit les problèmes liés au manque de maintenance et réduit le risque de temps d’arrêt et de performances.

Planifier la capacité

La planification de la capacité fait référence à la gestion de l’utilisation des ressources, avec un focus sur le processeur, la mémoire, le stockage et les opérations de disque, telles que les opérations d’entrée et de sortie par seconde (IOPS). Certains magasins de données combinent ces ressources en une métrique simple de consommation de ressources synthétiques, comme une unité de débit de base de données (DTU) dans Azure SQL ou une unité de requête (RU) dans Azure Cosmos DB. Les magasins de données managés offrent une flexibilité dans la gestion des ressources, ce qui permet des modifications au fil du temps. Il est essentiel d’établir un plan initial et d’itérer à mesure que vos besoins évoluent.

Considérations sur la conception

  • Comprendre vos besoins en allocation de ressources. Différents clients dans les solutions SaaS peuvent avoir différents besoins en ressources. Les clients plus petits peuvent nécessiter des ressources minimales et des clients plus volumineux peuvent avoir besoin de plus. Les clients plus volumineux paient souvent plus, ce qui justifie une allocation de ressources plus élevée. En utilisant des bases de données distinctes pour chaque client, vous pouvez ajuster l’allocation de ressources en fonction de leur taille et de leurs besoins.

  • Comprendre les différents modèles de capacité proposés par les plateformes de données. Les plateformes de données basées sur le cloud fournissent souvent plusieurs modèles de ressources. Par exemple, certains services Azure comme Azure Cosmos DB fournissent des modèles provisionnés, basés sur le débit et des modèles serverless. Azure SQL Database fournit également des pools élastiques.

    Le débit provisionné nécessite une allocation de ressources prédéterminée, à partir d’une base de données unique ou d’un groupe de bases de données. Les pools élastiques permettent le partage de ressources entre plusieurs bases de données. Les pools élastiques sont couramment utilisés dans les solutions SaaS.

    Même si le débit provisionné nécessite que vous allouiez des ressources à l’avance, les services comme Azure Cosmos DB fournissent un débit de mise à l’échelle automatique. Vous pouvez définir des règles pour ajouter ou supprimer dynamiquement des ressources en fonction des déclencheurs spécifiés.

    Les modèles de ressources serverless sont automatiquement mis à l’échelle en fonction de la demande. Cette fonctionnalité constitue un bon point de départ si vous ne pouvez pas prédire vos besoins en capacité à l’avance. Toutefois, ils peuvent prendre en charge moins de fonctionnalités et devenir inefficaces à mesure que vous augmentez. Les modèles serverless sont disponibles dans Azure SQL Database et Azure Cosmos DB.

Recommandations de conception

Recommandation Avantage
Modélisez vos exigences de base de données pour chaque client. Déterminez si vous devez avoir de nombreuses petites bases de données, moins de bases de données volumineuses ou un mélange des deux.

Utilisez un exercice de dimensionnement de t-shirt pour classer les clients en petits, moyens et grands compartiments.
Cette approche fournit une estimation approximative des ressources nécessaires par client et vous aide à mapper les clients à votre modèle de facturation.
Segmentez les pools de ressources en fonction de la taille des bases de données client qui les utilisent.

Utilisez la capacité provisionnée à votre avantage. Par exemple, vous pouvez créer un pool élastique SQL partagé pour des clients plus petits, un pool distinct pour les clients moyens et des ressources dédiées pour les grands clients.
En segmentant les pools de ressources en fonction de la taille de base de données de vos clients, vous pouvez optimiser l’allocation des ressources et l’efficacité des coûts.
Tirez parti des fonctionnalités de mise à l’échelle intégrées que les services managés fournissent. Vous pouvez décharger les responsabilités de mise à l’échelle sur la plateforme. Les fonctionnalités telles que les pools élastiques et la mise à l’échelle automatique peuvent vous aider à optimiser l’utilisation des ressources.
Passez régulièrement en revue les magasins de données serverless pour vous assurer qu’ils continuent de répondre à vos besoins. Vous pouvez vous assurer que le magasin de données reste efficace avec vos besoins en constante évolution. Optimisez les performances et l’efficacité des coûts à mesure que vos besoins changent.

Haute disponibilité et récupération d’urgence

Les clients des solutions SaaS ont souvent des attentes élevées en matière de haute disponibilité (HAUTE disponibilité) et de récupération d’urgence (DR). Si vos clients opèrent dans des secteurs réglementés ou s’appuient sur votre solution pour les opérations quotidiennes, leurs exigences peuvent être encore plus strictes.

La haute disponibilité et la récupération d’urgence ne sont pas des solutions unidimensionnelles et dépendent de différents facteurs. Comprenez clairement les options disponibles applicables à vos clients et aux exigences de vos clients pour prendre des décisions éclairées sur l’atténuation des différents risques.

Compromis : Fiabilité, coût et performances : la résilience pour les services de données nécessite souvent de distribuer des réplicas ou des copies de vos données dans une zone géographique plus large pour atténuer les risques. Cependant, il y a des compromis. Plus la distance de déplacement des données est longue, plus vous disposez de protection contre les défaillances localisées. Toutefois, la copie de données sur des distances plus longues augmente la latence et coûte souvent plus cher. De nombreux magasins de données managés fournissent une réplication automatisée des données, mais ils peuvent imposer des limites aux types de réplication que vous pouvez effectuer sur différentes distances pour maintenir les performances.

Considérations sur la conception

  • Quantifier la résilience. Mesurez les exigences de résilience en utilisant des objectifs de niveau de service (SLA), qui incluent des métriques telles que le temps d’activité, le temps de récupération et le point de récupération. Ces métriques sont pilotées par vos besoins métier et ceux de vos clients, qui peuvent avoir des besoins variables. Si vous stockez de grandes quantités de données pour le compte de vos clients, votre solution de haute disponibilité et de récupération d’urgence doit peut-être être plus complexe pour répondre aux exigences strictes.

    Pour plus d’informations sur les métriques de résilience, consultez recommandations RE :04 pour définir des cibles de fiabilité.

  • Utiliser les fonctionnalités de la plateforme. Azure offre des fonctionnalités de résilience au sein d’un centre de données, au sein d’une région à l’aide de zones de disponibilité et dans une zone géographique plus large à l’aide de plusieurs régions. Combinez des stratégies telles que les zones de disponibilité, la sauvegarde interrégion et les déploiements multirégions pour atteindre le niveau de résilience approprié pour votre solution. Pour connaître les exigences de résilience élevées, envisagez une architecture multirégion, active-passive avec la réplication asynchrone des données entre les régions. Cette approche peut entraîner une perte de données lors d’une panne catastrophique.

    Compromis : Les conceptions multirégions et actives avec réplication sont les plus résilientes, mais sont complexes à créer et à tester. Pour la plupart des solutions actives, vous devez concevoir une approche de résolution des conflits qui tient compte des retards dans la synchronisation des données. La plupart des solutions n’ont pas besoin de ce degré de résilience.

    Reportez-vous aux recommandations RE :05 pour l’utilisation des zones de disponibilité et des régions.

  • Utilisez des tampons de déploiement pour isoler le rayon d’explosion des composants. Le modèle d’empreintes de déploiement est largement utilisé dans les solutions SaaS, car il offre des avantages pour le déploiement, la gestion, les performances et la résilience. Par exemple, le déploiement d’un tampon dans le États-Unis et d’un autre tampon en Europe garantit que les clients d’une région sont isolés des pannes dans l’autre région et peuvent fonctionner indépendamment.

Recommandations de conception

Recommandation Avantage
Concentrez-vous sur les exigences de résilience tout en réfléchissant aux exigences globales en matière de données pour vos clients et vos clients. En mettant en place vos décisions de conception dans ces exigences, vous pouvez vous assurer que vous effectuez les compromis appropriés et éviter les sous-ingénieries pour vos besoins.
Reflètent différents niveaux de résilience dans votre modèle de facturation.

Définissez les attentes avec vos clients. Aucune perte de données pendant des pannes catastrophiques ou une durée de fonctionnement de 100 % peut être irréaliste.
Les modèles de facturation peuvent aider vos clients à comprendre la résilience garantie pour laquelle ils s’inscrivent. Par exemple, avec un niveau inférieur, les clients obtiennent des garanties minimales. Dans un niveau supérieur, les clients bénéficient d’une plus grande résilience, car vous pouvez vous permettre de répliquer leurs ressources dans plusieurs régions.
Utilisez des zones de disponibilité Azure pour les solutions de production. Si possible, utilisez des magasins de données redondants interzone. Les zones de disponibilité offrent une résilience contre les pannes de centre de données, sans augmenter considérablement le coût, la latence ou la complexité de votre solution.
Conservez les sauvegardes de vos magasins de données dans un format globalement redondant à l’aide de la réplication interrégion, le cas échéant. Les sauvegardes interrégions de données ajoutent un niveau de résilience supplémentaire.
Utilisez des tampons de déploiement pour créer des instances distinctes de votre solution dans des emplacements géographiquement distribués. En utilisant des tampons de déploiement pour créer des instances distinctes de votre solution dans des emplacements géographiquement distribués, vous pouvez augmenter la résilience et offrir davantage d’avantages, comme la gestion des opérations plus facile.
Évaluez si vous avez besoin d’un déploiement multirégion et si vous avez besoin d’une conception active-active pour répondre aux exigences.

Considérez les compromis qui sont impliqués. Les composants sans état sont plus faciles à répliquer que les composants avec état comme un magasin de données.
La propagation de votre solution ou de tampons entre les régions offre des niveaux de résilience plus élevés en répliquant les données entre les régions.

Sécurité et conformité

Vous êtes responsable de la confidentialité et de l’intégrité des données de vos clients. Lorsque vous créez une base de référence de sécurité, tenez compte de vos exigences et promesses de sécurité. Prévoyez de répondre aux besoins de conformité de vos clients, y compris la rétention des données.

Considérations sur la conception

  • Mise en réseau : déterminez qui accède à votre magasin de données. En règle générale, seule votre application a besoin d’une communication directe. Par conséquent, configurez-la pour la mise en réseau privée uniquement.

  • Identité : réfléchissez à la façon dont vos magasins de données seront accessibles. De nombreuses solutions SaaS utilisent une identité d’application unique pour tous les magasins de données, avec la couche Application appliquant l’isolation et l’autorisation. Pour la sécurité au niveau des lignes ou l’autorisation au niveau de la base de données, vous devrez peut-être propager l’identité de l’utilisateur au magasin de données, qui est complexe dans un environnement multilocataire.

  • Conservation des données : planifiez vos stratégies de rétention des données à l’avance. La maintenance d’un plus grand nombre de données augmente les coûts de stockage et la complexité de la gestion. Par exemple, de grandes quantités de données dans une base de données transactionnelle peuvent compliquer l’interrogation et la troncation des processus.

    Pour la conservation des données à long terme, comme pour des analyses ultérieures ou de conformité, envisagez de déplacer des données vers un magasin adapté à la conservation à long terme.

Recommandations de conception

Recommandation Avantage
Configurez vos magasins de données pour utiliser des points de terminaison privés et désactivez les points de terminaison publics. Cette approche améliore la sécurité en limitant l’accès à votre réseau interne. En limitant l’accès, vous pouvez réduire le risque d’accès non autorisé et de violations de données potentielles.
Utilisez les identités managées et l’ID Microsoft Entra pour l’authentification. Évitez l’utilisation de clés ou d’informations d’identification de base de données. Les identités managées éliminent la nécessité de clés de base de données ou d’informations d’identification, ce qui réduit le risque de vol d’informations d’identification et simplifie la gestion des accès.
Lorsque vous travaillez avec des magasins de données partagés, assurez-vous que l’application étend toutes les requêtes à un seul locataire en incluant l’identificateur de locataire dans WHERE les clauses. Ce processus permet d’atténuer le risque de fuite ou d’emprunt d’identité entre locataires.
Planifiez votre stratégie de rétention des données en fonction des besoins de conformité et d’entreprise. Évitez de conserver les données historiques inutiles. Pour la rétention à long terme, déplacez les données des magasins principaux vers le stockage d’archivage. En évitant la rétention inutile, vous conservez une surface d’exposition plus petite.
Utilisez des fonctionnalités de magasin de données pour prendre en charge vos besoins en matière de cycle de vie des données.

Dans Azure Cosmos DB, définissez la durée de vie des documents. Dans Azure SQL, implémentez une stratégie de fenêtre glissante à l’aide du partitionnement de tables pour réduire l’impact du processus d’archivage sur la base de données.
Ces approches garantissent une gestion efficace du cycle de vie des données, optimisent le stockage en archivant ou supprimant des données obsolètes, et réduisent l’intervention manuelle si possible.

Opérations

Les solutions SaaS incluent souvent un grand nombre de bases de données ou d’autres magasins. Il est important de planifier la maintenance de routine sur votre flotte et d’explorer les options d’automatisation pour gérer ces tâches efficacement.

Considérations sur la conception

  • Comprendre les fonctionnalités de votre équipe. Si vous n’avez pas de grandes équipes d’administrateurs de base de données qui peuvent effectuer des analyses détaillées sur les bases de données des clients individuels, envisagez d’effectuer des opérations à grande échelle et d’utiliser des outils de plateforme dans la mesure du possible.

  • Planifiez vos procédures de maintenance régulières. Répertoriez les opérations de maintenance régulières nécessaires et leur fréquence. Les opérations spécifiques varient en fonction du type de magasin de données que vous utilisez. Par exemple :

    • Surveillez la quantité totale de données et de données situées dans des entités spécifiques, telles que des tables importantes.
    • Régénérer des index.
    • Créez ou supprimez des index en fonction de la modification des modèles de requête.
    • Rééquilibrer les partitions.

    Explorez les fonctionnalités de plateforme qui peuvent vous aider à effectuer une maintenance régulière et à rechercher de nouveaux problèmes de manière proactive. Par exemple, SQL Database Advisor dans Azure SQL Database surveille les problèmes.

  • Conception pour l’automatisation. Les opérations automatisées sont essentielles pour qu’une solution SaaS soit mise à l’échelle efficacement. Identifiez des tâches régulières et occasionnelles et créez des playbooks ou des scripts d’automatisation pour eux. Pour les tâches que vous ne pouvez pas automatiser immédiatement, documentez soigneusement les processus pour garantir la cohérence et la clarté.

Recommandations de conception

Recommandation Avantage
Efforcez-vous de garantir la cohérence entre les magasins de données des clients lorsque cela est possible.

Si un client nécessite des adaptations spéciales, intégrez-les à un processus global plutôt que de personnaliser la configuration pour ce client. Par exemple, utilisez le même schéma pour chaque base de données et utilisez les mêmes processus pour déployer et gérer vos ressources.
La cohérence facilite la modification à grande échelle et réduit le risque de problèmes accidentels pendant les déploiements ou les procédures de maintenance.
Déployez soigneusement des ressources limitées et recherchez des opportunités pour simplifier les opérations. Vous pouvez éviter de petites efficacités et avoir une meilleure utilisation des ressources et des performances globales.
Créer une automatisation pour les tâches répétitives. Choisissez d’acheter des outils automatisés au lieu de créer une solution personnalisée.

Explorez les options que fournissent la plateforme et les fournisseurs non-Microsoft.
En investissant dans l’automatisation de la qualité, vous pouvez utiliser à plusieurs reprises ces ressources et réduire les tâches manuelles qui sont souvent sujettes à des erreurs. Les outils automatisés sont utiles si vous n’êtes pas un expert dans le magasin de données que vous utilisez ou si vous n’êtes pas sûr des tâches de maintenance nécessaires.
Déployez attentivement la capacité d’administration de base de données de votre équipe. Réservez des administrateurs de base de données humaines pour les activités les plus impactantes, comme traiter les clients volumineux ou créer une automatisation qui peut être mise à l’échelle entre de nombreux clients. En hiérarchisant les fonctions précieuses, vous pouvez optimiser l’efficacité.

Accès client aux données

Certains de vos clients peuvent demander un accès direct à leurs données pour des rapports ou des analyses personnalisés. Réfléchissez soigneusement à la façon dont les clients peuvent accéder aux données de votre solution et s’ils doivent accorder ces demandes ou fournir d’autres méthodes pour répondre à leurs besoins.

Considérations sur la conception

  • Justifier les raisons de l’accès direct. Comprenez pourquoi les clients ont besoin d’accéder aux données brutes en obtenant des informations sur leur problème métier. Collaborez pour trouver une solution répondant à leurs besoins sans introduire de risques pour votre plateforme.

    Trouvez d’autres façons de répondre aux exigences plutôt que d’accorder un accès direct. Si l’accès est nécessaire à des fins de création de rapports, les approches de la couche Application sont préférables. Par exemple, vous pouvez créer des rapports pour eux à l’aide de Microsoft Power BI, ou vous pouvez exporter un sous-ensemble de vos données vers un fichier que vous leur fournissez. Vous pouvez également créer des API qu’elles peuvent utiliser pour accéder à vos données.

  • Évaluez les implications en matière de sécurité et d’isolation. La fourniture d’un accès direct à un magasin de données pose des risques de sécurité importants. Évitez d’exposer des ressources internes à des parties externes, y compris les clients. Dans un environnement SaaS qui a de nombreux clients partageant une solution, les risques sont encore plus élevés, car l’environnement peut être exploité pour accéder aux données d’autres clients.

    Envisagez de fournir aux clients l’accès à leurs données de manière sécurisée et isolée qui n’affecte pas votre système de production et vous permet d’apporter des modifications de conception de base de données internes sans interrompre les requêtes des clients.

  • Considérez l’effet sur les performances. L’autorisation d’un accès direct à votre magasin de données transactionnel peut entraîner des problèmes de performances pour votre application principale. Par exemple, un client peut exécuter une requête gourmande en ressources qui interrompt la fonctionnalité de l’application.

Recommandations de conception

Recommandation Avantage
Évitez d’accorder un accès direct à vos magasins de données.

Si vous devez accorder un accès direct, fournissez l’accès à un réplica en lecture seule, si la plateforme de données la prend en charge.
Les approches de la couche Application vous permettent de contrôler la façon dont les clients utilisent vos données. S’il n’est pas possible de créer des constructions de la couche Application, l’accès via des réplicas en lecture seule réduit la contrainte des requêtes du client sur vos opérations.
Évitez d’exposer les détails de l’implémentation interne. En contrôlant l’accès à vos structures de données, vous empêchez les clients d’effectuer des hypothèses sur les fonctionnalités de votre schéma de base de données. Cette flexibilité vous permet d’évoluer et d’optimiser votre structure de base de données au fil du temps sans les contraintes des outils intégrés au client ou des hypothèses inexactes.

Ressources supplémentaires

L’architecture multilocataire est une méthodologie métier de base pour la conception de charges de travail SaaS. Ces articles fournissent plus d’informations sur les considérations relatives à la conception des données :

Étape suivante

Découvrez les considérations relatives à DevOps pour les charges de travail SaaS, notamment la gestion efficace du cycle de vie des clients et les pratiques de déploiement sécurisées.