vendredi 12 mai 2017

Keynote 2 Conférence Build 2017 - Réalité Virtuelle et Nouveautés Windows 10

Le premier thème abordé lors de cette keynote est la nouvelle vague de créativité avec la nouvelle version de Windows 10 appelée : Windows 10 Fall Creators Update, censée apporté de nouvelles expériences à plus de 500 millions d'utilisateurs.
Les point clés sont :
Une expérience cross device et cross platform (Windows, IOS et Android) grace à Microsoft Graph, 
qui est un fabrique intelligente permettant de connecter les points entre les personnes, les conversations, les projets, fichier et tout contenu au travers du Cloud, assurant ainsi un flux entre les différents appareils que vous utilisez quelque soit son OS ou type. Les fonctions clés adressées sont les suivantes : 
  • Timeline qui affiche visuellement votre activité au cours du temps, permettant de revenir dans des espaces de travail (fichiers, applications, sites web) tels qu'ils étaient à l'instant t et ce sur n'importe quel appareil. On peut par exemple commencer à travailler sur une présentation Powerpoint, s'arrêter à la slide 45, puis plus tard reprendre dans le train sur son IPhone avec le ficher qui s'ouvrira à la slide 45 (Persistence d'état)
  • Cloud ClipBoard permettant de copier coller du contenu cross device, par exemple copier sur son PC et coller sur son IPhone
  • OnDrive Files on Demand permet d'accéder à tous ses fichiers stockés dans le cloud sans avoir à les télécharger et donc économiser du stockage. Les fichiers cloud ont une icône nuage et n'occupe pas d'espace disque, les icones téléchargés ont une icône coché montrant qu'il ont été téléchargés


.
Windows Story Remix apporte de nouvelles possibilités de transformer photos et vidéos. Cette application sera disponible à partir de Windows Store, utilise l'intelligence artificielle et le deep learning pour organiser et transformer photos et videos en Stories. Elle va utiliser Microsoft Graph pour connecter les utilisateurs au travers de leurs devices. Les montages des Stories permettent de manipuler des bandes sons, des thèmes et des transitions, les utilisateurs peuvent aussi créer de la réalité mixée en ajoutant des objets 3D aux photos et vidéos. On se rapproche des capacités de montage d'un logiciel tel que Adobe Première, l'exemple montré en live lors de la keynote, est le remplacement d'un ballon de football par une boule de feu, le résultat est bluffant

Coté développement, Microsoft annonce .Net Standard et XAML Standard qui permettront de créer des applications  pour Windows, Android et IOS, donc Cross Platform et Cross Devices
On notera au passage la disponibilité d' ITunes à partir du Windows Store ainsi que d'Autodesk SketchBook

La Keynote s'est terminée en apogée avec le domaine de la réalité mixte, virtuelle et augmentée grace à une démonstration époustouflante faite par le Cirque du Soleil qui ont démontré comment ils ont utiliser Hololens pour optimiser et réduire les temps et les couts inhérents aux phases de Design des spectacles.
Ci dessous, les photos du décor virtuelle mis en place, rien n'est visible sur le scène de la Build à l'œil nu,  ci dessous, on a la vue Hololens :
Puis un contorsionniste est rajouté et effectue des mouvements
Voici donc une entreprise innovante dans le domaine du cirque qui a su tirer profit d'une technologie innovante Microsoft au service de sa propre innovation.

Keynote 1 Conférence Build 2017 - La vision innovante de Microsoft présentée par Satya Nadella

Cette année la conférence Microsoft Build a rassemblé quelques 5000 personnes venues du monde entier et se tenait pour la première fois à Seattle, les moyens mis en oeuvre et la logistique ont été à la mesure de l'évènement.

Les sujets majeurs abordés sont les nouvelles technologies Cloud, Data et Intelligence Artificielle, conçues pour aider les développeurs à moderniser les applications existantes,  infuser de l'intelligence dans les nouvelles applications ainsi que distribuer plus rapidement ces applications sur tout type de plate formes. 

Pour Satya, cette année, clairement, l'accent est mis sur l'intelligence artificielle et les robots afin de mettre l'intelligence au centre du développement avec les nouvelles versions du Bot Framework, et de Cognitive Services permettant à tout développeur de créer plus facilement et rapidement des applications intelligentes avec des capacités NUI. Tout cela s'appuie bien évidemment sur un Cloud et des périphériques intelligents.
Le Panel des Technologies mises en avant est impressionnant comme montré ci dessous :

Des démonstrations impressionnantes ont jalonné cette keynote avec notamment des applications d'intelligence artificielle dans le domaine de la sécurité des personnes sur un environnement de travail ou bien encore un hôpital. Cognitive Services, au travers de Caméras est capable de reconnaître des personnes et des objets tels que des outils dangereux par exemple et déclencher des alertes en cas de danger ou bien violation de règles de sécurité via l'envoi d'email, SMS ou autre. Nous voyons dans la démo ci dessous la reconnaissance des objets et des personnes dans un atelier par des cadres visuels.

Pour la première fois, un espace complet du Hub était consacré à l'intelligence artificielle montrant toute la place stratégique accordée au Bots et à l'IA
Bien évidemment le Big Data et autres Azure Data Lake ont une place stratégique dans le monde de l'IA et Microsoft a annoncé au cours de cette keynote Cosmos DB construit de 0 pour servir des services cloud à l'échelle planétaire et des applications utilisant de manière intensives des données à partir d'objets connectés pour l'IA avec des performance annoncées exceptionnelles. Cette annonce tombe plutôt à pic alors que nous entrons dans l'ère des Micro services qui recommandent la mise en place de bases de données distribuées.

Coté Base de Données, on a SQL Server 2017 qui apporte lui aussi son lot de nouveautés avec une exécution sur Windows Server, Linux et Docker, et également un moteur avancé de Machine Learning hosté avec R et Python permettant d'éviter les mouvements couteux de gros volumes de données

En conclusion de cette Keynote, nous retiendrons que l'Intelligence Artificielle est là pour augmenter les capacités de chaque développeur, organisation, plate-forme et personne

Pour démarrer rapidement, ci dessous les adresses intéressantes : 








mardi 28 mars 2017

Pull Requests avec Visual Studio 2017, VSTS & GIT

Lors du précédent article, nous avons démontrer une approche de développement Agile avec Git et Visual Studio 2017. Pour compléter cette expérience, nous allons regarder dans le présent article comment avec VSTS et Visual Sudio le développeur va pouvoir valider la qualité de ses développement au travers du processus de Pull Request.
Suite au dernier article, nous avons développé une fonctionalité de calcul de Discount, le code a été commité localement puis poussé sur le serveur via un Push.
C'est à ce moment précis qu'intervient tout le processus qualité au travers de l'intégration continue et des Pull Requests. Pour rappel, l'objectif d'un Pull Request est de proposer du code poussé au travers d'une feature branche pour promotion au merge dans la branche master.
Définition : Une Pull Request est un process collaboratif qui permet au reste de l'équipe de discuter des changements dans une feature branch et valider le merge vers master une fois que tout le monde à approuvé.
ETAPE 1 - Configuration préliminaire pour les Pull Requests
La première chose à faire est de préparer son Repo pour la gestion des Pull Requests
Afin de procéder à la revue de la Pull Requests, il faut d'abord que le code présenté passe au travers d'un "Quality Gate", nous allons utiliser pour cela une Build. Nous créeons à cet effet une build suffixée PR (pour Pull Request) qui sera utilisée pour la validation des Pull Requests, pour cela nous clonons simplement la Build Master CI qui est notre build d'intégration continue standard pour notre branche master.
Le point suivant va consister à configurer les Branch Policies de notre Repository, à partir de l'onglet Code / Version Control, choisir la branche master du Repo et cliquer sur l'onglet Branch Policies comme montré ci dessous
La première configuration consiste à demander l'exécution de la build dédiée pull Request afin de s'assurer que le Reviewer va inspecter du code qui passe le minimum qualité imposé à savoir que le code compile, les tests passent et l'analyse automatique de code est OK. Tous ces points sont portés par le workflow de la build.

Il faut s'assurer également que la Pull Request est bien reliée à un PBI et dans notre exemple, que la Pull Request ne peut pas être validée par la personne qui a poussé le changement, également que la Pull request ne pas être complétée si le reviewer l'a rejetée 
Il suffit simplement de sauvegarder cette configuration

ETAPE 2 - Création et Validation d'une Pull Request
Une Pull Request peut être crée par le développeur à partir de Visual Studio. Après avoir poussé ses changements sur le serveur, il suffit de naviguer dans l'onglet Branches du Team Explorer, se positionner sur la feature branch, dans notre exemple Discount et lancer la commande Create Pull Request
On est alors redirigé sur l'instance web de VSTS, il suffit alors de compléter la description de la Pull Request, selectionner le ou les reviewers et valider la création
On peut voir en bas de page le code modifié / ajouté / supprimé
Suite à la création, on est redirigé  vers la page de statut de la Pull Request, et en parallèle la build a été lancée
Le point très interessant au niveau des Pull requests est notamment la discussion qui peut être initée directement dans le code inspecté, ci dessous après avoir activé l'onglet Files, on peut voir le thread de discussion inité
Il est interessant également de regarder le contenu des onglets Updates et Commits pour le détail

Enfin si tout est OK du point de vue du Reviewer, il reste à approuver la Pull Request : 
Ce qui va déclencher une build de validation du merge, et dernière étape, il va falloir Compléter la Pull request, si la build n'est pas terminée, c'est indiqué dans le haut de la boite de dialogue.
Dès que la build est terminée, on peut complèter le merge

Au final, on a l'affichage du détail montrant l'achèvement avec succès de la Pull Request
On notera que nous avons demandé la suppression de la feature branch suite au merge et également un Squash des changements qui consiste à condenser l'historique des changements réalisés dans la feature branche (nous n'avons plus tout le détail), comme montré ci dessous


vendredi 24 mars 2017

Développement Agile avec Visual Studio 2017, VSTS & GIT

Avec la montée en puissance des méthodes Agiles et de Git, la manière d'approcher les développements pour les développeurs "modernes" change radicalement, par exemple alors qu'en mode conventionnel on va recommander de limiter le nombre de branches, avec Git, chaque nouveau développement va entrainer la création d'une Feature Branch à partir d'une story, et également le démarrage ne va plus se faire à partir du code mais à partir du Backlog, ce qui veut dire que le développeur va tirer une nouvelle branche directement à partir du PBI ou User Story à développer. Cette nouvelle approche a été totalement intégrée en terme d'ergonomie à VSTS, et c'est ce que l'on va démontrer dans cet article. Nous allons partir sur le développment d'un PBI
Ci dessous le PBI exemple 
Cliquer le menu contextuel et selectionner la commande New Branch
 
Pour la branche, une bonne convention est d'entrer feature/Nom_de_la_fonction, ce qui permettra de générer une structure avec sous dossier dans Git comme on le verra un peu plus tard

Après avoir cliqué sur Create Branch, la fenêtre Code s'affiche et l'on voit apparaitre la nouvelle branche Discount dans le dossier Feature

Pour démarrer les développements, démarrer Visual Studio, procéder à une Synchronisation à partir de Team Explorer, 

Puis cliquer sur l'onglet Branches pour accèder à l'arbre des branches locales et remote

On voit bien la branche Discount du dossier feature parmi les autres branches. En revanche la branche n'est pas présente en local, pour cela il faut simplement faire un Check out

 Le Checkout peut se faire par le menu contextuel comme montré ci dessous
La branche locale apparait instananément dans le dossier feature local

A noter dans la barre d'état, on peut naviguer dans les différentes branches du repo git local et également voir le nombre de commits non poussés sur le serveur
 

Puis le développeur procéde au développemnent puis Commit ses changements, qui sont à ce stade local

On voir ci dessous le nombre de commits en attente, en cliquant simplement sur l'icone, on est redirigé vers la fenêtre de synchronisation 

 il suffit de cliquer sur Push afin de pousser les changement coté serveur.
 Une confirmation est renvoyée pour l'opération
L'étape suivante consiste normalement à créer une Pull Request, ce qui sera l'objet du prochain Post

lundi 20 mars 2017

VSTS et Déploiement automatisé de bases de données avec DACPAC

Dans le précédent article nous avons vu l'avantage et la simplicité de mise en oeuvre de projets de bases de données DACPAC. Nous allons voir comment intégrer simplement dans nos processus d'intégration continue et déploiement continu nos développements de bases de données.
Notre projet DACPAC est donc sous controle de code source Git sous VSTS dans notre exemple.
La première étape va consister à créer une Build permettant de compiler et générer en sortie le fichier DacPac et le profile de publication de manière à ce qu'il puisse être consommé par une Release du module Release Management dont la responsabilité sera de déployer le package fabriqué par la build sur un instance SQL Azure dans notre exemple
Pour la création de la build, il s'agit d'une Build Standard à laquelle nous allons rajouter deux taches de copies, une pour le fichier Dacpac et une pour le fichier de publication
Ci dessous la structure de la build avec l'ajout de deux taches "Copy Files"de la librairie standard
La configuration des taches de copies est pour Dacpac: cette tache va copier dans la Drop location dans un sous dossier database le fichier Dacpac du projet de base de données

Pour le fichier de publication nous avons : ce fichier se trouve généralement à la racine du projet et va contenir les informations pour la mise à jour de la base de données.
Pour vérifier que la build fonctionne correctement, il suffit simplement de la lancer, une fois terminée afficher les détails de la build et cliquer sur l'onglet Artifacts : 
Cliquer sur le bouton Explore à droite de Drop, les deux fichiers doivent être présents dans le dossier Database

La build fabrique bien le package nécessaire à Release Management pour déployer les modifications effectuées sur la base de données.
L'étape suivante va consiter à créer une Release Definition permettant de déployer ce package sur une instance SQL Azure dans notre exemple, pour cela accèder à l'onglet Release et cliquer sur le bouton New Definition
Configurer le projet et la build à utiliser pour le déploiement puis cliquer sur Create

Etant donné que nous avons un compte SQL admin pour le déploiement, nous pouvons définir des variables pour le compte et le mot de passe pour le déploiement comme montré ci dessous (penser à utiliser le cadenas pour passer ces données en secret!)

Pour la partie environnment, renommer en Dev par exemple puis rajouter une tache de déploiement  : Azure SQL Database Deployment , cliquer sur Add puis Close


La dernière étape va simplement consister à configurer le déploiement : 
Le prérequis est d'avoir provisionné un Service Endpoint de type Azure Resource Manager pour votre projet VSTS afin de permettre à la release definition de communiquer avec la ressource Azure cible, comme montré ci dessous : 
Puis procéder à la configuration comme montré  ci dessous : 

Une fois la configuration terminée, il ne reste plus qu'à tester, pour cela, nous allons rajouter un champ Description dans la table Countries, archiver le code, ce qui va lancer la Build automatiquement et provisionner le package, ci dessous la table modifiée:

La build est alors déclenchée, lorsque terminée, nous lançons une release : 
 Puis simplement configurer la build à utiliser (noter qu'en cas de déploiement auto, on peut configurer l'utilisation de la dernière build) puis cliquer sur Create
Le déploiement est alors en progression

Au bout de quelques minutes, la release est déployée

Si l'on se connecte à l'instance cible avec le server Explorer de Visual Studio par exemple, on verra que la colonne Description a bien été créée dans la table Countries de la base de données cible

Nous avons donc vu que l'intégration des développements de base de données s'intégraient de manière simple sur l'ensemble du cycle de vie de développement tel qu'exposé par VSTS et nous permet d'inscrire nos développements de base de données dans une démarche Devops.