Décrire l’intégration et la mise à l’échelle automatique du planificateur Azure CycleCloud

Effectué

L’agilité du cloud permet aux entreprises de tirer pleinement parti des fonctionnalités hyperscale d’Azure tout en minimisant le coût d’exploitation associé à l’utilisation des ressources de calcul. La possibilité de mettre automatiquement à l’échelle la quantité de ressources en fonction du modèle d’utilisation est une caractéristique fondamentale de cette agilité. Dans le contexte d’Azure CycleCloud et de HPC, cela se traduit par l’implémentation d’une étroite corrélation entre la demande de ressources des travaux de cluster et le nombre de nœuds de calcul du cluster.

En général, l’orchestration de la mise à l’échelle des nœuds de cluster est faite par des planificateurs. Les planificateurs doivent pouvoir communiquer leurs demandes à la plateforme qui fournit les ressources de calcul. Azure CycleCloud permet d’implémenter cette fonctionnalité. Dans cette leçon, vous découvrez les principes de cette implémentation.

Quel est le rôle d’Azure CycleCloud dans la mise à l’échelle automatique de cluster ?

Azure CycleCloud facilite le déploiement des planificateurs dans Azure, lesquels, à leur tour, distribuent et gèrent les travaux en cours d’exécution sur les clusters composés de ressources Azure. Azure CycleCloud ne fonctionne pas comme un planificateur. Il sert plutôt d’intermédiaire entre les planificateurs et la plateforme sous-jacente. Azure CycleCloud simplifie également le développement de la fonctionnalité de mise à l’échelle automatique pour les planificateurs correspondants en fournissant une interface de programmation basée sur l’API REST et une bibliothèque de client basée sur Python.

Azure CycleCloud vous permet de mettre en corrélation le comportement de mise à l’échelle automatique des clusters managés et la longueur des files d’attente de travaux du cluster. Vous pouvez personnaliser ce comportement en définissant des paramètres de modèle qui contrôlent, par exemple, le délai avant l’arrêt des nœuds inactifs ou la fréquence des vérifications d’arrêt automatique.

Tous les modèles prédéfinis exposent les paramètres de mise à l’échelle automatique directement dans l’interface graphique d’Azure CycleCloud. Dans chaque cas, les paramètres permettent, entre autres, de spécifier les limites inférieure et supérieure de la plage de mise à l’échelle automatique, exprimées en nombre de cœurs de processeur. La limite supérieure vous permet de réduire le risque de frais imprévus. Vous pouvez atténuer ce risque en définissant des alertes budgétaires.

Si le seuil inférieur est défini sur 0, la création d’un cluster approvisionne uniquement le nœud principal du planificateur. Toutefois, quand le planificateur détecte des travaux en file d’attente, il lance le provisionnement des nœuds de calcul nécessaires pour exécuter la charge de travail correspondante, jusqu’à la limite que vous avez définie. Pour prendre en charge les travaux parallèles et faiblement couplés, où les tâches individuelles s’exécutent indépendamment les unes des autres, les travaux commencent à s’exécuter dès que le premier nœud est disponible. Pour les travaux fortement couplés, comme ceux qui utilisent la fonctionnalité d’interface de passage de messages (MPI), le temps d’attente est plus long selon l’étendue des dépendances internœuds. Si la file d’attente des travaux reste vide pendant une durée supérieure à la durée d’inactivité autorisée, les nœuds de calcul commencent à s’arrêter automatiquement et votre cluster est à nouveau constitué uniquement du nœud principal du planificateur.

Remarque

Les concepts sous-jacents décrits dans cette unité sont communs à tous les planificateurs. Toutefois, les détails de l’implémentation sont propres à chaque planificateur. Pour obtenir des informations détaillées sur chaque implémentation, consultez la documentation de chaque planificateur.

Comment intégrer les planificateurs à la mise à l’échelle automatique d’Azure CycleCloud

Les deux principaux composants qui implémentent l’intégration de la mise à l’échelle automatique Azure CycleCloud sont la bibliothèque de mise à l’échelle automatique Azure CycleCloud et la calculatrice à la demande.

Diagramme de l’architecture de haut niveau d’Azure CycleCloud.

La bibliothèque de mise à l’échelle automatique Azure CycleCloud est un projet open source, hébergé par GitHub, qui permet aux applications d’assistance Python de simplifier le développement de la mise à l’échelle automatique pour tous les planificateurs déployés sur Azure. Les applications d’assistance utilisent l’API REST Azure CycleCloud pour orchestrer le provisionnement des ressources Azure. Même si le projet utilise Python 3 et a de nombreuses dépendances Python, ses fonctionnalités principales reposent sur la bibliothèque de client Python d’Azure CycleCloud. La mise à l’échelle automatique s’intègre aux nœuds principaux du planificateur qui supervisent les files d’attente de travaux. La mise à l’échelle automatique augmente ou diminue le nombre de nœuds de calcul en interagissant avec l’API REST de mise à l’échelle automatique qui s’exécute sur le serveur d’applications Azure CycleCloud.

La calculatrice à la demande est chargée d’évaluer les besoins de ressources en fonction du nœud de calcul et des données de travail collectées par le planificateur. Cette évaluation prend en compte les contraintes de calcul et de réseau, par exemple, la taille maximale du cluster ou les limites associées à InfiniBand. Les besoins de ressources résultants se traduisent par la demande de provisionnement ou de déprovisionnement de machines virtuelles Azure avec une taille et une configuration particulières. La bibliothèque de mise à l’échelle automatique relaie ces demandes à l’API REST Azure CycleCloud, qui les remet ensuite à Azure Resource Manager via son orchestrateur.

Remarque

Même si l’intégration du planificateur prend en charge les charges de travail faiblement couplées ou parallèles pour lesquelles la gestion de la taille du cluster est la principale préoccupation, Azure CycleCloud prend également en charge les charges de travail fortement couplées, pour lesquelles la proximité du nœud et la latence du réseau sont essentielles.