vendredi 18 novembre 2016

DevTest Labs une solution du cloud Microsoft de provisioning d'environnements en mode self service

Que vous ayez à  monter un environnement pour une salle de training ou encore pour une équipe de développeurs / testeurs, DevTest Labs est la solution apportée par le Cloud Microsoft permettant d'optimiser les temps d’approvisionnement ainsi que les coûts.
Comme nous allons le démontrer dans cet article, la configuration d'environnements de développement ou de tests devient un jeu d'enfant comparé aux solutions traditionnelles que l'on connait, l'approche self service de Microsoft offre une solution dynamique et rapide à mettre en oeuvre, personnalisable avec également un concept de maîtrise des coûts.

Ci dessous, la procédure pas à pas pour mettre en oeuvre un environnement de développement qui pourra être utilisé soit pour une classe de training ou encore pour du développement ou du test. Le déroulement de la procédure ci dessous ne prend pas plus de 15 minutes à titre d'information.

1- Se connecter à son abonnement Azure puis en cliquant sur Autre services, rechercher DevTest Labs, on cliquera l'étoile favori afin que le service apparaisse directement dans la Toolbar par défaut par la suite
2 - Cliquer sur Ajouter, entrer le nom du Lab, l'abonnement et la localisation, ci dessous nous choisissons US car toutes les fonctionnalités ne sont pas encore disponible en Europe par exemple, comme montré ci dessous

3 - Cliquer sur Créer puis attendre que la création du Lab se termine

Une fois le Lab créé, il apparaît dans la liste, simplement procéder à sa sélection pour le configurer

La fenêtre de configuration va s'afficher, puis cliquer sur le bouton Formulas. Les formules vont permettre de définir des templates à partir desquels les machines seront crées par la suite.

La première étape va consister à entrer un nom et un mot de passe dans le Secret Store qui sera utilisé pour les Formulas et la création des machines virtuelles. Valider en cliquant sur Enregistrer au bas de la page
Cliquer ensuite sur le Bouton Formulas, permettant de définir ce que sera l'environnement de développement : Type de machine Virtuelle, OS et logiciel installé. Pour ce faire Microsoft offre une bibliothèque prête à l'emploi; Cliquer sur Add, choisir par exemple une machine de type Windows 10 avec Visual Studio 2015 ou 2017 RC dans la liste
Puis vous pouvez configurer le sizing de la machine sélectionnée au travers de la fenêtre suivante qui va s'afficher :
Valider
Vous avez également la possibilité de rajouter des artefacts qui seront en fait des logiciels qui seront installés sur votre machine virtuelle, en plus de Visual Studio, comme montré ci dessous

Ci dessous par exemple nous allons installer Chrome dans la liste des artefacts proposés

Pour valider, il suffit de cliquer sur le bouton Mise à jour

La Formule constitue donc un template qui va nous permettre de créer des machines virtuelles spécifiques par exemple pour une classe de training. Pour se faire, il suffit simplement de cliquer sur le bouton Mes machines virtuelles puis cliquer sur le bouton Ajouter

Simplement sélectionner la formule précédemment créée puis renseigner dans le panneau de droite les informations nécessaires à la création de la machine virtuelle comme montré ci dessous :
Une fois le formulaire complété, simplement cliquer sur Créer et attendre que la machine apparaisse dans la liste (on note ci dessous l'état "création en cours")
Une fois la machine créée, le script applique l'ajout des artefacts sélectionnés en plus de la formule, dans notre cas, il s'agit de l'installation de Chrome
Finalement la machine virtuelle est démarrée

Il suffit de cliquer sur Connexion pour déclencher une connexion remote desktop sur la machine
Un lien Rdp est téléchargé, simplement cliquer dessus pour démarre la session rdp
Cliquer sur Connexion

Entrer vos identifiants

La machine est disponible pour utilisation

On notera, que l'on a à notre disposition un dashboard pour suivre les consommations financières de nos Labs, pratique si l'on veut par exemple  maîtriser les coûts dans le cadre d'une utilisation pour des sessions de formations.

dimanche 24 avril 2016

VSTS Build : Connecter une Build d'intégration continue à une instance SonarQube – Quick Start

SonarQube est un outil d'analyse de qualité de code Open Source permettant de controler la dette technique d'un projet en cours de développement. cet outil s'avère extrêmement utile à la fois pour les développeurs en permettant le controle de la dette technique de leur projet au sein du processus d'intégration continue et également de grandir dans le métier de développeur grace à l'approche didactique de Sonar, qui propose des solution actionables à tous les problèmes remontés, ce qui fait que les développeurs apprennent très vite en uilitsant l'outil à ne plus coder de dette technique. Niveau Management, cela permet de consolider à différents niveaux tels que Projet, Delivery Center, Entreprise des métiques pertinentes rendant transparent tout problème affectant potentiellement la profitabilité de l'entreprise du fait de production d'applications difficilement maintenables impactant à la fois  la capacité d'innovation, et le Time to Market de l'entreprise.
Il est donc stratégique dans une démarche qualité et plus spécifiquement de controle de la dette technique et de transparence de pouvoir intégrer SonarQube à tout processus d'intégration continue. Microsoft, au travers du module Build a su rendre l'intégration de SonarQube très simple comme nous allons le voir dans cet article.
Attention, cet article ne couvre pas la configuration de SonarQube qui est essentielle pour assurer une vision transparente et réaliste de la dette technique, ce qui passe par l'installation de plugins payant par exemple pour C# et également la mise en place de Quality Profiles et Quality Gates alignés avec les stratégies qualité de l'entreprise.
Nous allons voir pas à pas comment configurer cette intégration au travers de la création d'une nouvelle Build CI

  1. S'assurer d'avoir accès à une instance SonarQube existante
  2. Se connecter au portail VSTS du projet cible
  3. Activer l'onglet Build et cliquer le bouton + pour créer une nouvelle Build
  4. Selectionner un template de Build, dans notre cas nous choisissons Visual Studio puis cliquer Next
  5. Configurer le type de Repository, le repository, la branche et l'agent (rafraichir la liste si besoin, dans le cas ou la liste est vide, rapprocher vous de votre Admin TFS pour la configuration de l'agent), n'oubliez pas de cocher la case Continuous integration pour s'intégrer dans un processus d'intégration continue (optionnel) puis cliquer sur le bouton Create
  6. La Build definition est affichée en mode Edition, cliquer simplement sur Add Build Step pour ajouter les taches Sonar fournies par Microsoft en standard dans le workflow de la Build. On notera que le template vient avec la compilation de la solution, l'exécution des tests ainsi que la publication des artefacts de Build tel que les packages de déploiement par exemple
  7. La librairie des taches s'affiche en pop up, scroller jusqu'à atteindre les taches Sonar puis cliquer sur le bouton Add situé à droite des taches puis cliquer sur Close.
  8. Les taches Sonar sont ajoutées à la Définition de Build
  9. Simplement cliquer glisser les taches pour les positionner au bon endroit dans le workflow comme montré ci dessous
  10. Nous allons maintenant configurer les taches Sonar afin que la Build CI puisse publier les informations de qualimétrie vers Sonar. Pour cela, vous devez disposer de la clé projet Sonar, le nom et la version comme montré ci dessous. A noter qu'un EndPoint SonarQube aura été provisionné par votre administrateur au préalable. Pour la partie Database Settings, nous allons utiliser des variables que l'on créera au préalable dans l'onglet variables
  11. La création des variables se fait comme montré ci dessous à partir de l'onglet variable. Il faut avoir la chaine de connection à la base de données, ainsi que le Login et mot de passe (A noter que dans la prochaine version de Sonar, les login mot de passe ne seront plus à fournir ce qui du point de vue de la sécurité sera une grande amélioration)
  12. Sauvegarder la build puis tester, si tout est correctement configuré, vous obtenez un rapport de build comme ci dessous avec un lien vous permettant d'accèder au Dashboard du projet Sonar directement pour voir les élements d'information


    Pour information, la création du Endpoint SonarQube se fait à partir des settings de l'instance, pour y accèder cliquer sur le bouton settings comme montré ci dessous,

    Cliquer sur l'onglet Services et cliquer sur Add a new Service Connection

    Choisir Add a Generic

    Entrer le nom SonarQube par exemple puis l'adresse de votre instance Sonar par exemple : http://sonar.YourCompany.net:8080/ puis des credentials permettant de se connecter à l'instance Sonar avec les privilèges suffisants

VSTS - Gestion efficace de Product Backlog Scrum avec les Tags

Un problème fréquemment rencontré par les Product Owner est une difficulté à naviguer dans un Product Backlog pour discuter les sujets clés avec leurs Stakeholders ou encore la capacité à retrouver des PBIs en fonction de leur sujet pour des actions de priorisation.
Parmi toutes les fonctionnolatiés de gestion de Backlog proposées par VSTS, il en est une qu'il est interessant de connaitre pour optimiser la capacité de gestion du Product Backlog : Les Tags.
Les Tags sont un puissant outil de catégorisation et de filtrage et permettent également une meilleure visualisation des PBIs taggés grace à la possibilité de coloriser les Tags par configuration. le but de cet article est de montrer comment tirer parti au mieux de ces tags en partant d'un backlog
Tout d'abord, regardons à quoi ressemble un Backlog affiché dans VSTS sans Tags en mode liste : 
et en mode Carte : 

On s'aperçoit que si l'on recherge des PBIs concernant Docker , ou de la R&D, du training ou n'importe quelle catégorie, il faut lire les PBIs ou procéder à une recherche ce qui n'est pas vraiment au top de l'efficacité. Pour utiliser des Tags il faut tout d'abord les créer dans Chaque PBI

Création d'un Tag pour un PBI

La création d'un Tag dans un PBI est extrêmement simple, simplement ouvrir le PBI et cliquer sur le bouton Add Tag
Renseigner le nom du Tag ( attention à bien éviter les fautes de frappe, la suppression de Tags existants n'est pas disponible pour le moment à partir de VSTS, il faut utiliser un extension à partir de Visual Studio)
Il est bien evidemment possible de renseigner plusieurs tags
Simplement sauvegarder pour persiter les tags

Visualisation et style des Tags 

Nous allons voir comment activer la visualisation des tags en mode liste et en mode Carte.
En mode carte, simplement cliquer sur le bouton setting à droite de la vue Board
Activer l'option Show Tags dans l'onglet Field / Product Backlog Item puis valider
La page Board est raffraichie et les tags sont maintenant visible sur la carte du PBI
Nous allons maintenant affecter un style de couleur pour mieux repèrer les Tags, pour cela cliquer à nouveau sur le bouton Settings sur la droite de l'écran et activer l'onglet Tags Color, cliquer sur Add Tag Color, et configurer selon vos préférences puis cliquer le bouton Save
La page est raffraichie automatiquement et le résultat obtenu est le suivant : 
L'activation de l'affichage des tags en mode liste se fait simplement en ajoutant la colonne Tags à la vue Backlog comme montré ci dessous :

l'affichage résultant : 

Utilisation des tags pour filtrer le backlog

A partir de la vue Backlog, simplement cliquer l'icone Filtre, ce qui entraine l'affichage de l'ensemble des tags disponibles 
Cliquer simplement sur un ou plusieurs Tags pour filtrer instantanément le backlog, les Tags cliqués apparaisent à gauche, pour lever le filtre, simplement recliquer sur les tags qui apparaissent à gauche, il est bien évidemment possible de sélectionner plusieurs tags comme montré ci dessous avec les filtres Docker et Devops
Dans la mesure ou le tagging fait partie de votre stratégie de gestion de Backlog et que votre projet est exécuté en mode Scrum, il peut faire sens de procéder au tagging de vos PBIs durant vos sessions de Refinement, de plus, vous pourrez utilisez le tagging de vos PBIs dans votre Dashoboard  comme filtre de regroupement de vos PBIs dans un Pie Chart par exemple. Dans un prochain article, j'étayerai les possibiltés de reporting scrum à partir des capacités de Dashboard de VSTS