0

Build 2017

Cette année le sujet qui a dominé la Build est sans aucun doute l’intelligence artificielle ou IA. On la retrouve partout : aussi bien dans le nouvel outil de montage vidéo Remix3D que dans l’utilisation des FPGA qui permettent d’effectuer les calculs liés aux réseaux de neurones dans Azure. Un autre sujet revient constamment : les conteneurs et l’ouverture vers Linux. Tout est fait pour faire de Windows la meilleure plateforme de développement quel que soit le besoin, le langage utilisé ou la plateforme cible.

Voyons un peu plus en détails quelques-unes des sessions auxquelles j’ai pu assister. Ceci n’a pas pour objectif de montrer l’ensemble des nouveautés car lors d’une telle conférence il faut faire des choix, voici donc les miens.

Continue Reading

0

Migration TFS vers VSTS

Depuis plusieurs mois, Microsoft expérimente un service de migration de TFS vers VSTS en private preview. Ce service est désormais disponible pour tous. Il est donc possible de migrer votre collection TFS vers le cloud et d’y retrouver toutes vos informations. Ca il s’agit bien d’un service de migration de la base de données de TFS et non pas un service de recopie des informations comme tous ceux qui étaient disponible jusqu’à présent.

Voyons en détails le processus et les détails d’une telle migration.

Prérequis

Le premier prérequis est de posséder un Azure Active Directory. Ce dernier est nécessaire pour mapper les comptes issus de TFS vers les nouvelles identités dans le cloud. Pour ceux qui disposent d’Office 365 ce travaille à déjà été réalisé.

Le second prérequis consiste à disposer d’une version récente de TFS (moins de 6 mois). Dans le cas contraire, il y aura préalablement un travail de migration on premise à réaliser.

Un autre point important est de réserver le nom de votre futur compte VSTS. Pour cela il faut créer en premier lieu un compte vide avec le nom désiré. Lorsque la migration aura réussie, les deux noms (celui du compte ayant servi à réserver le nom et celui ayant servi à migrer) seront interverti via la fonction de renommage de VSTS.

Validation & correction des erreurs

Cette étape consiste à valider que la collection qui sera migrée respecte bien les critères d’éligibilité et le cas échéant à corriger les problèmes rencontrés. Ces problèmes peuvent se situer au niveau des permissions de la collection ou encore de la collation de la base de données mais le plus probable est qu’ils concernent la customisation du process template.

En effet si ce dernier n’a jamais été modifié, cette étape sera rapide. Par contre si le process template a subi d’importantes modifications, il faudra retirer celles non supportés par VSTS. A noter également que dans le cas d’une migration sans customisation, vous pourrez bénéficier des nouveaux templates avec héritage dans VSTS. Dans le cas contraire vous aurez toujours le même fonctionnement que celui de TFS, c’est-à-dire qu’il vous faudra utiliser les commandes WitAdmin pour modifier votre process template.

Préparation

Maintenant que tous les prérequis sont réunis, il faut préparer la migration en elle-même. Concrètement il s’agit de construire le fichier de mapping des identités. Ce fichier permet de faire correspondre pour une identité on premise sont équivalent dans l’Azure AD. Ce fichier contiendra également les informations de licence pour les futurs utilisateurs de VSTS.

Dry run & migration

Dans le cadre d’un projet de migration, Microsoft fournit deux tokens : un premier pour le dry run et un second pour la migration en production. Le dry run permet de valider le processus de migration et est donc une opération plus que recommandée. Dès lors que ce premier essai est validé, la véritable migration pourra avoir lieu. Il est cependant important de noter que les données issues du dry run seront automatiquement effacées au bout d’un certain nombre de jours (dépendant du nombre d’utilisateurs) et que la véritable migration doit être prévue aussitôt que le dry run est validé. En effet plus il y aura de temps entre les deux et plus les chances d’avoir des changements sont grandes. Or ces changements peuvent entrainés des erreurs, il faut donc les limiter.

Conclusion

Bien que Microsoft ai considérablement amélioré et automatisé le processus de migration, ce dernier reste complexe et demande des compétences spécifiques. C’est la raison pour laquelle Microsoft recommande l’accompagnement par un partenaire. Mais lorsque que cette complexité est maitrisée, ce service vous offrira l’avantage de pouvoir basculer vers le cloud tout en conservant votre environnement.

0

Créer un endpoint Docker pour VSTS facilement

L’objectif de ce billet est de vous montrer comment facilement et rapidement créer un endpoint Docker pour connecter une machine Ubuntu (16.04 dans mon cas) et VSTS. Pour cela il faut créer les certificats nécessaires, les installer et configurer Docker. La dernière étape consiste à créer un endpoint dans VSTS utilisant ces certificats qui sera capable de communiquer avec Docker.

docker vsts

Continue Reading

0

Release Management : retour d’expériences

Introduction

Release Management, désormais intégré dans Visual Studio Team Services, est la nouvelle génération d’outil permettant de délivrer des applications de manière automatisée et continue. Il reprend les fonctionnalités de la précédente version tout en apportant une interface plus riche et plus intuitive. Je vais essayer de vous faire découvrir au travers de cet article les points clé de l’outil. Vous aurez ensuite tous les éléments pour maitriser et accélérer vos déploiements.

Overview

Cette nouvelle version dont l’interface se trouve uniquement dans le portail Web rompt totalement avec les précédentes moutures. Terminé le client lourd et les workflows en XAML, place désormais aux tâches à l’instar du changement effectué dans la partie Build. Disponible dans Visual Studio Team Services, cet outil l’est également dans TFS 2015 depuis l’Update 2.

La principale évolution est la simplification de son interface. Bien trop compliqué auparavant, elle est maintenant beaucoup plus claire et intuitive comme le montre la capture ci-dessous. Sur ce premier écran d’accueil, vous pouvez créer une nouvelle définition de release et consulter le statut de celles déjà présentes. Le bouton « + » permet quant à lui d’en déclencher une nouvelle.

La définition de release est la première étape à franchir. Elle permet de définir le déploiement d’une application sur les différents environnements cibles.

rm vnext

Continue Reading

0

Asp.Net Core avec Docker & Release Management

Docker est un technologie qui est de plus en plus utilisée et je vous propose de voir comment déployer une application Asp.Net Core en utilisant Release Management et VSTS. L’application utilisée dans cet exemple est composée de trois parties : un front en Angular JS, une Web Api et une base Mongo DB. Je vais donc vous montrer comment déployer et configurer tous ces éléments pour former une application pleinement fonctionnelle.

Les sources de l’application sont disponibles sur GitHub : MultiChannelTodo

Docker

Continue Reading

0

Release Management vNext : configuration avec WebDeploy

Le déploiement d’une Web App dans Azure avec Release Management vNext est relativement simple. La tâche « Azure Web App Deployment » permet de déployer un package WebDeploy en quelques clics. Il est également possible de spécifier une « connection string » qui sera intégrée au Web.config lors du déploiement. Cependant, par défaut, impossible d’utiliser le fichier SetParameters.xml qui est un élément clé de la gestion de la configuration avec WebDeploy. Voyons comment utiliser ce fichier .

azure web app deployment

Continue Reading

0

Configurer WinRM

Ceux qui utilise les nouvelles machines virtuelles dans Azure auront sans doute remarqué que WinRM n’est pas configuré par défaut. Cet état de fait pose problème notamment lors de l’utilisation de Release Management vNext car ce dernier fait un usage intensif de cette technologie. Je vais donc vous montrer comment configurer WinRM sachant que cette technique est valable pour n’importe quelle machine, aussi bien dans Azure que on premise.

WinRM, quel protocole choisir : HTTP ou HTTPS ?

Cette question est souvent la première, quel est le protocole à utiliser. La réponse est simple et est clairement expliqué dans la MSDN : l’utilisation du mode HTTP doit servir uniquement lors des phases de mise au point. Avec un environnement de production, c’est la version sécurisée qui doit être employée. Or comme on peut le constater ci-dessous, par défaut seul la version HTTP est activée, nous allons donc configurer WinRM avec HTTPS.

winrm http

Continue Reading

0

AzureRM avec un agent de build vNext

Dans cet article je vais vous montrer comment utiliser la dernière version des commandes PowerShell AzureRM avec un agent de build vNext.

Différence entre Azure et AzureRM cmdlets

Un nouveau mode de gestion des ressources est apparu dans Azure : Azure Resource Management. Concrètement ce nouveau mode permet de regrouper tous les composants au sein d’un groupe de ressources et ce mode de gestion sera à terme celui qui subsistera. Il me parait donc important de capitaliser dessus pour ne pas avoir à réécrire les scripts PowerShell à l’avenir.

Mais pour bénéficier de toutes les fonctionnalités de ce nouveau mode de gestion, il faut avoir la dernière version des commandes Azure (version > 1.0.0) qui n’est pas disponible sur le Hosted Agent. C’est pourquoi nous allons installer notre propre agent avec la toute dernière version disponible.

Installation de la machine

La première chose à installer est PowerShell 5. J’ai choisi d’utiliser Chocolatey pour gagner du temps :

install powershell 5

Ensuite il faut installer les cmdlets AzureRM. Si comme moi vous avez déjà une version antérieure installée, il faudra la désinstaller au préalable :

install azurerm

La désinstallation est possible directement depuis PowerShell :

remove azure PowerShell package

Continue Reading

0

Quelle version du Framework .Net est installée ?

A priori cette question peut sembler simpliste mais quand on souhaite savoir quelle version du Framework .Net est installée sur une machine, les choses ne sont pas si évidentes. Preuve en est la page de Microsoft pour répondre à cette question : msdn.

Maintenant voyons pourquoi avoir un script donnant la version peut être intéressant : dans mon cas je dois gérer un certain nombre de serveurs de builds. Or en janvier prochain, le 16 pour être précis, le support du Framework 4.5.1 sera terminé. Il faudra donc mettre à jour toutes les machines avant cette date. Or j’ai déjà installé le Framework 4.5.2 sur quelques machines, il me faut donc ce script pour déterminer la liste des machines à mettre à jour. Mais il peut également servir dans beaucoup d’autres situations.

2000px-Microsoft_.NET_Logo.svg

Continue Reading

0

Build App Package avec Visual Studio Online

Dans ce nouveau billet je vais vous montrer comment créer le package d’une application Windows Store. L’objectif est d’automatiser au maximum la validation et la création du package. La seule étape manuelle restante est l’upload du package via le Dashboard du store.

Génération du numéro de version

Avant de pouvoir générer un package, il faut avoir un numéro de version unique pour ce dernier. Il existe de nombreuses options pour numéroter un package, voici donc l’option que j’ai retenue, chaque élément étant séparé par un point :

  • Un numéro de version majeur
  • Un numéro de version mineur
  • Un numéro contenant les deux derniers chiffres de l’année courante suivi du numéro du jour dans l’année
  • Le numéro de révision de la build

Cette combinaison permet d’avoir avec certitude un numéro de version unique et permet surtout d’identifier facilement un package et sa date de génération. Pour achever cette opération, la première étape consiste à créer deux variables qui contiendront les deux premiers numéros :

major minor variables

Continue Reading