Intégrer Azure Machine Learning aux outils DevOps

Effectué

Imaginez que vous travaillez avec une équipe de science des données sur un projet de Machine Learning. Votre équipe peut choisir d’utiliser Azure DevOps ou GitHub pour planifier le travail, stocker le référentiel de code et automatiser les workflows.

Avec les deux ensembles d’outils, il existe généralement deux rôles :

  • Administrateur : configure l’environnement DevOps et gère les outils.
  • Utilisateur final : contribue au projet en collaboration avec le développement. Se connecte aux outils, mais a un accès restreint à la configuration de l’environnement DevOps.

L’administrateur est chargé de connecter Azure Machine Learning à Azure DevOps ou GitHub. Pour comprendre comment l’intégration avec Azure Machine Learning est configurée, examinons comment un administrateur connecterait en toute sécurité Azure DevOps et GitHub à Azure Machine Learning.

Configurer Azure DevOps

Pour connecter Azure DevOps à Azure Machine Learning, vous devez d’abord créer une organisation et un projet. Vous allez utiliser l’organisation pour regrouper et gérer des projets.

Commencez par vous connecter à Azure DevOps avec un compte Microsoft ou un compte GitHub.

Une fois connecté, vous pouvez créer une organisation.

New organization in Azure DevOps

Vous pouvez créer plusieurs projets au sein d’un organisation.

New project in Azure DevOps

Pour chaque projet, vous aurez accès à des outils tels que Boards, Repos et Pipelines pour appliquer des principes DevOps à votre projet.

Connecter Azure DevOps à Azure Machine Learning

Pour accéder en toute sécurité à votre espace de travail Azure Machine Learning à partir d’Azure DevOps, vous devez créer une connexion de service.

Lorsque vous créez une connexion de service, vous définissez la façon dont Azure DevOps sera authentifié pour la connexion à un autre service. Lorsque vous travaillez avec Azure Machine Learning, l’option recommandée consiste à laisser Azure DevOps créer un principal de service pour vous.

Un principal de service est créé en tant qu’identité dans Microsoft Entra ID. Au lieu d’utiliser les informations d’identification d’un membre de l’équipe pour se connecter à Azure Machine Learning, Azure DevOps utilise les informations d’identification du principal de service.

Lorsqu’un projet Azure DevOps est créé, vous pouvez vous connecter à un espace de travail Azure Machine Learning existant :

  1. Dans un projet, accédez à Paramètres du projet.
  2. Sélectionnez Connexions de service et créez-en une.
  3. Choisissez Azure Resource Manager.
  4. Choisissez de vous authentifier à l’aide d’un principal de service automatique.
  5. Définissez le niveau d’étendue sur l’Espace de travail Machine Learning et connectez-vous à un espace de travail Azure Machine Learning existant auquel vous avez accès.
  6. Accorder une autorisation d’accès à tous les pipelines.
  7. Donnez un nom à votre connexion de service. Vous utiliserez le nom lorsque vous devrez authentifier Azure DevOps pour gérer l’espace de travail Azure Machine Learning.

New service connection in Azure DevOps

Une fois la connexion de service créée, vous remarquerez qu’un principal de service nouvellement créé a l’accès Contributeur à votre espace de travail Azure Machine Learning.

Configurer GitHub

Pour connecter GitHub à Azure Machine Learning, vous devez d’abord créer un référentiel GitHub.

Commencez par vous connecter à GitHub.

Après vous être connecté à GitHub, vous pouvez choisir si vous, en tant qu’individu, souhaitez posséder le référentiel ou s’il doit être détenu par une organisation GitHub.

New repo in GitHub

Connectez GitHub à Azure Machine Learning

Pour utiliser GitHub pour automatiser les workflows Machine Learning, vous pouvez authentifier GitHub pour vous connecter à Azure Machine Learning. Pour configurer une connexion sécurisée, vous devez :

  • Créer un principal de service dans Azure.
  • Ajoutez les informations d’identification du principal de service aux secrets de votre référentiel.

Pour créer un principal de service, vous pouvez utiliser Azure CLI. Pour utiliser l’interface de ligne de commande, une option consiste à envoyer des commandes dans Azure Cloud Shell.

Vous pouvez créer un principal de service nommé github-aml-sp qui reçoit l’accès Contributeur à l’espace de travail Azure Machine Learning à l’aide de la commande suivante :

az ad sp create-for-rbac --name "github-aml-sp" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name> \
                            --sdk-auth

Une fois le principal de service créé, un texte JSON est renvoyé comme sortie qui inclut les informations d’identification que GitHub doit connecter à votre groupe de ressources Azure. Copiez le texte JSON et enregistrez-le pour l’étape suivante.

Pour stocker ces informations d’identification dans GitHub :

  1. Accédez aux Paramètres de votre référentiel.
  2. Accédez à la page Secrets.
  3. Sélectionnez Actions.
  4. Ajoutez un nouveau secret de référentiel.
  5. Saisir AZURE_CREDENTIALS comme nom.
  6. Collez le code JSON de sortie avec les informations d’identification et ajoutez le secret.

New secret in GitHub

Une fois le secret ajouté à GitHub, vous pouvez utiliser le secret AZURE_CREDENTIALS chaque fois que vous avez besoin que GitHub soit authentifié pour travailler avec votre espace de travail Azure Machine Learning.

Conseil

Approfondissez vos connaissances sur l’intégration de GitHub à Azure Machine Learning et découvrez comment utiliser GitHub Actions avec Azure Machine Learning. Le tutoriel utilise le secret AZURE_CREDENTIALS pour se connecter à Azure.