Du nouveau dans MSTest

Le framework de test de Microsoft n’a pas bénéficié de beaucoup de nouveautés ces derniers temps et de fait, il est souvent délaissé pour des outils concurrents plus évolués grâce à certaines fonctionnalités.

Cependant, les choses évoluent très vite chez MS. Dans cet élan, MS vient d’annoncer la sortie de MSTest V2. Actuellement en preview,  il a pour objectif de rattraper son retard sur les frameworks de tests concurrents, d’innover et de suivre les évolutions technologiques.

Les principales améliorations

MSTest V2 constitue une véritable évolution et 4 de ses nouveautés méritent une attention toute particulière : l’architecture unifiée, le support des tests paramétriques, l’amélioration des catégories et la disponibilité via Nuget.

Lire la suite

L’expertise Goood! est aux DevOps Rex

Notre Expert DevOps sera à votre service!

Cette année Goood! sera aux DevOps Rex de Paris.

Nous avons le plaisir de vous convier le Lundi 28 novembre 2016 au Grand Rex de Paris. Notre MVP Visual Studio and Development Technologies Expert du stand Microsoft se fera un plaisir de répondre sur l’ensemble de la journée à toute vos questions DevOps.

Inscrivez-vous 

prtscr

Comment optimiser les performances et la disponibilités des services Web

Combien coûte un site indisponible ou un peu lent ?

Chez Amazon, 1 seconde de latence du site e-commerce engendre une perte de 1,6 milliards $ sur une année, et en cas d’indisponibilité au minimum 2000$ sont perdus en moyenne par seconde (cf : How Much Money Do Top Companies Make Each Second?). Pour un petit projet, la facture peut être proportionnellement plus salé que quelques % de CA, car cela peut engendrer la perte de précieux clients et donc nuire à tout un business.

En bref, ça coûte très cher et un point important de l’appréciation d’un site web est sa vitesse et sa disponibilité (cf : How Loading Time affects your Bottom Line).

Pour remplir ces critères, des milliers de méthodes existent portants chacunes sur différents axes (optimiser le code, fournir une infrastructure robuste, avoir un système de rollback efficace…). Cet article traitera d’une partie de l’infrastructure en passant par un service simple, fiable, au coût insignifiant et rapide à mettre en place : le service Traffic Manager d’Azure.

Lire la suite

Aperçu du nouveau PowerShell Cross Platform

Microsoft annonce depuis 2014 s’ouvrir aux autres systèmes, et en ce moment nombre de leurs nouveautés vont dans ce sens. Après l’arrivée entre autres de SQL Server sur Linux et Bash sous Windows, le dernier élément en date est : PowerShell 6 en OpenSource compatible Linux et MacOs. Plus précisément Microsoft déclare actuellement PowerShell 6 Alpha 9 compatible avec :

  • Windows 10 / Server 2016
  • Windows 8.1 / Server 2012 R2
  • Ubuntu 16.04
  • Ubuntu 14.04
  • CentOS 7
  • OS X 10.11

Microsoft a réussi à réaliser ce tour de force en se basant sur .NET Core, Framework .NET en open source et Cross Platform (note : baser un outil aussi crucial et important que PowerShell sur .NET Core montre bien la détermination qu’a Microsoft à s’ouvrir aux autres produits/plateformes).

Comment puis-je tester ?

Simplement en installant le package approprié à la plateforme : https://github.com/PowerShell/PowerShell/releases/. Une fois installé PowerShell 6 est accessible via la commande

Powershell

Ou en passant par la console de commande dédiée à PowerShell 6 présente sous Windows (nommée PowerShell 6).

Ça marche comment ?

De la même façon qu’un PowerShell normal. En testant les commandes de base tout semble fonctionner correctement. Néanmoins on remarque rapidement que la version actuelle est encore en Alpha, de ce fait quelques différences apparaissent rapidement comme par exemple la vérification de l’environnement via la commande [environment]::OSVersion.Version retourne sous Windows 10 :

  • 10.0.10536.0 (=Windows 10) avec PowerShell 5
  • 6.2.9200.0 (=Windows 8) avec PowerShell 6

Cela prouve qu’il faut garder en mémoire que la majorité du code a dû être réécrit, des problèmes peuvent donc survenir ou des adaptations sont à prévoir…

Avec l’ouverture quelques adaptations apparaissent

PowerShell 6 est actuellement en Alpha et cela implique nécessairement quelques limitations ou adaptations pour la réutilisation d’anciens scripts :

  • .NET Core != .NET:  évident, mais cela à de grosse conséquence sur PowerShell, en effet les versions antérieurs à PowerShell 6 sont basées sur le Framework .NET : comme les bases ne sont pas les mêmes rien ne garantit à 100% qu’un script PowerShell (version inférieur à 6) fonctionnera en PowerShell 6.
  • PowerShell exécute la plupart des commandes en mémoire : donc pas de :
    • sudo ma_commande

    • mais plutôt
    • sudo powershell ma_commande

  • Windows != Linux/MaxOs: c’est une évidence, mais cela implique quelques nouveaux paramètres à prendre en compte :

En bref cela impliquera obligatoirement du développement spécifique par script, mais pour tout ceux ayant déjà touché à .NET Core ou au développement mobile Cross Platform cela devrait être naturel.

C’est quand même utilisable ?

Comme toute alpha, PowerShell 6 est intéressant pour les tests et la découverte, mais il ne faut surtout pas l’utiliser en production, le nombre important de problème (+ de 300 sur GitHub) et le nombre de fonctionnalités vitales encore non implémentées/bancales (gestion des services, remote, manipulation XML…) ne permettent pas d’utiliser PowerShell 6 comme outil de gestion ou de scripting principal.

Finalement…

PowerShell 6 s’annonce être une excellente version, même si celle-ci est encore en alpha et que le travail est encore conséquent pour fournir une expérience parfaite côté Linux et MacOs ! Si le pari est tenu, PowerShell sous Linux et MacOs pourra permettre d’avoir une gestion des scripts unifiée et ainsi qu’une centralisation des compétences, ce qui est loin d’être anodin dans un monde ou se battent principalement Windows, Linux et MacOs.

Comment utiliser Bamboo avec VSTS en toute transparence

Bamboo est à Atlassian ce que le couple Build VNext + Release Management est à Visual Studio Team Services : une solution de build d’applications d’intégration/livraison/déploiement continu.

C’est une très bonne alternative à la solution de VSTS qui gagne en popularité, et Microsoft l’a bien compris. Face à ceci Microsoft a mis en place un  Service Hook permettant d’utiliser de façon transparente Bamboo tout en utilisant l’un des contrôles de code source fourni par Microsoft. Nous allons voir dans ce billet comment configurer et utiliser Bamboo et VSTS conjointement.

NB : Dans le cas où le contrôle de source utilisé est Team Foundation Version Control (TFVC) et non GIT, il faudra préalablement installer l’extension TFS Repository (https://marketplace.atlassian.com/plugins/com.stellarity.bamboo.tfs-repository-plugin/server/overview) sur le serveur Bamboo.

Lire la suite