11 Oct 2016

Journée développeur MS Experiences ’16

Imen, Simon, Laurent et Guillaume C. avons eu l’occasion d’assister aux « MS Experiences Days’16 » organisé par Microsoft le 05 Octobre dernier. Nouveau nom et nouveau virage pour Microsoft en direction du Cloud et de l’open source.

Voici un bref résumé de ce que nous avons pu retenir de cette journée :

La Plénière

  • Cognitives API disponibles dans Azure (reconnaissance faciale)
  • Arrivé d’un DataCenter azure en France près de Paris : “Le premier sera situé en région parisienne, et le second dans le sud de la France”
  • Système de création de bot dans azure très simple (la partie Intelligence Artificielle et Big Data est faite par Microsoft pour nous)

pleinninere

Session sur les objets connectés

  • Architecture en Micro Service
  • Pattern utilisé => Event Sourcing + CQRS
  • Créer ses Objets avec Visual studio 2015 un Raspberry et Windows 10, c’est simple et débuggable
  • Azure
    • EventHub pour monter en charge sur de fortes volumétries
    • Service Bus pour le système de Queue
    • Storage Event pour stocker tous les événements : Ce plug à une Queue et sauvegarde tous les événements entrants (Event Sourcing) sur des espaces de stockage peu onéreux.
    • IOT Hub afin de d’authentifier les objets + recevoir tous les Evènements (montée en charge

architecture-micro-service

windows-10-iot

.NET Core présenté par Scott Hanselman

Très pédagogue, Scott nous a parlé de « .NET Core » et de « Visual Studio code », de Omnisharp qui est un projet open source qui permet de bénéficier de l’auto complétion C# sur n’importe qu’elle éditeur (http://www.omnisharp.net/). Il nous a aussi parlé de l’avenir de .Net et de l’arrivée des « .Net Standard Library 2.0) qui sera le socle simple et complet du futur Framework .NET. Notons que Scott disposait d’un très beau surface book… (Avis aux managers qui lisent cet article).

dotnet-standard-library

Pour ceux qui ne le savent pas, ASP.NET Core (dont l’étude a démarré ici au WebCenter) est un Framework Open source et multiplate-forme. Très léger, très simple à utiliser et à prendre en mains mais aussi très pratique pour les architectures orientées microservices !

Quant à Visual Studio Code, il est codé en TypeScript avec le Framework Electron (http://electron.atom.io/).

Il permet entre autres de coder/debugger en C# ASP.NET node.js, python, et plein d’autres technologies !

master-of-coding

VSTS Chez AXA

Dominique THERY, un collaborateur Lillois était à l’honneur lors de sa présentation « Agilité, DevOps et Qualité avec l’usine logicielle VSTS d’AXA France ». L’occasion pour lui (et son collègue d’Avanade) de présenter son retour d’expérience quant à l’utilisation du logiciel au quotidien. Une conférence abordable qui présentait les avantages de l’outil.

vsts-chez-axa
Trois aspects de VSTS ont été mis en avant :
– La gestion des Backlogs projets et le travail en équipe,
– Le déploiement continu avec Release Management et Artifactory
– Le suivi de la qualité et de la dette technique avec Sonar
Sur la gestion des backlogs projets, Dominique a insisté sur le fait de rester sur les standards VSTS afin de bénéficier des mises à jour régulière du produit dans Azure. Il a mis en avant les nouveautés du kanbanboard et du dashboard projet.

tfs-online-axa

Release Management est un produit qui est maintenant totalement intégré à VSTS. Il dispose d’un panel de tâches facilitant l’automation très utilise pour travailler en DevOps.

Enfin le suivi de qualité a été mis en avant à travers la présentation des résultats de build dans Sonar.

Une session riche d’enseignements…

Comment GitHub livre GitHub

  • Outil indispensable pour la communication utilisation des Pull Request
    • Tout le monde à la même vision du code
    • On arrive à parcourir tout le code modifié (ce qui n’est généralement pas le cas d’une revue en réunion)
    • Plusieurs allers-retours possibles
    • Permet de ne pas être coupé dans son travail, on fait la revue quand on a le temps
  • Utilisation des « Issues » même pour se poser des questions entre collègues
    • Permet de ne pas être coupé en permanence dans son travail (15 minutes en moyenne pour se replonger dans une tâche à après avoir été coupé)
  • Utilisation de « slack » et bots afin de pouvoir réaliser des actions (ex : livraison en recette) et être informé en temps réel des évènements (ex : push sur git)

github-alain

Retour d’expérience sur la construction de la plateforme inwink (gestion d’event dont MS Experiences)

Microsoft a demandé à Infinite Square (partenaire MS) de construire une nouvelle plateforme pour la gestion d’évènements : inwink. C’est cette plateforme qui a été utilisée pour les MS Experiences.

Retour par technologies utilisées :

  • Document Db
    • Appréciée
    • Simple
    • Volonté de mettre davantage de données dans cette base
  • Azure SQL Database
    • Sharding très simple si pensé bien en amont du projet avec nouvelles fonctionnalités (context_info) transparent pour le dev avec les middlewares Asp.net Core
    • Historisation très facile avec les instruction History Table
  • NET Core
    • Début avec une version beta en suivant les versions sorties par MS
    • Passage douloureux entre 2 RC
    • Amélioration des perfs
    • Tourne dans Azure sans problème
    • Build spécialisée (beaucoup de tâche CMD dotnet restore / dotnet build) car VSTS ne dispose pas encore des tâches pour dotnet core
  • Entity Framework Core
    • Encore jeune
    • Ne pas utiliser si on a des besoins exotiques
  • Azure Web App
    • Au top
  • Azure Functions
    • Encore très jeune : difficulté à monitorer / déployer
    • Mieux vaut utiliser les web jobs pour éviter de perdre ses cheveux

Infrastructures Cloud

Choix à faire sur le degré d’isolation / densité.

Cela impacte la vélocité de mise à l’échelle du service sachant qu’on met plus de temps à démarrer une VM plutôt qu’un processus.

Plusieurs possibilités sont offertes pour héberger des frontaux Web :

IaaS : beaucoup de chose à charge

PaaS :

  • Azure App Services : la plateforme gère tout, on ne gère que l’application.
  • On a des outils d’automatisations pour la mise à jour des applications.

Service Fabric :

  • Plateforme pour héberger des services / applications massivement distribuées.
  • Fournit les services d’infrastructure, de monitoring : c’est un socle de base pour exécuter des applications.
  • Cette couche logicielle est utilisée en interne par Azure pour héberger des services PaaS.
  • Pensé pour haute dispo et montée en charge.
  • Capacité à augmenter la densité d’applications sur les VM et optimiser leur utilisation.
  • Support de VM Linux / Windows
  • Framework pour développer des applications fortement intégrées (micros services)

Container Docker notamment :

  • On déploie un container qui contient notre microservice.
  • Notion de dockerfile : descriptif de ce qui va être exécuté et créé.
  • On part d’une image docker existante pour ajouter des opérations propres aux besoins du micro service.
  • Possibilité d’utiliser Docker for windows pour les développeurs pour pouvoir debugger leurs applications « conteneurisées ».
  • Azure permet de déployer des containers docker.
  • Les containeurs sont les mêmes du dev à la prod.

Introduction à ASP.NET Core

Décision de Microsoft de repartir d’une feuille blanche => ASP.NET Core.

  • Web contient beaucoup de code legacy (code web form avec programmation évènementielle des années 90)
  • Permet également de répondre à la volonté de Microsoft de fournir des technologies cross platform (via .NET Core).
  • Il s’agit d’une approche totalement modulaire : on vient composer son application en ajoutant les middlewares dont on a besoin uniquement
  • Permet d’optimiser les performances des applications car on évite beaucoup de code de System.Web (8x + performant que nodejs selon certains benchmarks)
  • Nativement stateless donc permet de construire des applications cloud Ready.
  • On conserve MVC / Web API / Web Pages mais héritent des mêmes classes (évite duplication de code pour les filtres etc …)
  • Intégration des packages managers bower / npm.
  • open source (Version actuelle 1.0.1) accessible sur Github => permet à la communauté de contribuer.

Pas besoin de migrer toutes nos applications ASP.NET classique vers ASP.NET Core. ASP.NET sera encore supporté et va continuer à évoluer au moins 18 mois. Technologie utilisable via VS Code et Visual studio 2015 ou autre : indépendance de l’éditeur.

Share