A quelques jours des TechDays 2015, InfoQ FR a pu rencontrer Stéphane Goudeau pour lui poser quelques questions sur les sessions qu'il animera pendant ces 3 jours de conférences, les 10, 11 et 12 février prochains.
InfoQ FR : Bonjour Stéphane, pouvez-vous vous présenter et nous parler de votre rôle chez Microsoft ?
Stéphane Goudeau : Bonjour Nicolas. Bien volontiers. Je travaille dans l’IT depuis plus de 20 ans. J'ai commencé ma carrière comme ingénieur chez BULL Integration Services. J'ai rejoint Microsoft comme Consultant en 1996 et depuis, j’ai évolué dans l'organisation de Microsoft France sur différents postes techniques qui m’ont permis d’acquérir une certaine expérience, voire une expérience certaine (☺) des technologies de développement et d’infrastructure sur la plateforme Microsoft.
Aujourd’hui, j’accompagne techniquement nos clients et partenaires dans l’adoption de la plateforme Azure.
InfoQ FR : L'offre Azure est en constante évolution, notamment cette dernière année, pouvez-vous nous retracer l'historique d'Azure ?
Stéphane Goudeau : La plateforme Microsoft Azure est née sous l’inspiration de Ray Ozzie. En 2005, il rédige le mémo « The Internet Services Disruption ». Dans ce document, il partage ses réflexions sur l’évolution du logiciel vers les services. Il y expose sa vision d’une plateforme de services Internet de dernière génération pour bâtir des applications Cloud, et argumente en faveur d’une nouvelle expérience de développement et de gestion opérationnelle.
Trois ans plus tard, à l’occasion de la Professional Developers Conference d’octobre 2008, c’est également Ray Ozzie qui est aux commandes, lors de l’annonce publique de cette plateforme baptisée à l’époque « Windows Azure ». Cette première « version d’Azure » était très centrée sur les services PaaS (Plateforme as a Service) et sur Windows. Ce choix a très certainement eu un impact sur son adoption : les premiers clients de cette offre étaient les acteurs du marché de l’édition logicielle.
La plateforme Azure a ainsi évolué pour répondre aux attentes d’une audience plus large en proposant des services de type IaaS et en incluant des distributions Linux couplées avec des environnements Open Source. Progressivement, les environnements d’exécution, qu’ils soient de type IaaS ou de type PaaS, ont pu être associés par la mise en œuvre de réseaux virtuels. Et, leur cycle de vie a pu être unifié dans la notion de Groupe de Ressource Azure (afin de permettre de déployer conjointement ces services de nature différente).
Enfin, au fil des années la plateforme a bénéficié de l’optimisation de ses services d’infrastructure en termes de performances, de réseau, de provisioning, de configuration et de contrôle (surveillance, gestion élastique de la montée en charge, garantie de continuité de service,…) : aujourd’hui, la plateforme Microsoft Azure est donc entrée dans sa phase de maturité.
InfoQ FR : On peut donc parler de l'année de la maturité pour Azure, quelle sont justement ces innovations ?
Stéphane Goudeau : Le catalogue de services proposés par la plateforme Microsoft Azure ne cesse de s’enrichir. Les services d’application ont été étendus pour permettre de mieux répondre à des besoins existants, de garantir la montée en charge et faciliter la maintenabilité : Web Sites, WebJobs, ou Azure Batch sont autant d’exemples de ce type d’extension.
Les services de données sont encore plus représentatifs : SQL Database, DocumentDB, Azure Data Factory, Azure Search, HDInsight Hbase, Stream Analytics, Machine Learning….
Parmi ces exemples, certains, comme le Machine Learning ou Azure Batch, illustrent la capacité du Cloud à démocratiser la technologie (en rendant accessible certains types de services à toutes les tailles de sociétés). Autre exemple, RemoteApp, un service offrant un accès distant sécurisé aux applications en présentation déportée, permet d’automatiser la mise à disposition d’une infrastructure que l’on savait déjà déployer et configurer en exploitant les services IaaS de la plateforme. Ce faisant, on rend le service accessible aux sociétés qui n’avaient pas la compétence pour monter ce type d’infrastructure.
InfoQ FR : Avant de revenir en détail sur ces innovations, pouvez-vous nous parler un peu de l'organisation d'Azure ?
Stéphane Goudeau : La plateforme Microsoft Azure propose régulièrement de nouveaux services en fonction des attentes du marché. Certains de ces services sont directement issus des innovations de Microsoft Research et des travaux de notre R&D. D’autres services s’inspirent à différents degrés de solutions issues du monde Open Source.
Il peut s’agir d’une solution Open Source hébergée par Microsoft (par exemple : Redis Cache), d’une solution Open Source dont l’infrastructure est installée depuis l’assistant Marketplace ou en direct (par exemple : Hortonworks Data Platform), d’une solution Open Source hébergée par des partenaires (par exemple : MongoDB par MongoLabs), d’une solution directement bâtie sur une solution Open Source (par exemple : Azure Search, service construit sur Elastic Scale), ou d’une solution proposant un service managé similaire à une solution Open Source (par exemple, DocumentDB qui partage des caractéristiques communes avec MongoDB).
Le nouveau portail Azure regroupe l’ensemble de ces services dans une galerie organisée par thèmes.
InfoQ FR : Si on s'intéresse à la partie stockage des données, quelles sont les nouveautés proposées par Azure ?
Stéphane Goudeau : Cette année, deux évolutions significatives sont à signaler sur le stockage Azure. La première est Microsoft Azure File Service, une nouvelle capacité de notre système de stockage pour le support du partage réseau de fichiers en utilisant le protocole standard SMB. Les applications qui s'exécutent dans Azure peuvent maintenant facilement partager des fichiers en lecture / écriture entre des machines virtuelles Windows et Linux à l'aide de ce nouveau service (tout en conservant l’accès via une interface REST, ce qui ouvre le système vers des scénarios de partage non SMB).
Ce service sera d’ailleurs l’un des éléments mis en œuvre par mon collègue Pascal Saulière dans sa démonstration Azure + DSC (Desired State Configuration), lors de la plénière du deuxième jour des Techdays…
La deuxième évolution à laquelle je pense est le nouveau type de stockage Premium pour les VMs. Le stockage premium conserve les données sur des disques SSD et permet ainsi d’offrir un haut niveau de performance ainsi qu’une faible latence, pour les applications très consommatrices d’I/O s’exécutant au sein d’une machine virtuelle Azure.
Par exemple, en attachant plusieurs disques de stockage Premium sur une machine virtuelle Azure, une application comme SQL Server peut disposer jusqu'à 32 To de stockage et atteindre 50 000 IOPS (opérations d'entrée/sortie par seconde) avec des temps de latence extrêmement faibles pour les opérations de lecture. C’est d’ailleurs l’un des points que je devrais théoriquement (☺) démontrer pendant la keynote Azure des Techdays…
InfoQ FR : Quelles sont les évolutions proposées sur l'infrastructure réseau ?
Stéphane Goudeau : De nombreuses capacités ont été ajoutées à l’infrastructure réseau de la plateforme Microsoft Azure. Je vais essayer de citer les plus significatives mais je risque fort d’en oublier quelques-unes… Il est maintenant possible de réserver des adresses IP publiques et de les utiliser comme adresses IP virtuelles (VIP) de ses services Cloud ou de ses machines virtuelles. Dans le contexte d’applications qui ont besoin d'avoir des adresses IP publiques statiques, cela permet de conserver l'adresse IP même après suppression et redéploiement de l’application.
Le nouveau mécanisme ILB (Internal Load Balancing) permet d'équilibrer la charge des machines virtuelles Azure avec une adresse IP privée. Le système d’équilibrage de charge n’est alors accessible qu’au sein d'un réseau virtuel ou au sein d'un Cloud service. Un grand progrès donc, par rapport à la situation précédente qui nous imposait de passer par le Load Balancer public d’Azure (y compris pour l’accès à des services backend…).
Autre nouveauté, Traffic Manager, le service qui permet de contrôler la répartition du trafic réseau en appliquant des politiques pré-définies, supporte maintenant l'acheminement de ce trafic sur des points de terminaison non liés à Azure (auparavant, ce service ne supportait que les points de terminaison Azure). Cela permet désormais de créer des applications hautement disponibles qui résident sur des infrastructures à demeure, et s’étendent vers Microsoft Azure ou d'autres fournisseurs de services cloud. Les réseaux virtuels Azure supportent désormais plusieurs connexions VPN site à site, ce qui permet de connecter en toute sécurité plusieurs infrastructures à demeure avec un réseau virtuel Azure.
Il est également possible d’interconnecter plusieurs réseaux virtuels régionaux Azure. Cette connectivité VNET-à-VNET peut être mise en œuvre pour des réseaux virtuels déclarés dans des régions identiques ou différentes (par exemple Europe et États-Unis), au sein d’une même souscription ou sur des souscriptions différentes. ExpressRoute offre une connectivité de réseau dédié, privé et à haut débit entre les Datacenters Azure et les entreprises clientes. Cette évolution permet d’offrir la capacité d'utiliser Azure comme un prolongement naturel d'un réseau privé existant, sans passage via l’internet public, et en garantissant une qualité de service réseau. Elle s’appuie sur les services de partenaires comme Orange ou Equinix.
Enfin, les groupes de sécurité de réseau (NSG) contiennent des règles de contrôle d'accès pour autoriser ou refuser le trafic vers une ou plusieurs instances de machine virtuelle sur un réseau virtuel régional. Il est possible d’associer une NSG à une machine virtuelle, ou à un sous-réseau au sein d'un VNET. Lorsqu'il est associé à une machine virtuelle, le NSG s'applique à tout le trafic qui est envoyé et reçu par l'instance de la VM. Lorsqu'il est appliqué à un sous-réseau au sein du VNET, il s'applique à tout le trafic qui est envoyé et reçu par toutes les instances de VM dans le sous-réseau. Les règles d'une NSG sont modifiables à tout moment, et les modifications sont appliquées à toutes les instances associées.
InfoQ FR : Quelles sont les améliorations apportées pour les développeurs ?
Stéphane Goudeau : Visual Studio dispose de tout un ensemble d’outils qui facilitent l’interaction du développeur avec Azure (provisionning, configuration, debugging). Visual Studio Online propose deux modes de configuration pour le contrôle de code source, l’un basé sur le standard Git (qui permet très facilement de cloner un référentiel dans lequel on peut avoir de multiples repositories Git), l’autre fondé sur le modèle beaucoup plus centralisé que propose TFVC (Team Foundation Version Control), le contrôle de code source historique de TFS.
Les tests de charge dans Azure peuvent être implémentés grâce à Visual Studio et Visual Studio Online en s’appuyant sur des injecteurs directement montés dans Azure. Grâce à ce service, il est possible de se concentrer sur la définition des tests : Azure et Visual Studio Online fournissent l’infrastructure nécessaire à leur exécution.
L’instrumentation d’une application peut se faire directement depuis Visual Studio en installant l’extension « Application Insights ». Celle-ci permet d’automatiser la création de l’application dans le portail Applications Insights VSO, et de spécifier la configuration.
InfoQ FR : L'approche et les outils de Continuous Delivery évoluent beaucoup, quelle est la stratégie d'Azure sur ces points ?
Stéphane Goudeau : L’utilisation combinée des solutions Microsoft Azure et de Visual Studio Online, grandement facilitée par leur intégration native, est un parfait exemple d’outillage permettant de gérer un processus de Continuous Delivery. Par exemple, il est très rapide de configurer un déploiement automatique de la dernière version de l’application Web dans un environnement Azure Web sites de test/pré-production à chaque fois qu’un build est réussi.
La définition du pipeline de déploiement et de la configuration associée entre Visual Studio Online et Microsoft Azure peut maintenant être gérée directement depuis Visual Studio 2013 grâce à l’extension « Release Management for Visual Studio 2013 ». Ce mécanisme permet donc d’automatiser la chaîne de production logicielle de bout en bout, en intégrant la composante de release management.
Le nouveau portail Azure permet également de définir des tests en production pour les Azure web sites, ce qui permet de mettre en place des scénarios A/B Testing ou de Canary Releases, très utiles dans le cadre d’un processus de Continuous Delivery. L’intégration des processus de développement au cœur de la plateforme Microsoft Azure est d’ailleurs l’un de ses différentiateurs vis-à-vis de fournisseurs de Cloud concurrents.
InfoQ FR : On parle de plus en plus aujourd'hui des solutions d'API Management, quelles sont les solutions et fonctionnalités proposées par Azure ?
Stéphane Goudeau : Avec la prolifération des périphériques mobiles, les entreprises doivent proposer des APIs permettant aux développeurs d'applications internes ou non, d’offrir de nouvelles expériences spécifiquement conçues pour les tablettes ou smartphones.
La réponse de Microsoft pourrait se limiter à proposer un environnement d’hébergement pour ces APIs (comme Azure Web sites) et l’outillage pour les développer et les déployer. Mais, pour les entreprises qui souhaitent mettre à disposition une API, il ne suffit pas de disposer d’un service pour publier, sécuriser et héberger cette API.
En effet, il faut pouvoir appliquer des transformations de format, configurer la description du mode de consommation exposé, définir des rôles pour les développeurs, des plans d’utilisation et des quotas, mettre en place un suivi analytique pour protéger l’API d’un usage abusif, et contrôler et configurer des alertes. C’est pour adresser l’ensemble de ces besoins que les équipes de Microsoft ont intégré une solution d’API Management dans le portail, suite au rachat de la société Apiphany.
InfoQ FR : On l'a vu, les services et l'organisation d'Azure ont beaucoup évolués, pouvez-vous nous présenter l'approche des Web Sites et des Web Jobs pour la gestion des applications sur Azure ?
Stéphane Goudeau : Historiquement, la plateforme Azure proposait plusieurs options pour déployer et assurer l’exécution des applications Web, soit en s’appuyant sur les services IaaS, soit en mettant en œuvre le modèle de Cloud Service et notamment sur la notion de « WebRoles » qui permettent au développeur de bâtir son application en s’appuyant sur l’utilisation de modèles d’environnement prédéfinis.
Ces approches traditionnelles devenant peu à peu inadaptées lorsque l’on multipliait les applications Web sur une même infrastructure, un nouveau modèle dédié aux Web sites a été proposé, avec comme niveau de granularité, le processus de travail plutôt que la machine virtuelle… Le service Azure Web sites supporte maintenant Java en plus des langages ASP.Net, Node.js, PHP, ou Python pour permettre la construction rapide de serveurs Web et leur publication via Git, WebDeploy, TFS, FTP, en se fondant sur des gestionnaires de contenu populaires tels que Drupal, Umbraco, .NetNuke, Joomla !, Mojo, phpBB, WordPress….
De plus, un nouveau mode de traitement est apparu avec la notion de WebJobs. Les WebJobs permettent de déployer et exécuter du code en tâche de fond sur les machines hébergeant les Azure Web sites. Ils héritent ainsi de l’ensemble des caractéristiques de la plateforme Web sites (montée en charge, remote debug, load balancing, autoscaling, supervision, etc.). Ils sont très utiles pour mettre en place des mécanismes asynchrones (l’application Web envoie un message dans une file d’attente, et ce message est dépilé et traité par un Azure WebJob s’exécutant régulièrement de manière asynchrone) et peuvent être déclenchés selon différents schémas d’activation.
Un SDK dédié peut être utilisé pour créer ces WebJobs, par exemple pour créer des tâches qui s’interfacent par databinding déclaratif avec Service Bus ou le stockage Microsoft Azure. Ce SDK offre un outillage complémentaire pour la supervision et le debugging.
InfoQ FR : J'imagine que Microsoft utilise également les services d'Azure en interne, quels sont les principales solutions déployées ?
Stéphane Goudeau : Les services SaaS proposés par Microsoft sont hébergés dans les mêmes Datacenters que la plateforme Azure. Certains de ces services ne font qu’utiliser des services Azure. Par exemple, Office 365 utilise le service Azure Active Directory pour la gestion et le contrôle d’accès des utilisateurs.
D’autres, comme Skype, sont partiellement déployés sur Azure.
Enfin, certains services, comme Visual Studio Online (et l’ensemble de ses services connexes), ou les services Azure eux-mêmes, sont développés et déployés sur Azure, avec Visual Studio Online, dans un processus de Continuous Delivery.
InfoQ FR : Merci beaucoup Stéphane pour vos réponses, avez-vous quelque chose à ajouter ?
Stéphane Goudeau : Oui, volontiers. Si parmi vos lecteurs, certains ont envie de creuser un peu plus le sujet, je les invite à se rendre sur azure.com (plutôt facile à retenir, non ? ☺).
Ils y trouveront de la documentation, des tutoriaux, et la possibilité d’ouvrir, sans engagement, une souscription valable pendant une durée d’un mois, intégrant 150€ de ressources offertes. A eux de voir s’ils souhaitent la prolonger, mais avec la possibilité de gratuitement disposer de 10 WebSites, 10 Mobiles Services et une base de données SQL, ce serait dommage de s’en priver… Merci Nicolas pour cet entretien, et bon TechDays !
Vous pouvez vous inscrire aux TechDays sur la page suivante : Inscription.