Bienvenue sur notre blog !

MCNEXT devient Infeeny en 2017 !

Retrouvez ici tous les Posts (+ de 600) des consultants et experts du groupe Infeeny (330 collaborateurs, pure player Microsoft).

Vous voulez en savoir plus sur Infeeny ou vous souhaitez nous rejoindre ?
Consultez notre site infeeny.com

Vous pouvez aussi nous suivre sur :
Twitter : @Infeeny_fr – https://twitter.com/Infeeny_fr
LinkedIn : https://www.linkedin.com/company/infeeny
– et vous abonner à notre chaîne YouTube Infeeny !

[Power BI][Azure Analysis Service] Comment importer un modele Power BI dans Azure Analysis Services

De nombreux concepteur de rapports Power BI se sont souvent posé la question :

Comment industrialiser mon rapport et partager mes données avec mes collègues de bureau de manière automatisée.

Mon model est bon, la direction m’a validé les chiffres il ne reste plus qu’a le mettre en production malheureusement il est disponible que dans mon Power BI que j’ai créé, mes collègues ne peuvent pas utiliser ma base pour venir créer leurs rapports ni même agrémenté mes formules DAX avec d’autres formules sans devoir créer de nouveaux modèles.

Cette réflexion reviens à dire : Comment intégrer mon modele Power BI dans une instance Analysis Services en mode Tabulaire de manière automatique.

Réponse : Il existe 2 méthodes :

Méthode 1 : Je crée un nouveau projet Visual studio et je développe ce qui a été réalisé dans Power BI

Méthode 2 : J’importe depuis le portail Azure les données depuis mon fichier Power BI et l’outil va créer automatiquement le modèle tabulaire présent dans le fichier Power BI Desktop.

Dans ce blog je vais vous présenter brièvement la méthode N°2 qui permet d’uploader rapidement un modèle tabulaire issus de Power BI desktop

1

 

Cette option est en mode préview actuellement sur le portail, elle n’est pas encore complètement achevé et donc elle est susceptible de comporter des erreurs.

On sélectionne un fichier Power BI Destktop (on voit que nous pouvons importer des modèles depuis un Datawarehouse ou une SQL database également)

2

 

Pour notre test nous avons sélectionné le fichier pbix de notre choix :

3

 

Il nous importe le modele avec les formules en DAX qui sont incorporé dans notre projet Power BI desktop:

4.jpg

Il ne reste plus qu’a se connecter a ce modèle depuis notre instance Azure Analysis Services.

Les formules en DAX et le code M de transformation des données étant repris  lors de cet import.

Julien PIERRE

Consultant MSBI

Customiser VSTS et le synchroniser avec Project 2016

Objectif

Les projets d’équipe de VSTS offrent la possibilité de gérer les item du product backlog. Depuis l’interface web de VSTS on peut :

  • Définir des Epics, des Features, des Product Backlog Items
  • Découper les Product Backlog Items en Task
  • Assigner les différentes Tasks

Ces différents items sont personnalisables en fonction de vos besoins de suivi de projet.Il est aussi possible de les  gérer du portfolio du projet depuis Project 2016 en synchronisant ce dernier avec le projet d’équipe VSTS personnalisé.

Prérequis

  • Avoir un projet VSTS avec un backlog rempli
    • Si ce n’est pas le cas vous pouvez créer un projet rapidement en suivant cet article
  • Installer Project 2016

Au sein de cet article nous utilisons le projet ArticleSyncProject généré par l’utilitaire VSTS Demo Data generator en utilisant le template MyHealthClinic.

Lier VSTS à Project 2016

Depuis Project 2016, on peut créer un lien bidirectionnel avec un projet VSTS pour synchroniser les données.

Etape1

Il est nécessaire de créer une query pour sélectionner les items à synchroniser avec Project 2016.

Dans notre cadre , nous allons créer une query à partir des items présents dans le sprint2.

CreateQuery1

  • Cliquer sur « Create query »
  • Saisir un nom à la query
  • Sélectionner un répertoire

CreateQuery2

Etape 2

Nous pouvons maintenant utiliser Project 2016.

  • Créer un nouveau projet Vide

Project 1

Etape 3

Se connecter au projet d’équipe ArticleSyncProject

  • Aller dans l’onglet Equipe du ribbon
  • Cliquer sur « Choisir un projet d’équipe

Project 2

Dans la fenêtre de choix :

  • Sélectionner le serveur TFS ou l’URL VSTS souhaité
  • Sélectionner la collection  projet d’équipe souhaitée
  • Sélectionner le projet d’équipe à lier
  • Effectuer la connexion en cliquant sur « Connect »

Project 3

Etape 4

Maintenant que votre projet est connecté à votre projet VSTS, vous pouvez récupérer vos items.

  • Dans l’onglet « Equipe » du Ribbon, cliquer sur « Obtenir les différents de travail »

Project 4

Depuis la fenêtre de sélection :

  • Sélectionner la query créée lors de l’étape 1
  • Cliquer sur « Find » récupérer les items
  • Sélectionner tous les items qui vous intéressent
  • Cliquer sur « OK »

Project 5

Etape 5

Vous pouvez maintenant manipuler vos items depuis Project.

  • Cliquer sur « Actualiser » pour les mettre à jour sous Project  depuis VSTS
  • Cliquer sur « Publier » pour les mettre à jour sous VSTS depuis Project

Project 6

Attention, seuls les champs mappés entre VSTS et Project sont synchronisés. 

  • Cliquer sur « Afficher les mappages de colonnes » afin de contrôler quels champs sont synchronisés.

Customiser et Modifier le mappage des colonnes entre VSTS et Project 2016

Nous venons de voir comment lier un projet VSTS à Project 2016.

Dans notre projet d’exemple, ArticleSyncProject, basé sur le Template scrum, on constate que la date de début et  la date de fin des différents items ne font pas partie du mappage avec VSTS. Ainsi les modifications que l’on fera sur Project pour les date de début et de fin ne seront pas sauvegarder dans VSTS.

Ceci est normal si on utilise le Framework Scrum, mais il existe une solution afin de remonter ces informations dans le projet VSTS

Il faut ajouter la date de début et de fin aux types d’items dans le projet VSTS que l’on souhaite synchroniser. Dans notre cas :

  • Product Backlog Item
  • Task

Etape 1

Dans un premier temps nous allons créer un nouveau Template projet héritant du Template scrum de VSTS.

  • Dans les paramètres, cliquer sur « Account Setting »

Template0

Ceci permet d’accéder aux paramètres du VSTS.

  • Aller dans l’onglet « Process »
  • Sélectionner le Template Scrum de VSTS
  • Dans le menu contextuel du Template Scrum, cliquer sur « Create inherited process »

Template1

Dans la fenêtre de création :

  • Saisir le nom du nouveau Template : ScrumProjectTemplate
  • Cliquer « Create Process »

Template2

Etape 2

Maintenant que votre nouveau Template est créé, nous pouvons ajouter les nouveaux champs.

  • Cliquer sur le Template

Template3

Nous allons commencer par modifier les Tasks du nouveau Template.

  • Cliquer sur Tasks

Template5

  • Cliquer sur « New Field »

Template6

Dans la fenêtre d’ajout d’un champ :

  • Sélectionner « Use an existing field »
  • Sélectionner le Field « Start Date »
  • Cliquer sur « Add Field »

Template7

Faire de même pour ajouter le champ « Finish Date » au type « Task »

Template9

 

Répéter les opérations pour ajouter les champs Start Date et Finish Date au type « Product Backlog Item »

Etape 3

Nous pouvons à présent associer notre nouveau Template à notre projet.

Dans le menu contextuel du nouveau Template, ScrumProjectTemplate :

  • Cliquer sur « -> Change  team projects to use ScrumProjectTemplate »

TemplateToProject1

Dans la nouvelle fenêtre :

  • Sélectionner le projet : ArticleSyncProject
  • Cliquer sur « OK »

TemplateToProject2

Un projet d’équipe est associé au Template ScrumProjectTemplate.

TemplateToProjec3

En accédant au détail d’une task du projet ArticleSyncProject, les nouveaux champs sont maintenant présents.

TemplateToProject4

Etape 4

Nous pouvons maintenant modifier le mappage entre Project2016 et VSTS pour synchroniser les 2 nouveaux champs « Start Date » et « Finish Date ».

Pour ceci nous devons utiliser en ligne de commande l’utilitaire TFSFieldMapping que vous trouverez dans :

%programfiles%\Common Files\microsoft shared\Team Foundation Server\15.0

  • Ouvrir l’inviter de commandes en tant qu’Administrateur

Mapping0

  • Saisir : cd %programfiles%\Common Files\microsoft shared\Team Foundation Server\15.0
  • Saisir la commande :

Mapping1

Le fichier de « Mapping.xml » contient le xml suivant :

Mapping2

  • Pour lier les deux nouveaux champs, ajouter les 2 éléments XML suivant :
    • <Mapping WorkItemTrackingFieldReferenceName= »Microsoft.VSTS.Scheduling.StartDate » ProjectField= »pjTaskStart »/>
    • <Mapping WorkItemTrackingFieldReferenceName= »Microsoft.VSTS.Scheduling.FinishDate » ProjectField= »pjTaskFinish »/>
  • Saisir la commande suivante pour charger le nouveau fichier de mapping sur le projet ArticleSyncProject sous VSTS :

Mapping3

Etape 5

Actualisons le mappage entre VSTS et Project 2016.

Pour ceci retournons sur notre fichier Project2016 lier à notre projet VSTS :

  • Cliquer simplement sur « Actualiser »

Mapping4

  • Cliquer sur « Afficher les mappages de colonnes » afin de contrôler quels champs sont synchronisés.

Mapping5

Etape 5

Vous pouvez maintenant modifier les dates de début et de fin dans Project, elles seront synchroniser avec le projet VSTS.

En suivant la procédure décrite dans cette article, vous pourrez ajouter et mapper de nouveaux champs entre VSTS et Project 2016.

Pour modifier le fichier de mappage vous trouverez la liste des noms de champ existant sur votre VSTS :

  • Dans les paramètres, cliquer sur « Account Setting »
  • Aller dans l’onglet « Process »
  • Cliquer sur « Fields »

Mapping6

 

En ce qui concerne le nom de champs sous Project, il suffit de préfixer le nom du champ par : pjtask

  • Par exemple : Text10 => pjTaskText10

Conclusion

En liant VSTS à Project 2016, on peut tirer parti du meilleur des deux.

Avec VSTS, on partage les informations du projet aux différents acteurs :

  • Développeurs
  • Testeurs

Avec Project, le chef de projet peut suivre et modifier rapidement les différentes informations du projet afin d’anticiper le plus tôt possible.

Ce lien entre VSTS et project 2016 demande un peu de travail au début, mais en utilisant les templates VSTS on rentabilise vite cet investissement.

Connecter VSTS à Teams

Objectif

Avec Teams vous pouvez partager un ensemble d’information aux différents membres de l’équipe sans que ceci aille sur le site VSTS du projet.

Prérequis

  • Avoir un projet VSTS avec un backlog rempli (si ce n’est pas le cas vous pouvez créer un projet rapidement en suivant cet article)
  • Installer Teams

Suivre les événements du projet

Par défaut, VSTS notifie par mail différents évènements qui se produisent sur un projet. Par conséquent, notre boîte mail se retrouve vite saturée de mail provenant de VSTS.

Certains de ces évènements sont envoyés par défaut seulement à la personne qui a déclenché l’évènement.

Par exemple, suite au commit du code d’un développeur sur la branche de développement, l’échec ou la réussite du build automatique (cas d’une intégration continue) sera envoyé seulement à ce développeur, par défaut.

En connectant VSTS à Teams, ces différentes notifications peuvent être partagées à l’ensemble de l’équipe projet, sans encombrer les boîtes mail de chacun.

Etape1

Vous devez créer un nouveau canal à votre équipe projet sous Teams

  • Cliquer sur « Ajouter un canal », dans le menu contextuel de l’équipe

Teams1

Dans la fenêtre de création du canal :

  • Saisir le nom du Canal
  • Cliquer sur « Ajouter »

Teams2

Etape 2

Il ne reste plus qu’à créer un connecteur pour que les notifications de VSTS arrivent dans le canal Suivi Backlog.

  • Sélectionner le canal
  • Cliquer sur « Connecteurs » dans le menu contextuel

Teams3

Dans la fenêtre de gestion des connecteurs :

  • Rechercher « Visual »
  • Cliquer sur le bouton « Configurer » du connecteur Visual Studio Team Service

Teams4

Dans la fenêtre de configuration :

  • Sélectionner votre compte de connexion à VSTS
  • Sélectionner le nom de la souscription VSTS

Teams5_1

  • Sélectionner le projet à surveiller

Teams5_2

  • Sélectionner le type d’évènement à surveiller
    • Pour notre exemple : « Elément de travail mis à jour »

Teams5_3

  • Cliquer sur « Enregistrer »

Teams5_4

Lorsque la configuration est faite avec succès, le post suivant apparaît dans le canal :

Teams6

Etape 3

Vous pouvez tester le connecteur en modifiant par exemple une tâche du projet sous VSTS.

Teams7

Selon vos besoins, vous pouvez tester les différents types d’évènement que vous souhaitez écouter dans Teams.

Visualiser le Product Backlog du projet

Dans le canal dédié au projet, il est aussi possible d’ajouter un onglet afin de visualiser rapidement la backlog du projet sous forme de Kanban.

Etape 1

Dans le canal du projet :

  • Ajouter un nouvel Onglet, en cliquant sur « + »

TeamsBacklog1

Dans la fenêtre de sélection d’onglet :

  • Rechercher « VSTS »
  • Cliquer sur l’icône « VSTS »

TeamsBacklog2

  • Entrer vos identifiants de connexion pour VSTS

TeamsBacklog21TeamsBacklog22

Etape 2

Dans la fenêtre de configuration de l’onglet VSTS :

  • Sélectionner un compte de connexion à VSTS

TeamsBacklog3

  • Sélectionner la souscription VSTS
  • Cliquer sur « Continuer »

TeamsBacklog4

Etape 3

  • Sélectionner le projet
  • Sélectionner l’équipe
  • Sélectionner le niveau des items du Backlog à visualiser
  • Cliquer sur « Enregistrer »

TeamsBacklog5

Etape 4

Visualiser et partager avec votre équipe le kanban.

TeamsBacklog6

Attention, seuls les personnes possédant un compte pour se connecter aux projets pourront accéder à cet onglet.

 

Conclusion

Si vous utilisez déjà Teams pour gérer vos projet au sein de vos équipes, connecter VSTS à Teams est pratique. L’ensemble des informations dont vous avez besoin sont maintenant disponible sur un seul outil Microsoft.

Teams permet de visualiser rapidement et simplement certaines informations du projet VSTS, si vous avez besoin de plus de détail passer directement par VSTS.

 

 

 

 

 

 

 

Générer simplement un projet de test sous VSTS

Objectif

Lorsque l’on regarde des articles ou des tutoriaux sur l’utilisation des différentes fonctionnalités de Visual Studio Team Services, on est souvent confronté à cette problématique : je fais mes tests sur quel projet  ?

Dans ce cas on peut :

  • soit créer un nouveau  projet de test sous VSTS. Mais ce dernier est vide, il faut donc passer du temps à tout recréer avant de tester la fonctionnalité qui nous intéresse.
  • soit utiliser un projet existant en cours d’utilisation par une équipe de Delivery. Cette option est relativement dangereuse et hasardeuse, car nos tests vont perturber la stabilité du projet.
  • Soit utiliser un projet de test déjà existant sur lequel on a déjà fait des tests, donc souvent dans un état incertain. Il est donc souvent préférable de supprimer nos projets de test.

L’objectif de cet article est donc de vous présenter un outil en ligne, fourni par Microsoft, qui permet de créer rapidement un projet sous VSTS avec déjà du contenu.

Prérequis

  • Avoir une souscription Visual Studio Team Services avec les droits pour installer des extensions si besoin

Création du projet VSTS

Avec l’utilitaire VSTS Demo Data generator on peut créer rapidement et simplement un projet de test sur sa souscription VSTS.

Ce projet contient déjà :

  • Un repository Git avec du code source
  • Un portfolio complet avec :
    • des Epics
    • des Features
    • des Product Backlogs items
    • et des Tasks
  • Des équipes
  • Des sprints
  • Un process build fonctionnel
  • Un process release

Etape 1

Aller sur la page  :  VSTS Demo Data generator

Etape1

  • Compléter l’URL de votre souscription VSTS
  • Renseigner le jeton de sécurité que vous avez renseigné
  • Cliquer sur « Verify »

Etape 2

Lorsque la vérification de sécurité est validé, la page de création du projet VSTS est affichée.

  • Renseigner le nom du projet
  • Sélectionner le Template projet :
    • MyHealthClinic
    • MyShuttle2
    • PartsUnlimited

Lors de la sélection du Template, l’utilitaire vérifie que les extensions nécessaires ont bien été installées sur votre VSTS. Dans le cas contraire, vous êtes invité à les installer.

Template MyHealthClinic

Etape21

Template MyShuttle2

Etape22

Template PartsUnlimited

Etape23

 

Dans notre cas nous avons choisi le Template MyHealthClinic.

  • Cliquer sur « Create Project »

Etape 3

Lorsque votre projet VSTS est créé, la page récapitulative suivante est affichée :

Resultat

Etape 4

C’est parti pour vos tests

Suppression du projet VSTS

Lorsque vous avez fini d’utiliser votre projet VSTS vous pouvez supprimer ce dernier.

Etape 1

Depuis la page d’accueil de votre compte VSTS, allez dans la page de la vue globale des projets définis dans votre VSTS.

Delete0

 

Etape 2

Dans la liste des projets, sélectionnez le projet à supprimer.

Delete3

  • Dans le menu contextuel, cliquer sur « Delete ».

Etape 3

Confirmer le nom de projet à supprimer dans la fenêtre de suppression.

Delete4

Etape 4

La suppression a été faite avec succès lors de l’affichage de la fenêtre ci-dessous.

Delete6

 

Conclusion

Je trouve cet utilitaire très pratique et simple à utiliser. Je peux enfin faire rapidement des tests sur des projets avec du contenu, sans perturber les équipes qui travaillent sur les autres projets VSTS.

Il manque plus qu’un utilitaire dans le même esprit pour créer les environnements associés à ces projets sur Azure.

 

Azure Machine Learning Workbench : première prise en main

Introduction

Le but d’Azure Machine Learning est d’analyser des données, puis de développer et d’implémenter des modèles statistiques à l’aide de différents outils.

L’un de ces outils se nomme Azure Machine Learning Workbench. Il est constitué d’une application de bureau (cela s’apparente à Power BI Desktop) ainsi que d’outils en ligne de commande. Il vous permet de gérer des solutions d’apprentissage automatique dans l’intégralité du cycle de vie des sciences des données.

Pour l’installation, on peut suivre le tutorial suivant :

https://docs.microsoft.com/fr-fr/azure/machine-learning/preview/quickstart-installation

Remarque : Lors de la création du service Azure Machine Learning Expérimentation. Il est impératif que notre espace de stockage soit dans la même région que ce dernier.

Ingestion et préparation des données

 

On commence par créer un nouveau projet. Pour cela, il suffit de cliquer sur la croix et d’appuyer sur new project comme représenté ci-dessous :

Par la suite, on renseigne le nom du projet. On peut sauvegarder ce dernier et faire du versionning dans un Repo Git si on le souhaite. Dans le search Project Templates, nous disposons de plusieurs types de projet préprogrammer, nous avons un exemple connu : le projet Iris. Dans notre cas, nous allons choisir blank project.

Après avoir créé notre projet, on va charger un fichier CSV à partir d’un répertoire local. On se positionne sur l’onglet vue de données :

On clique sur la croix en haut à gauche puis sur add a datasource :

Par la suite, nous chargeons notre fichier en déroulant les étapes indiquées sur la fenêtre (on dispose de 6 étapes). Dans l’étape 3 par exemple, on peut avoir une première visualisation de notre fichier et décider du séparateur de colonne…etc. L’étape 4 nous permet d’observer le type de données dont on dispose et de pouvoir changer ce type si l’on souhaite. Une fois les étapes terminées, on peut cliquer sur finish, ce qui nous donne :

 

Le bouton Metrics (en bleu dans l’image ci-dessus), nous permet de visualiser les statistiques descriptives des colonnes de notre fichier :

Après avoir observé ces dernières, on peut se pencher sur la préparation de nos données pour notre modèle. En appuyant sur l’icône Data, on revient à notre tableau de données. il nous suffit de cliquer sur prepare et new data prepare package et nommer ce dernier :

On voit ainsi, dans la partie data préparation, un nouveau package prêt à être transformer et nettoyer :

En cliquant droit sur une colonne, on trouve différentes fonctionnalités. Cette partie est similaire à la partie préparation de données dans Power BI. Une alternative existe, il s’agit de passer via le langage python.

Développement des modèles et gestion des expérimentations

Une fois nos données prêtent, on peut développer notre modèle. Il suffit de cliquer droit sur notre dataset dans le volet data preparation et re- cliquer sur generate acces data file, ce qui nous créer automatiquement une page de code Python :

De l’image, on peut remarquer que cela nous créer un onglet .py et automatiquement notre dataframe. On peut générer notre code python. On peut aussi créer un jupyter notebook pour tester notre code. On va sur l’icône qui représente un livre, on clique sur plus et on nomme notre notebook :

Remarque : On peut aussi le faire en cliquant droit sur prepare data. Cela nous crée bien un notebook jupyter. Cependant, on ne peut pas tester notre code.

Une fois qu’on a vérifié que notre code fonctionne, on peut le rajouter dans fenêtre. Afin de compiler ce dernier, on appuie sur le bouton RUN :

On peut observer à droite qu’une fenêtre nommer Jobs s’ouvre et on observer que note code est en train de s’exécuter.

Remarque : On peut observer aussi qu’on a un onglet se nommant Arguments. On trouve son utilité avec les variables sys.arg dans Python. Il peut être utiliser pour une régression logistique par exemple.

On peut s’amuser à relancer et changer la valeur de nos variables (Arguments par exemple). Une fois qu’on l’a exécuté (plusieurs fois). On peut cliquer sur l’historique (carré rouge dans l’image ci-dessous) et observer quelques metrics sur ce dernier :

On peut aussi filtrer sur une exécution. Cela va nous permettre de tester les différents temps d’exécution de notre programme et d’affiner ce dernier par la suite.

Déploiement des modèles dans différents environnements cibles

Afin de réaliser le déploiement, dans un premier temps, on va exécuter notre script dans un environnement local, ce qui va nous générer un fichier JSON qui va capturer le schéma d’entrée de données requis par le modèle. Une fois cela fait, on va récupérer notre fichier JSON et un fichier du modèle se nommant model.pkl qui aura été enregistré dans notre répertoire du projet :

A l’aide d’une commande, on va créer un environnement local et enregistrer les fichiers récupérer au pare avant dans ce dernier. Cela va nous permettre de créer notre service web en temps réel. Pour réaliser cela, il nous suffit de taper la commande suivante :

az ml service create realtime -f mtcars prepare.py –model-file model.pkl -s service_schema.json -n irisapp -r python –collect-model-data true -c aml_config\conda_dependencies.yml

Cette commande génère un ID du service Web qu’on pourra utiliser plus tard.

Remarque : Le nom du service doit être en minuscule.

Lorsque vous exécutez la commande, le modèle et le fichier de notation sont chargés sur le compte de stockage que vous avez créé lors de la configuration de l’environnement. Le processus de déploiement crée une image Docker contenant le fichier de modèle, de schéma et de notation, puis la place dans le registre de conteneurs Azure : <ACR_name>.azureacr.io/<imagename>:<version>.

La commande extrait l’image localement sur votre ordinateur, à partir de laquelle il démarre un conteneur Docker. Dans le cadre du déploiement, un point de terminaison HTTP REST pour le service web est créé sur votre machine locale. Après quelques minutes, la commande doit se terminer avec un message de réussite, votre service web est alors opérationnel.

Conclusion

Cette outil représente un bon environnement pour commencer à faire des analyses statistiques et des modèles prédictifs. Cependant, il reste assez limité pour l’instant, par exemple, on ne peut utiliser qu’une seule version de Python et les packages disponibles (on peut télécharger de nouveau packages mais cela risque de poser problème lors du déploiement vers Azure étant donné la version dont on dispose). A ce jour, nos projets sont restreints à 25Mo si la taille de nos fichiers sont volumineux. Il existe bien sûr des solutions alternatives sous certaines conditions :

https://docs.microsoft.com/fr-fr/azure/machine-learning/preview/how-to-read-write-files

Nous suivrons le développement de cette offre très prometteuse, actuellement en préversion, dans de prochains articles.

Article rédigé par Amar ADGHAR

 

Débutez instantanément un projet avec la Data Science Virtual Machine

Le cloud Azure est un espace qui permet de créer des machines virtuelles (VM) pour tout besoin d’Infrastructure as as Service (IaaS). Il existe aujourd’hui une déclinaison spécifique d’une machine virtuelle dédiée aux Sciences de Données : la Data Science Virtual Machine (DSVM).

Sa création se fait en quelques minutes sous un compte Azure.

 

Une fois la VM déployée et démarrée, on utilise le principe de connexion de bureau à distance.

Une boîte à outils toute prête

Cette VM possède l’atout majeur d’être préconfigurée avec la plupart des applications de la boîte à outils des Data Scientists. Passons les principaux outils en revue :

  • SQL Server 2017 Developer Edition : le serveur de bases de données relationnelles est préconfiguré sur la VM et contient déjà une base de données de test (les fameux taxis new-yorkais). Il n’y a pas à se poser de question de licence ou de paramétrage. Depuis sa version 2017, SQL Server dispose d’un quatrième service nommé ML Services qui permet d’exécuter du code R ou Python encapsulé dans un script T-SQL.

  • Microsoft ML Server Developer Edition : il s’agit de la version autonome de ML Services, indépendante de l’installation de SQL Server. Il sera alors par exemple possible de travailler avec le format de fichier optimisé pour le travail par « chunck » et en mémoire : XDF.
  • Visual Studio Community Edition : l’interface préférée des développeurs qui baignent dans l’univers Microsoft
  • Jupyter notebook (avec noyaux R, Python, PySpark) : les notebooks sont des interfaces web qui permettent d’exécuter du code à la volée et de visualiser les résultats de manière intermédiaire entre les blocs d’instructions. En quelques années, les notebooks se sont imposés comme la présentation la plus claire d’un code et de ses résultats. Leur force réside également dans leur capacité à exécuter un grand nombre de langages.

A la première utilisation, il faut définir un nouveau mot de passe puis redémarrer le service.

Sur Windows, se connecter à la page https://localhost:9999

Sur Linux, se connecter à la page https://localhost:8000

Ajouter ensuite une exception de sécurité dans le navigateur.

Le notebook est alors accessible et présente de nombreux exemples de codes.

  • Power BI Desktop : on ne présente plus l’outil de BI Self Service de Microsoft qui permet de réaliser très rapidement des transformations puis une exploration des données. On ne l’utilisera toutefois pas ici pour sa capacité à diffuser et partager des tableaux de bord.
  • Azure Machine Learning Workbench : le nouvel outil dédié au Machine Learning de Microsoft est sorti en préversion depuis septembre 2017. Pour l’instant, il présente surtout une interface graphique très efficace pour la préparation des données. A termes, il servira de plateforme pour le déploiement et l’exécution de modèles sur un environnement Docker, éventuellement couplé à Spark. Nous traiterons de ce produit dans un prochain article.
  • Instance autonome Spark pour le développement local et le test

Citons également la distribution Anaconda de Python, JuliaPro et quantités de librairies R et Python dédiées au Machine Learning.

Bien sûr, il reste possible d’ajouter d’autres applications puisque nous travaillons ici avec une machine virtuelle.

Des configurations différentes à disposition

Le premier choix à effectuer face à l’offre des DSVM est celui du système d’exploitation : Windows 2012, Windows 2016 mais aussi Linux Ubuntu. Pour ce dernier, l’accès pourra se faire par connexion SSH mais aussi en lançant un bureau plus visuel au moyen du client X2Go.

Ensuite, se posera la question du dimensionnement de la VM. Les configurations varient légèrement selon le système d’exploitation. On jouera ici sur le type de disque pris en charge (SSD ou HDD), le nombre de processeurs virtuels (de 1 à 32) et la mémoire vive (jusqu’à 448 Go !)

La tarification évoluera en fonction de la configuration choisie et pour ces configurations comparables, il semble que la version Linux soit moins chère. Comme dans de nombreux services Azure, le coût s’évalue à l’heure d’utilisation. Il sera donc prudent d’enclencher l’arrêt automatique quotidien à une heure donnée. Le redémarrage reste quant à lui manuel.

Convaincu.e.s par la simplicité de déploiement de la DSVM ? Quel sera votre prochain projet de Data Science qui trouvera là son parfait terrain de jeu ?

Une variante pour le Deep Learning

Le Deep Learning est une évolution des réseaux de neurones, au cœur des méthodes d’apprentissage automatique, qui fait grand bruit par ses succès actuels, particulièrement dans la reconnaissance d’images. De nombreux frameworks existent pour « l’apprentissage profond » qui nécessitera des ressources importantes pour le calcul : Microsoft Cognitive Toolkit, TensorFlow, Keras, Theano, Caffe2, Chainer, Deep Water (H2O), etc. Il sera donc nécessaire de faire appel à la puissance des GPU et ce sont donc des VM spécifiques (mais plus chères) qui sont associées à ce besoin.

Nous traiterons du Deep Learning et de la DLVM dans un prochain article.

Paul PETON – Lead Data Scientist