Azure Well-Architected Framework pour HPC
Le plan de calcul haute performance (HPC) Azure décrit un processus pour rationaliser votre scénario, classer les efforts techniques par ordre de priorité et identifier les charges de travail. Pour de nombreuses charges de travail, il est important d’adhérer à un ensemble de principes d’architecture. Ces principaux guident le développement et l’optimisation des charges de travail. Les cinq constructions architecturales sont détaillées dans l’architecture Azure Well-Architected Framework. Ce guide fournit un résumé de la façon dont vous pouvez appliquer ces principes à la gestion de vos charges de travail de données.
Fiabilité
Rien n’est à l’abri d’une violation potentielle. Les pipelines de données ne font pas exception. De bonnes architectures sont conçues en tenant compte de la disponibilité et de la résilience. Les principales considérations sont la rapidité avec laquelle vous pouvez détecter les modifications et la rapidité à laquelle vous pouvez reprendre les opérations.
Votre environnement de données doit prendre en compte les architectures résilientes, les redondances inter-régions, le niveau de service, les contrats de niveau de service (SLA) et la prise en charge critique. L’environnement existant doit également inclure l’audit, la surveillance et les alertes à l’aide de la surveillance intégrée et d’une infrastructure de notification.
En plus de ces contrôles environnementaux, l’équipe chargée des charges de travail doit prendre en compte les éléments suivants :
- Effectuer plus de modifications d’architecture pour améliorer les contrats de niveau de service.
- Configuration de l’architecture propre à la charge de travail redondante.
- Établissement de processus de surveillance et de notification au-delà de ce qui est fourni par les équipes d’exploitation du cloud
Connectivité ExpressRoute hybride
Pour prendre en charge les charges de travail HPC stratégiques, utilisez une configuration de haute disponibilité Azure ExpressRoute. Même dans un site unique, la configuration de haute disponibilité dans laquelle vous disposez peut-être d’une connexion ExpressRoute redondante ne vous protège pas contre les temps d’arrêt de site de périphérie unique. Lorsque vous activez deux connexions sur deux sites, la redondance permet la continuité d’activité en cas de sinistre à l’emplacement principal. En utilisant la haute disponibilité ExpressRoute, vous pouvez garantir la connectivité à Azure si une panne ExpressRoute se produit dans une seule région.
Recommandations
- Activez deux circuits ExpressRoute dans deux emplacements de site de périphérie ExpressRoute différents pour bénéficier d’une redondance maximale.
- Cette configuration vous oblige à établir deux circuits ExpressRoute dans le Portail Azure pour les deux emplacements de site de périphérie ExpressRoute différents. Ensuite, vous connectez les deux circuits ExpressRoute au même réseau de hub virtuel dans Azure.
- Placez les deux emplacements de site de périphérie dans la même région Azure. C’est ce qu’offre la redondance en cas de dysfonctionnement de l’un des emplacements de peering. Les deux connexions ExpressRoute s’arrêtent dans le même réseau de hub virtuel dans Azure. Consultez la liste d’emplacements ExpressRoute et de partenaires de connectivité afin de planifier vos emplacements de peering ExpressRoute.
- Collaborez avec le fournisseur pour configurer le deuxième site ExpressRoute.
- Vérifiez que la deuxième connexion fonctionne en basculant le trafic vers le deuxième emplacement, qui est critique. Effectuez des exercices réguliers pour garantir la connectivité.
Pour plus d’informations sur une configuration ExpressRoute pour une résilience maximale, consultez Conception pour une récupération d’urgence avec ExpressRoute.
Sécurité
Appliquez les principes de sécurité à votre environnement HPC pour fournir des dispositifs de protection contre les attaques délibérées et les abus de vos données et systèmes précieux. Examinez la sécurisation des images du système d’exploitation utilisateur et de l’accès utilisateur, et suivez les instructions de sécurité Azure Batch et Azure CycleCloud. Pour plus d’informations, consultez Principes du pilier Sécurité.
Images du système d'exploitation
Place de marché Azure fournit des images HPC linux à utiliser dans le cluster. Ces images contiennent de nombreuses bibliothèques populaires, packages logiciels et outils de diagnostic tels que les suivants :
- Bibliothèques d’interface de passage de messages (MPI) basées sur InfiniBand.
- Mellanox OFED.
- Adresse IP préconfigurée sur InfiniBand.
- Runtimes de communication.
- Bibliothèques optimisées par Intel/AMD.
- Outils de diagnostic Azure HPC.
Vous pouvez commencer par les images, puis appliquer les stratégies de sécurité de votre organisation pour renforcer les images logicielles contre les vulnérabilités et les cybermenaces. Après validation, vous pouvez enregistrer la nouvelle image dans Azure Compute Gallery. Vous pouvez ensuite utiliser l’image pour créer des machines virtuelles dans Azure CycleCloud, Azure HPC et Batch.
Accès utilisateur
- Définir clairement les responsabilités et la séparation des tâches pour chaque fonction.
- Limiter l’accès selon les principes de sécurité de l’accès sélectif et des privilèges minimum.
- Attribuer des autorisations aux utilisateurs, groupes et applications à une certaine étendue via le contrôle d’accès en fonction du rôle Azure. Utiliser des rôles intégrés dans la mesure du possible.
- Empêcher la suppression ou la modification d’une ressource, d’un groupe de ressources ou d’un abonnement au moyen de verrous de gestion.
- Utiliser des identités managées pour accéder aux ressources dans Azure.
- Prendre en charge un annuaire d’entreprise unique. Assurer la synchronisation des répertoires cloud et locaux, sauf pour les comptes à impact critique.
- Configurer l’accès conditionnel Microsoft Entra. Appliquer et mesurer les principaux attributs de sécurité lors de l’authentification de tous les utilisateurs, en particulier pour les comptes à impact critique.
- Utiliser des méthodes sans mot de passe ou choisir des méthodes de mot de passe modernes.
- Bloquer les protocoles et les méthode d’authentification hérités.
Sécurité Azure Batch
Suivez les meilleures pratiques pour activer la sécurité pour Batch.
Sécurité d’Azure CycleCloud
Suivez les meilleures pratiques pour activer la sécurité pour Azure CycleCloud.
Optimisation des coûts
Pour tirer le meilleur parti de l’exécution de votre environnement dans Azure, vous devez hiérarchiser les exercices de gestion des coûts et de planification initiale. La gestion et la planification des coûts sont généralement les considérations les plus importantes pour le parcours de migration cloud réussi d’une organisation. Microsoft Cost Management vous donne les outils nécessaires pour anticiper, analyser et réduire vos dépenses afin d’optimiser votre investissement cloud. Pour plus d’informations sur les façons dont vous pouvez planifier et optimiser vos coûts cloud, consultez Meilleures pratiques de facturation de la gestion des coûts. Les considérations suivantes sont parmi les plus importantes dans l’optimisation des coûts.
Choix du système d’exploitation
Linux est le système d’exploitation dominant pour les charges de travail HPC. Linux est open source et paramétré pour que les performances utilisent l’infrastructure HPC. Les bibliothèques MPI et les pilotes Infiniband fonctionnent donc bien sous Linux et Windows. L’utilisation de machines virtuelles Linux sur Windows pour la configuration d’un cluster HPC permet certainement d’économiser des coûts. Toutefois, il se peut que certains utilisateurs aient une forte préférence pour un environnement Windows, en particulier lorsqu’ils effectuent les tâches de pré/post-traitement dans des charges de travail, telles que la dynamique des fluides informatiques. Dans ce cas, nous vous recommandons un serveur front-end Windows pour envoyer des travaux à un hôte Linux (nœud principal) qui peut utiliser les nœuds de calcul pour les simulations.
Mise à l’échelle automatique
La mise à l’échelle automatique vous permet de configurer et d’utiliser des machines virtuelles uniquement lorsque vous envoyez un travail ou lorsqu’un travail est actif. Une fois le travail terminé, les nœuds sont désactivés automatiquement. L’utilisation de la mise à l’échelle automatique vous permet d’ajuster les ressources de calcul utilisées par votre application, ce qui vous permet d’économiser du temps et de l’argent. Azure CycleCloud a la mise à l’échelle automatique activée dans ses planificateurs par défaut. La limite de temps par défaut pour désactiver les nœuds est de 15 minutes. Vous pouvez personnaliser la limite de temps. La limite de temps garantit que les utilisateurs ne paient que pour ce qu’ils utilisent. Batch fournit un mécanisme pour intégrer une formule de mise à l’échelle automatique avec un choix des paramètres. Pour plus d’informations, consultez Bien démarrer avec la mise à l’échelle automatique dans Azure.
Instances de paiement à l’utilisation par rapport aux instances réservées et instances spot
Azure propose différentes options tarifaires, à savoir le paiement à l’utilisation (PAYG), l’instance réservée avec des options de 1 ou 3 ans et les instances spot soumises à la capacité disponible dans le centre de données. Les instances de paiement à l’utilisation sont rentables, car elles répondent à une demande sporadique de capacité. Les instances réservées peuvent s’avérer rentables en cas de demande continue pour HPC ou si de nombreuses applications s’exécutent sur Azure HPC. Les deux conviennent parfaitement aux charges de travail prêtes pour la production. Les instances spot conviennent pour des tests et des expérimentations brefs ou si votre application a besoin de points de contrôle, par exemple, Genomics. Les instances spot sont soumises à la capacité disponible dans le centre de données. Le prix dépend des facteurs suivants : Vous pouvez supprimer des instances spot avec un préavis minimal.
Classification des données
Les charges de travail HPC bénéficient d’un stockage à débit élevé. Par exemple, utilisez Azure Managed Lustre, Azure Net App Files ou le système de fichiers parallèle BeeGFS. Ces services de stockage offrent des performances, mais peuvent avoir un coût. Il est important que vos données soient classifiées au préalable afin que seules les données spécifiques à l’application résident dans ces systèmes. Toutes les autres données peuvent résider dans des solutions de stockage à faible coût, tel qu’Azure Data Lake Storage ou Stockage Blob Azure.
En outre, il peut être utile de configurer des systèmes de stockage HPC à la demande afin de s’assurer que les données se synchronisent avec un service de stockage à faible coût comme Stockage Blob. Le stockage à la demande permet de garantir la conservation des données dans Stockage Blob lorsque le système de stockage haute performance est désactivé. Managed Lustre et Net App Files offrent un service de synchronisation.
Définir des budgets
Azure CycleCloud vous permet de définir des budgets par cluster et d’envoyer des notifications aux destinataires s’ils sont proches d’épuiser les budgets. Pour Batch, vous pouvez créer des budgets et des alertes de dépense pour vos pools Batch ou comptes Batch à partir du Portail Azure. Les budgets et alertes sont utiles pour notifier les parties prenantes des risques de dépassement, même si un retard les alertes de dépenses et un léger dépassement de budget peuvent se produire.
Excellence opérationnelle
Lorsque vos applications HPC s’exécutent en production, les déploiements doivent être fiables et prévisibles. Les déploiements fiables et prévisibles consistent à automatiser les charges de travail HPC avec des solutions IaC (Infrastructure as a Code). Vous devez également effectuer des vérifications d’intégrité des nœuds pour analyser et surveiller vos charges de travail HPC.
Pour plus d’informations sur les suggestions de déploiement, consultez Recommandations pour utiliser l’infrastructure as code. Pour plus d’informations sur les suggestions de surveillance, consultez Recommandations pour concevoir et créer un système de surveillance.
Infrastructure as code
HPC sur Azure déploie plusieurs ressources comme Azure CycleCloud, cluster HPC, stockage, nœuds de visualisation, serveurs de licences, et ainsi de suite. Pour automatiser le déploiement, nous vous recommandons d’utiliser des outils standard tels que Terraform, Ansible et Packer afin de simplifier le processus.
Contrôle d’intégrité des nœuds
Azure Managed Grafana est un service entièrement managé pour les solutions d’analyse et de supervision. Grafana Labs prend en charge Grafana et fournit des visualisations des données extensibles. Vous pouvez intégrer cette solution dans les charges de travail HPC à titre d’exemple. Pour plus d’informations, consultez Plateforme Azure HPC OnDemand.
Efficacité des performances
Assurez-vous que votre environnement HPC est en mesure de se mettre à l’échelle efficacement afin de répondre efficacement aux demandes qui lui sont imposées par les utilisateurs. Choisissez la plateforme appropriée pour vos applications HPC en fonction des recommandations du fournisseur d’applications. Investissez dans la planification de capacité si vous avez besoin d’une infrastructure supplémentaire pour répondre à la demande. Surveillez les performances de l’infrastructure HPC lorsque les utilisateurs utilisent votre système.
Pour plus d’informations, consultez les articles sur l’efficacité des performances.
Choisir la plateforme appropriée pour l’application HPC
Azure offre une gamme de plateformes pour machines virtuelles basées sur Intel, AMD CPU et NVIDIA, AMD GPU. Bien que la plupart des applications soient compatibles avec ce qui est disponible, certaines ne bénéficient que d’un type particulier d’UC ou de GPU. Avant de déployer l’infrastructure sur le cloud, il est important d’avoir une recommandation du fournisseur d’applications (ISV) pour comprendre les besoins suivants.
- Si l’application est liée à la mémoire, au processeur ou au GPU
- S’ils ont des recommandations sur n’importe quel type d’architecture processeur ou GPU pour les performances
- S’il existe un type de MPI et sa version dont leur application peut tirer parti
- S’il existe une recommandation sur le type de planificateur
- S’il existe une recommandation sur les IOPS/le débit des systèmes de fichiers parallèles
Investir dans la planification de la capacité
En fonction du type de l’application et de ses conditions de licence, vérifiez si la licence est définie pour utiliser un nombre spécifique de cœurs. Évaluez votre investissement pour permettre à la licence de répondre à HPC, puis planifiez votre capacité en conséquence.
Surveiller les performances de l’infrastructure
- Il est important de pouvoir contrôler la méthode avec laquelle les utilisateurs utilisent votre système, de suivre l’utilisation des ressources et généralement de surveiller l’intégrité et les performances de votre système. Vous pouvez utiliser ces informations comme aide au diagnostic pour détecter et corriger les problèmes, et aider à identifier des problèmes potentiels et les empêcher de se produire. Pour une vue d’ensemble des composants et services Azure disponibles permettant de surveiller vos ressources, voir Vue d’ensemble d’Azure Monitor.
- Monitor est un excellent outil pour déterminer s’il existe des goulots d’étranglement dans les instances de machine virtuelle et le stockage.
- La limitation du stockage peut ralentir considérablement l’application et affecter les performances. La limitation se produit lorsque les opérations de sortie d’entrée dans le stockage dépassent les limites de débit que vous avez définies. Les services de stockage Azure proposent des graphiques d’opérations de lecture et d’écriture pour surveiller s’il existe des problèmes liés à la limitation.
- Azure CycleCloud s’intègre aux services Azure tels que Monitor et les outils Microsoft Cost Management. Il prend également en charge la surveillance des services externes via son architecture enfichable. Pour plus d’informations, voir Surveillance.
- De plus, si vous utilisez Batch, Batch Explorer est un outil de client autonome gratuit et doté de nombreuses fonctionnalités qui permet de créer, de déboguer et de surveiller les applications Batch.