Build 2015 : un résumé des annonces Microsoft Azure
La stratégie de Microsoft est claire depuis un petit moment : « mobile first, cloud first », c’est-à-dire un accès permanant à nos données, à demeure comme en mobilité, et sur n’importe quel périphérique (du Raspberry PI au Windows Phone, en passant par le PC, la XBOX), grâce à Windows 10 !
Evidemment, pour permettre cette mobilité, il faut un backend qui soit capable de stocker les données, mais aussi d’héberger des applications, des APIs, des services (…) afin de les rendre accessibles partout et tout le temps : c’est là qu’intervient Microsoft Azure.
Il était donc assez logique qu’Azure occupe une place très importante lors de cette nouvelle édition de //Build ! Beaucoup d’annonces ont été faites, notamment lors de la keynote du premier jour.
Dans ce billet, je vais tenter de résumer ces différentes annonces, principalement côté développement et devops ! N’hésitez pas à commenter pour donner votre avis et échanger autours de ça !
Docker pour Windows
Nous le savions depuis quelques semaines, puisque cette information avait déjà été donnée par Microsoft : Windows Server 10 introduira une nouvelle technologie de conteneurisation pour Windows (le pendant des LXC sous Linux) qui sera interfacée via les APIs Docker. Pour se faire, Microsoft travaille étroitement avec Docker, et prévoit même de publier le code de Docker for Windows en Open Source, via le site de Docker. Nous devrons voir pas mal d’images de conteneurs Windows Docker arriver dans le Docker Hub Repository.
Il est possible depuis quelques temps de faire tourner des applications dans des conteneurs Docker hébergés sur des hôtes Linux dans Microsoft Azure, il sera bientôt possible de faire tourner des applications dans des conteneurs Windows / Hyper-V et Nano Server, une version ultra light de Windows Server !
Microsoft propose également de l’outillage directement dans Visual Studio pour déployer et débugger du code qui s’exécute au sein d’un conteneur Docker, avec notamment une démo très impressionnante lors du keynote J1, du déploiement et débug d’une application ASP.NET 5 dans un conteneur Docker sous Linux (cf. http://channel9.msdn.com/Events/Build/2015/KEY01, à environ 24 minutes)
Si les sujets autour de Docker et Azure vous intéressent, je vous invite à suivre la série d’articles de Stéphane Goudeau.
Sessions //Build en lien avec ce sujet :
- The Next Generation of Azure Compute Platform with Mark Russinovich: http://channel9.msdn.com/Events/Build/2015/3-618
- Thinking in Containers: Building a Scalable, Next-Gen Application with Docker on Azure: http://channel9.msdn.com/Events/Build/2015/2-683
- Windows Containers: What, Why and How: http://channel9.msdn.com/Events/Build/2015/2-704
Azure Resource Manager
Si vous n’avez pas encore entendu parler d’Azure Resource Manager, je vous conseille fortement de vous pencher sur ce sujet, car c’est clairement le futur de la gestion de ressources dans Microsoft Azure !
En gros, le concept est assez simple : depuis le début d’Azure, on instancie des services tels que des comptes de stockage, des bases de données SQL, des VMs, Web apps etc… mais plutôt en ayant une approche « singletons », autrement dit des services plus ou moins indépendants les uns des autres, ayant souvent un cycle de vie qui leur est propre. Pourtant, lorsque l’on développe une « application » dans le Cloud, il s’agit rarement d’un service isolé, mais plutôt d’un regroupement de services.
Par exemple, une « application web » hébergée dans Azure peut être composée de plusieurs frontaux de type Web App, d’une base de données SQL Azure Database, d’un compte de stockage et d’un service de cache Redis.
Azure Resource Manager permet de regrouper toutes ces ressources au sein d’un même groupe de ressources dans le but d’avoir une vue « logique » sur l’application dans sa globalité, et surtout de pouvoir :
- Gérer le cycle de vie de plusieurs services d’un coup (déploiement automatisé via des templates JSON qui décrivent les groupes de ressources)
- Bénéficier de métriques, informations d’audits et alertes pour toutes les ressources qui composent une application
- Pouvoir gérer les droits plus finement au sein du portail Azure pour indiquer quel utilisateur a accès à tels ou tels groupes de ressources
Les grosses nouveautés concernant l’Azure Resource Manager sont le support de nouveau type de ressources :
- Les comptes de stockage
- Les machines virtuelles
- Les réseaux virtuels
Nouveauté également côté outillage, puisque de nouveaux templates de projets sont disponibles dans Visual Studio 2015 RC (avec le SDK Azure 2.6, également rendu disponible pendant la Build) permettent de créer directement des groupes de ressources en JSON et de les parcourir / paramétrer plus simplement à l’aide d’une interface graphique:
Une nouvelle fenêtre “JSON Outline” permet de venir parcourir beaucoup plus facilement les templates pour l’Azure Resource Manager. Le template de projet fournit également un script Powershell qui permet de déployer directement le groupe de ressources dans Azure !
Sessions //Build en lien avec ce sujet :
- The Next Generation of Azure Compute Platform with Mark Russinovich: http://channel9.msdn.com/Events/Build/2015/3-618
- Azure Resource Manager: http://channel9.msdn.com/Events/Build/2015/2-659
Azure Service Fabric
Azure Service Fabric est un nouveau service qui a été annoncé par Microsoft il y a environ deux semaines et qui a été rendu disponible en aperçu pendant la Build.
Il s’agit en fait d’un service qui permet d’héberger des microservices dans Azure, de gérer leurs cycles de vie, leur haute-disponibilités, leur versionning et leur scalabilité, indépendamment les uns des autres !
Mais, les microservices, c’est quoi ?
Le concept est tout simple : plutôt que d’avoir une grosse application monolithique qui fasse tout, qui soit compliquer à maintenir, à faire évoluer, à redéployer dès qu’une petite modification est faite ici où là, pourquoi ne pas diviser pour régner et écrire plusieurs petites applications capables de communiquer entre elles ?
La granularité dépend ensuite de ce que représente votre application au global, mais un micro service peut être une application web en ASP.NET ou encore une application Node.JS ou une simple application console. Si vous avez déjà utilisé des Azure Webjobs pour réaliser certaines tâches au sein d’une application, vous avez déjà eu une première approche de microservices. Mais cette fois, Service Fabric va beaucoup plus loin !
En effet, ce que Microsoft nous propose ici, c’est un service qui est utilisé dans Azure depuis toujours, accompagné d’un SDK utilisé lui aussi par Microsoft pour le développement de certains services dans Azure (ex : SQL Azure Database !). Avec un petit bonus, cela fonctionnera aussi dans un cloud privé !
Microsoft propose deux types de microservices: stateless et statefull.
Le premier type est assez similaire à ce que l’on pouvait faire dans un Cloud jusqu’à maintenant, à savoir développer une application qui “exporte” ses données dans un data store tiers (ex Azure Storage ou SQL Azure Database). Le second type est assez épatant techniquement, puisque Service Fabric permet de gérer des données persistantes au sein d’un microservice dont l’exécution est potentiellement répartie sur plusieurs machines d’un même cluster. Pour cela, le SDK Service Fabric introduit des “reliable” collections, i.e. des collections génériques qui sont multi-threads ET multi-machines !
Vous pouvez d’ores et déjà tester ce nouveau service. Pour cela, il suffit d’installer Visual Studio 2015 RC, le SDK Azure 2.6 et les outils Service Fabric:
Une fois les outils installés, vous retrouverez de nouveaux templates de projets dans la section “Cloud” de Visual Studio 2015 RC:
Un tutoriel pour démarrer est disponible ici.
Sessions //Build en lien avec ce sujet :
- The Next Generation of Azure Compute Platform with Mark Russinovich: http://channel9.msdn.com/Events/Build/2015/3-618
- Microsoft Azure Service Fabric Architecture: http://channel9.msdn.com/Events/Build/2015/2-640
- Building Resilient, Scalable Services with Microsoft Azure Service Fabric: http://channel9.msdn.com/Events/Build/2015/2-700
- Deploying and Managing Services with Microsoft Azure Service Fabric: http://channel9.msdn.com/Events/Build/2015/2-717
- Deep Dive into Microsoft Azure Service Fabric Reliable Actors: http://channel9.msdn.com/Events/Build/2015/2-66
App Service Environment
Quelques semaines avant la Build, Microsoft avait annoncé Azure AppService, une nouvelle offre regroupant Azure Web App (ancien Web Sites), Azure Mobile App (ancien Mobile Services) et deux nouvelles briques, Azure API App (possibilité d’hoster très simplement des APIs dans Azure) et Azure Logic App (possibilité de créer des workflows entre différentes APIs et de les exécuter dans Azure).
Microsoft va un peu plus loin lors de cette Build, avec l’annonce de App Service Environment, c’est à dire un environnement isolé, dans un virtual network Azure, pour faire tourner ses App Services. Cela permet d’avoir des services qui ne sont accessibles qu’au sein d’un réseau virtuel, et via un VPN site-to-site / Express Route !
La création d’un environnement App Service se fait directement via le portail, et il est ensuite possible d’ajouter des Web apps, Mobile apps, Logic apps et API apps à l’intérieur :
Sessions //Build en lien avec ce sujet :
- Azure App Service Architecture: http://channel9.msdn.com/Events/Build/2015/2-628
- Azure API Apps for Web, Mobile and Logic Apps: http://channel9.msdn.com/Events/Build/2015/2-760
- Running Web and Mobile Apps on Azure App Service: http://channel9.msdn.com/Events/Build/2015/2-633
Egalement un article d’introduction sur ce sujet : http://azure.microsoft.com/blog/2015/04/29/introducing-app-service-environment/
Azure Storage
La Build a aussi été l’occasion d’annoncer certaines nouvelles fonctionnalités autour d’Azure Storage, avec notamment :
- Premium Storage en GA : http://azure.microsoft.com/en-us/documentation/articles/storage-premium-storage-preview-portal/
- Release d’une librairie pour Azure Storage en C++ : http://blogs.msdn.com/b/windowsazurestorage/archive/2015/04/29/microsoft-azure-storage-client-library-for-c-v1-0-0-general-availability.aspx
- La possibilité de gérer les comptes de stockage dans l’Azure Resource Manager (cf. ci-dessus)
- Une nouvelle librairie en preview pour chiffrer les données avant de les envoyer (on premise) dans un compte de stockage Azure : http://blogs.msdn.com/b/windowsazurestorage/archive/2015/04/28/client-side-encryption-for-microsoft-azure-storage-preview.aspx
- Un SDK pour utiliser Azure Storage dans une application Xamarin : http://blogs.msdn.com/b/windowsazurestorage/archive/2015/04/29/getting-started-with-azure-storage-on-xamarin.aspx
Sessions //Build en lien avec ce sujet :
- Azure Storage for Developers: Overview and New Capabilities: http://channel9.msdn.com/Events/Build/2015/2-774
- Azure Storage Performance, Scalability and Security: http://channel9.msdn.com/Events/Build/2015/2-68
Azure SQL Database
Côté SQL Database aussi beaucoup d’annonces, et notamment une qui était attendu par beaucoup de monde, la possibilité de faire du Full-Text Search !!
Egalement une nouvelle fonctionnalité en preview SQL Database Elastic Pool, qui permet de gérer beaucoup plus simplement des pools de base de données SQL Database, et surtout de ne provisionner des bases de données qu’en cas de pic de charge. Je ne m’étends pas trop sur ce sujet, car il a été traité par Maxime dans ce post: http://blogs.infinitesquare.com/b/build2015/archives/sql-database-elastic-pools !
Enfin, on peut également citer la disponibilité de Transparant Data Encryption pour SQL Azure Database, i.e la possibilité de chiffrer / déchiffrer dynamiquement une base de données, ses backups … C’était une fonctionnalité qui était disponible dans SQL Server, et qui l’est maintenant dans SQL Azure, en PaaS !
Si vous voulez en savoir plus sur la v12 d’Azure SQL Database, je vous invite à regarder cette session: Building Highly Scalable and Available SaaS Applications with Azure SQL Database.
Visual Studio 2015 RC et Azure SDK 2.6
Enfin, je ne pouvais pas terminer ce billet sans écrire un mot sur Visual Studio 2015 et Azure SDK 2.6, également annoncés lors de la Build, et qui comme d’habitude apportent de nouveaux outils pour travailler toujours plus simplement et plus efficacement avec la plateforme Microsoft Azure !
Vous pourrez retrouvez les nouveautés sur ce blog post: http://azure.microsoft.com/blog/2015/04/29/announcing-the-azure-sdk-2-6-for-net/
Conclusion
Enormément d’annonces donc côté Microsoft Azure pour cette nouvelle Build ! C’est en phase avec la stratégie de Microsoft, et ça montre à quel point la plateforme est centrale pour la firme de Redmond !
Il va maintenant falloir prendre en main tout ça !
Enjoy
Julien
Commentaires