Retour sur les annonces du Red Shirt Dev Tour 2018

Lors du Red Shirt Dev Tour, Scott Guthrie a balayé un grand nombre de possibilités offertes par Azure au travers de ses différents services, le tout illustré par des démonstrations en live. Les présentations ont débuté par les services les plus “classiques” à savoir la partie IaaS avec les VMs. Nous avons pu également voir les possibilités offertes par Azure sur des sujets plus ciblés tels que l’intelligence artificielle ou les containers. Les sujets DevOps et Gouvernance ont aussi été abordés car de nombreux services Azure sont proposés pour vous outiller.

Cet événement pouvait donc s’adresser à des profils variés. Tout le monde pouvait y trouver son compte ! Débutants ou confirmés sur Azure, développeurs ou opérationnels…

 

Compute

Les démonstrations ont commencé avec la partie Compute qui permet d’héberger vos applications, que ce soit sur des VMs ou des App Services pour la partie PaaS. Scott a débuté par une simple présentation du portail Azure via le déploiement d’une VM – ce qui permet aux débutants de pouvoir suivre 😉.

Des fonctionnalités “preview” facilitant le travail des opérationnels ont été passées en revue, citons par exemple la fonctionnalité “Update management” directement proposée au niveau des VMs ou encore le “Change tracking“. Rappelons aussi que ces fonctionnalités sont proposées de façon centralisée dans Azure Log Analytics !

Il a rapidement enchaîné avec une des nouveautés proposée sur la partie IaaS et annoncée lors de la build l’été dernier : la possibilité de mettre en place des “nested vitualization” (ou virtualisations imbriquées) sur vos VMs. Cette fonctionnalité permet de créer ou de migrer des environnements de virtualisation qui étaient On-Premise sur des VMs Azure, intéressant notamment pour des besoins de tests, de démonstrations et de formations. Mais cela offre également la possibilité de mettre en place des containers Hyper-V avec Docker !

Schéma Nested virtualisation

Rien de bien nouveau sur la partie App Service, Scott nous a fait une démonstration sur des fonctionnalités proposées depuis un moment : slots de déploiement ou le scaling automatique. Quelques évolutions sont néanmoins apportées sur ces fonctionnalités pour affiner la configuration :

  • La possibilité de créer plus de slots de déploiements
  • La possibilité de configurer un pourcentage du trafic entrant sur chaque slot.

DevOps

Côté DevOps, nous avons pu assister à une présentation de l’environnement VSTS utilisé par Scott Guthrie en personne !  Une démonstration très visuelle grâce aux dashboards mis en place sur VSTS, à la visualisation des branches côté code source ou encore le backlog board. Les pull requests offrent un espace d’échanges également très visuel.

Une des nouveautés présentée par Scott est la fonctionnalité Continuous Deployment disponible au niveau des Web Apps Azure, qui permet de générer un pipeline de build et de release en quelques clics ! Nous avons récemment parlé ici de Azure DevOps Project dont la fonctionnalité Continuous Deployment fait partie.

A cette occasion, une rapide présentation de Application Insights a été faite (cf. Partie Gouvernance ci-dessous) puisque les alertes remontées par Application Insights peuvent être intégrées à votre environnement VSTS  pour mettre en pause un déploiement ou déclencher un rollback. Avec cette fonctionnalité de monitoring, le cycle DevOps est complet !

 

Mobilité

Il y avait de nombreuses démonstrations axées sur Azure au cours de cette journée, mais n’oublions pas la priorité donnée à la mobilité ! Laurent Bugnion, Senior Cloud Developer Advocate chez Microsoft, est monté sur scène pour présenter Xamarin Live Player. Cette fonctionnalité permet de débugger les applications Android ou iOS à travers Visual Studio 2017, aussi bien sous Mac que Windows.

Pour configurer le couplage entre son smartphone et son PC, rien de complexe, il suffit de télécharger Xamarin Live Player sur l’Apple Store ou le Play Store Android. La procédure d’association avec Visual Studio s’effectue par QR Code.

Ainsi, nous avons pu voir en direct Laurent se connecter à son iPhone à partir de son PC en quelques minutes. L’application se déploie vers l’iPhone sans avoir besoin d’un Mac. Les opérations effectuées sur son téléphone sont alors tracées par Visual Studio. Les breakpoints sont bien pris en charge par cette fonctionnalité, ce qui permet d’aller plus vite dans son développement. On apprécie la vitesse à laquelle on peut réaliser la connexion entre son PC et son iPhone.

Autre fonctionnalité utile, le Live View qui permet au développeur de visualiser directement les modifications liées à l’interface graphique de l’application mobile. En plus des avantages déjà existants sur Xamarin Forms, une modification sur la vue déclarée dans le fichier .xaml sous Visual Studio et le résultat est instantanément visible sur son téléphone. De quoi personnaliser ses applications selon ses goûts rapidement.

 

Data

Sur la thématique de la données, Scott a pu passer en revue sur plusieurs possibilités proposées par les services en PaaS, qui ne sont d’ailleurs pas forcément exploitées par tous.

Azure SQL Database

Côté Azure SQL Database, en plus de laisser la gestion de l’infrastructure SQL à Azure, vous pouvez profiter des fonctionnalités natives pour renforcer la sécurité de vos bases de données.

Scott a une nouvelle fois démontré la richesse des informations qui sont disponibles directement sur le portail. Les recommandations en performance présentent les améliorations qui sont préconisées, comme l’ajout d’index, l’adaptation de la capacité de la base de données pour réduire ses coûts, ou l’application de configuration pour optimiser ses bases. La fonction Point-in-time restore permet de restaurer en quelques clics sa base de données à une date antérieure.

Query Performance Insights analyse les requêtes exécutées en temps réel, ce qui donne des éléments aux développeurs quant à l’utilisation de la base. De plus, les risques d’injection SQL sont détectés et cela permet de déclencher des alertes afin de combler ces failles de sécurité qui ne sont pas toujours maîtrisées. La démonstration nous a permis de voir en direct quelle était la requête critique à corriger sur une application web vulnérable.

En lien avec la protection des données, avec à l’esprit la règlement GDPR en Europe, les bonnes pratiques à mettre en œuvre sont également disponibles sur le service, afin d’assurer la confidentialité des données.

Bien sûr, pour faciliter l’utilisation d’Azure SQL Database, un outil complémentaire, Data Migration Service, peut être utilisé. Au cours de la démonstration, deux bases de données ont été migrées en moins d’une minute. De plus, Azure SQL Database est également disponible pour MySQL et PostgreSQL.

 

Azure Cosmos DB

Pour le stockage de données à l’échelle planétaire, Scott Guthrie nous a présenté les nouveautés du service Azure Cosmos DB. La grande force de ce service est de stocker et de répliquer des données entre les différentes régions du monde, par exemple entre l’Asie et l’Europe. Le service a la capacité de supporter des dizaines de millions de transactions sur des pétaoctets de données ! A une époque digitale très centrée sur la donnée, Azure Cosmos DB se révèle être très performant.

La liste des connecteurs disponibles est très riche : API Mongo Db, SQL, Gremlin Graph, Spark ou Cassandra font partie du lot. Pour sa démonstration, Scott a opté pour Gremlin Graph couplé avec une application Node.js. Sa base de super-héros (son application permettait de rechercher les super-héros) se trouvait sur Cosmos DB/Gremlin graph, et nous avons pu constater que les entités étaient accessibles directement sur le portail via le Graph Visualizer. De plus, toujours pour faciliter les tâches courantes des développeurs, Azure Cosmos DB s’interface directement avec Visual Studio Code : il est possible d’utiliser les outils de requêtage similaires au portail.

Les métriques sur l’utilisation de Cosmos DB sont également présentes sur le portail, et fournissent des éléments aux développeurs, toujours dans l’optique d’améliorer le code qu’ils produisent. C’est un outil précieux pour créer une solution hautement disponible et déployée à travers le monde.

 

Serverless

Azure Functions

Le principal service proposé par Azure pour mettre en place des architectures Serverless est Azure Functions. Il permet de supporter, si besoin, un million d’exécutions sans avoir à gérer le dimensionnement de nos ressources. Ce service a été mis à disposition il y a quelques temps déjà mais il est en pleine évolution ! Scott Guthrie nous a présenté la simplicité avec laquelle nous pouvons mettre en place une nouvelle Azure Function, notamment en tirant profit des templates mis à disposition.

Il nous a présenté quelques cas d’utilisations avec pour commencer une démonstration basée sur des webhooks GitHub, même si là encore un template est proposé ! L’objectif de la démonstration était de déclencher l’exécution d’une Azure Function sur la base d’un événement GitHub (exemple : une issue). A l’aide de la fonctionnalité WebHook proposée sur GitHub et du template “GitHub Webhook” disponible, la configuration est très rapide !

La deuxième démonstration était un peu plus complète. Elle consistait à détecter chaque upload d’images dans un blob Azure et d’identifier si l’image représentait ou non un chat. Si l’image représentait bien un chat, alors celle-ci devait être acceptée et affichée sur notre site. Le rôle de la Azure Function est de faire le lien entre l’upload de l’image pour appeler un autre service dont nous parlerons après pour faire de la détection sur des images.

Notons que cette deuxième démonstration a été faite dans Visual Studio avec des tests et du debug effectués localement. Le service Azure Function est donc totalement intégré aux outils de développement mais aussi de builds et de release (avec VSTS).

Logic Apps

Là où les Azure Functions permettent d’exécuter du code dans un environnement serverless, les Logic Apps nous permettent de déclencher des workflows. Un des avantages à utiliser Logic Apps pour vos workflows est la mise à disposition de connecteurs pour des services externes tels que Twitter, SalesForce, etc. Notons que depuis la première version de Logic Apps le catalogue de connecteurs proposés est de plus en plus fourni.

La démonstration effectuée par Scott Guthrie consistait en l’analyse de tweets basés sur un hashtag. Le workflow de la Logic App était donc composé de :

  • La détection d’un tweet
  • L’appel de Cognitive Services (cf. Partie IA ci-dessous) pour détecter le sentiment général du tweet (plutôt positif ou négatif ?) et catégoriser le thème abordé par le tweet
  • Appel d’une Azure Function pour éventuellement faire des traitements spécifiques sur le texte du tweet
  • Publication sur un dashboard PowerBI pour avoir un reporting sur ces tweets
  • Créer une alerte sur Microsoft Teams dans le cas d’un tweet négatif et ouvrir un dossier dans Dynamics 365 sur ce tweet négatif.

Il en a profité pour présenter toutes les fonctionnalités de monitoring et de troubleshooting qui viennent avec les Logic Apps et qui sont très complètes, par exemple la possibilité de voir les données étape par étape de chaque exécution des workflows.

 

Containers

Azure ne manque pas d’intégrer les technologies de containers dans son riche catalogue de services.

En quelques commandes exécutées sur le Cloud Shell intégré au portail Azure, Scott Guthrie nous prouve qu’il est très facile d’utiliser les containers sur Azure. L’instance ainsi montée est directement accessible via Internet et ouvre de grandes perspectives en termes de déploiement à venir.

Le framework .Net n’exclut pas les containers Docker, bien au contraire. Les quelques manipulations de Scott sous Visual Studio démontrent que la compatibilité avec Docker est bien un atout pour les applications .Net.

Grâce à la technologie des containers, les applications peuvent être déployées rapidement, avec moins de contraintes sur les prérequis applicatifs et techniques. Il en découle qu’il est possible de tirer profit de sa plateforme de containerisation, à condition que celle-ci supporte bien la charge et soit bien maintenable. C’est le composant Azure Container Service, notamment couplé avec Kubernetes, qui permet d’en tirer le meilleur profit.

Scott Guthrie, également à l’aise avec les déploiements Docker, a pu illustrer la scalabilité des containers en jouant sur le nombre d’instances à déployer. La configuration s’effectue via les commandes standards, on retrouve le fichier .yaml pour la déclaration des ressources. La maintenance des clusters Docker est simplifiée par la fonctionnalité d’upgrade : elle permet de mettre à jour la version de Kubernetes en une commande. Cette opération serait beaucoup plus laborieuse si l’on devait gérer son cluster soi-même. En ce sens, Microsoft œuvre pour la démocratisation des containers et leur utilisation réelle en entreprise.

Intelligence artificielle

L’IA a fait de multiples apparitions tout le long de cette journée, ce qui n’est pas une surprise pour un thème au centre des priorités de Microsoft. Nous avons pu voir des démonstrations qui mettent en jeu Azure Cognitives Services, développés par les centres de recherche de la firme américaine. Vous pouvez très rapidement utiliser les services pour effectuer des opérations d’analyse d’images, de sons, de texte.

Par exemple, lors de la démonstration des Azure Functions, Scott Guthrie a exploité l’analyse d’image qui permet de détecter quels sont les éléments présents dans une image. L’algorithme détecte alors s’il s’agit de personnes, d’animaux, de paysages ou encore d’objets. Ces APIs peuvent également donner une estimation de l’âge des personnes, de détourer leurs visages et de donner une mesure sur leurs sentiments. C’est ainsi que Scott a habilement modifié la valeur détectée par l’algorithme de Cognitive Services en direct, en jouant sur ses expressions « personne heureuse » et « personne triste ».

Les textes peuvent également être combinés avec Cognitive Services pour donner une estimation de l’humeur. Scott nous a partagé la mécanique exploitée en interne chez Microsoft pour étudier les avis des utilisateurs de la plateforme Azure. Chaque tweet correspondant à cette thématique est analysé, ce qui permet de détecter et de traiter plus rapidement les avis défavorables laissés par les utilisateurs.

Au-delà des algorithmes “clés en main” proposés par Microsoft, il est possible d’utiliser ses propres modèles avec Azure Machine Learning. Une démonstration de l’outil Azure Machine Learning Workbench nous a permis de voir en direct comment créer un modèle à partir de rien, en fournissant des valeurs expérimentales. On dispose d’une liste d’images, on qualifie le statut de quelques-unes (valide ou à vérifier). Le Machine Learning, et par extension le Deep Learning, va alors entraîner (comme son nom l’indique !) son modèle pour finalement nous proposer des réponses exactes pour l’intégralité des images restantes ! Cette démonstration est impressionnante car le modèle a été créé en direct, en quelques instants, et nous projette dans le futur. On imagine alors les opportunités futures de l’intelligence artificielle.

 

Gouvernance

Les services Azure visant à offrir de la gouvernance sur votre plateforme Azure sont de plus en plus riches et il y a récemment eu plusieurs nouveautés. De nombreuses démonstrations ont été faites sur ces différents outils.

 Monitoring avec Azure Monitor et Log Analytics

Depuis un moment nous avons déjà la possibilité de surveiller nos ressources Azure à travers de métriques remontées dans le portail et de créer des dashboards customs pour afficher les métriques qui nous sont les plus utiles dans une vue unique. Nous retrouvons également ces métriques de façon centralisée dans le service Azure Monitor. Ce dernier est en pleine évolution pour proposer notamment des fonctionnalités d’alerte plus avancées avec la possibilité de filtrer les alertes à l’aide de requêtes de la même façon que dans Log Analytics !

Dans Azure Monitor vous trouverez également un moyen d’accéder directement à vos workspaces Log Analytics, service de supervision puissant proposé par Azure pour collecter les métriques de tous vos environnements : On-Premise, Azure et autres cloud, IaaS et PaaS… Scott nous a ensuite fait une démonstration de “Analytics“, outil de requête puissant proposé à la base sur Application Insights et désormais également sur Log Analytics.

Recommandations avec Azure Advisor et Security Center

Scott a parlé du service Azure Advisor sorti il y a à peu près un an mais peu connu alors qu’il propose des conseils pour optimiser l’utilisation de sa plateforme Azure ! Les recommandations proposées peuvent être liées aux coûts, à la performance, à la disponibilité ou encore à la sécurité. Vous pouvez par exemple obtenir des recommandations sur des VMs peu utilisées qui pourraient être éteintes ou redimensionnées. Il vous est également possible de mettre en pause les notifications pendant une durée définie si vous savez que des actions sont prévues.

Pour ce qui est de la sécurité, les recommandations sont les mêmes que celles que l’on retrouve dans Azure Security Center. Ce service propose de centraliser l’audit de sécurité de vos abonnements Azure et propose des recommandations par exemple :

  • Mises à jour manquantes
  • Bases non chiffrées
  • Absence de firewall

Une des nouvelles fonctionnalités proposée par Azure Security Center est l’accès “Just In Time” qui vous permet d’autoriser l’ouverture d’un port pour une durée limitée. Ceci peut être intéressante si une opération est prévue, ainsi plus besoin de penser à fermer le port après l’opération, celui-ci sera fermé automatiquement à la fin de la période choisie.

Gestion des droits avec Azure Policies et RBAC

La gestion des droits dans Azure n’est pas nouvelle mais une piqûre de rappel ne fait pas de mal ! Néanmoins, le service Azure Policies est nouveau et il permet de cadrer l’utilisation au sein des abonnements Azure en forçant par exemple, la mise en place de tags ou en limitant le choix de datacenter disponibles… Nous reviendrons d’ailleurs d’ici peu sur ce blog sur la partie Azure Policies.

Gestion des coûts avec Azure Cost Management

Enfin, le suivi des coûts pour les contrats entreprise a été intégré dans le portail Azure alors qu’il était disponible uniquement dans le portail EA (Enterprise Agreement) jusque-là. De plus, Microsoft ayant racheté l’outil de gestion des coûts multi-cloud Cloudyn, celui-ci est proposé dans le portail Azure pour suivre votre consommation. Pour le moment, nous sommes encore redirigés vers un portail dédié mais il est prévu que celui-ci soit intégré dans le portail Azure.

 

Le mot de la fin

C’est tout pour le résumé du Red Shirt Day 2018 ! Nous remercions encore Scott Guthrie pour son passage à Paris, tous les intervenants ainsi que les organisateurs de l’événement. La journée a été riche en contenu, et on espère que l’année se poursuivra avec encore plus de nouveautés sur la plateforme Azure !

Post rédigé par Manon Pernin et Laurent Yin
Livre Blanc Cell'insight 8 journey to the cloud