BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Articles Roadmap Linux, Docker et stratégie open source sur Azure

Roadmap Linux, Docker et stratégie open source sur Azure

Favoris

À l'occasion de son passage en France, InfoQ FR a pu discuter avec José Miguel Parella, l'Open Source Product Manager d'Azure, des choix techniques d'Azure concernant l'intégration des distributions Linux, de Docker, et d'éléments de la feuille de route Azure concernant Linux et l'open source.

InfoQ FR : Il n'y a pas de distribution Linux "brandée" sur Azure comme il peut exister sur AWS (Amazon Linux), était-ce un choix philosophique, un choix technique, ou les deux ?

José Miguel : De façon générale, notre philosophie est de proposer le choix aux clients, notre but est de continuer à construire une plateforme qui permet ce choix. Nos contributions au noyau Linux pré-datent Azure, depuis 2009, nos contributions autour de LIS (Linux Integration Services) qui avaient été écrites sous GPL. Notre stratégie est de contribuer au noyau, upstream, et laisser ces contributions cascader. C'est notre stratégie, et c'est reflété dans les distros partenaires (RedHat, Canonical, SuSE, etc), ou même dans les nouvelles annonces comme Intel Clear Linux qui est arrivé sur Azure la semaine dernière. Donc de la même manière, c'est LIS (les drivers) qui est packagé dans la distro, ainsi que l'agent Azure Linux qui tourne sur les VMs, les deux sont open source, et ces intégrations permettent aux clients d'avoir le choix. Le dernier facteur dans la stratégie Linux, c'est qu'actuellement 1 VM sur 3 sur Azure est un Linux, donc notre stratégie est de fournir aussi de nombreuses de nos solutions sur Linux, comme SQL Server pour Linux, donc ce n'est pas uniquement que sur Azure, c'est la volonté d'avoir un partenariat fort pour offrir du choix.

InfoQ FR : Historiquement il y a eu de nombreuses façons de faire tourner des containers Docker (Linux) sur Azure, est-ce que la roadmap est de concentrer cela vers un ACS (Azure Container Service) fort, ou de supporter ces différentes intégrations ?

José Miguel : Nous pensons que nous avons une force dans le fait d'avoir une stratégie multi-orchestrateurs. Nous croyons que ce sont des possibilités qui sont bonnes pour les clients, qui peuvent facilement choisir Docker Swarm, DCOS ou Kubernetes. Et ils peuvent utiliser ACS, et quand nous avons annoncé le support de Kubernetes dans ACS Preview il y a deux mois, nous avons en même temps annoncé ACS Engine, qui est une manière de dire, j'aime les concepts d'ACS, mais je voudrais avoir le code pour pouvoir utiliser des parties et re-composer un service moi-même. Donc de notre côté, nous voyons que les clients ont différentes stratégies de containers, certains veulent ACS et choisir leur orchestrateur, certains veulent ACS Engine et le modifier, certains préfèrent aller dans l'Azure Marketplace et prendre Docker Datacenter, certains mêmes veulent faire tourner une partie de leurs containers on-premises et vont regarder des solutions avec, par exemple, DCOS. Et en même temps, certains clients préfèrent opérer à un niveau au-dessus, et avoir un PaaS, comme OpenShift ou CloudFoundry. Quand on regarde de plus haut la totalité de l'écosystème, par exemple les clients Windows Server, notre engagement c'est que l'API Docker permette d'interagir avec les containers Windows Server. Donc de nombreuses façons, que ce soit des orchestrateurs, des PaaS, et nous pensons donc que c'est une force.

InfoQ FR : Techniquement, qu'est-ce qu'ACS Engine ?

José Miguel : En novembre dernier, donc en même temps que l'annonce du support de Kubernetes dans ACS, nous avons annoncé que l'engine serait open source. Il est sur GitHub, et permet d'utiliser DCOS, Docker Swarm ou Kubernetes. Nous l'avons open sourcé pour fournir une solution intermédiaire à, je prends Docker et je construis toute ma solution d'orchestration moi-même, et de l'autre côté, je prends ACS tel que. Pour nous c'est une façon d'avoir une stratégie ouverte sur les containers, et de permettre à tous de modifier plus largement sans avoir à tout refaire. Le repo GitHub est apprécié, 180 étoiles, 66 forks, et il permet aussi d'ailleurs des use cases que je n'avais pas mentionnés, par exemple de faire tourner ACS sur des régions où il n'est pas disponible, comme Azure China.

InfoQ FR : Est-ce que les Azure Functions en interne tournent sur du Windows Server ou un Linux ?

José Miguel : Ce n'est pas sur Linux aujourd'hui. Les cas d'utilisation actuellement où nos clients nous ont demandé que cela tourne sur un Linux sont sur la solution AppServices. AppServices a historiquement tourné sur Windows, mais a toujours eu un support pour des technologies type node.js, Java, PHP, etc. Aujourd'hui AppServices a une version Linux, en Preview, donc il est possible de pouvoir faire tourner son application node.js, Java, PHP sur AppServices Linux. En interne, effectivement nous avons choisi les containers pour implémenter AppServices, mais côté développeur, il s'agit de déployer une application directement.

InfoQ FR : Effectivement, une bonne option si l'on a des dépendances "natives" type ImageMagick.

José Miguel : Exactement, c'est l'un des cas classiques, lorsque l'on a besoin de GDI, ImageMagick, etc, ce sont des cas que demandent les clients. En fait, plus il y a de Linux déployés sur Azure, plus nous portons de solutions pour Linux, et plus nous avons d'expérience à opérer, plus nous pouvons partager cette expérience avec nos clients, qu'ils utilisent le cloud ou non d'ailleurs. Par exemple, HDInsight a toujours été disponible sur Linux.

InfoQ FR : Question complètement différente, y-a-t-il un programme Azure pour les projets libres ou open source qui permettrait d'offrir des crédits aux projets, par exemple pour leur pipeline de CI/CD, etc ?

José Miguel : Les programmes classiques d'Azure ont déjà des crédits, par exemple BizSpark, ou même les crédits d'évaluation ("trials"). Donc nous n'avons pas créé de programme spécial, mais par contre nous travaillons déjà avec des contributeurs individuels, ou des leaders de projets qui nous écrivent sur opensource@microsoft.com et qui nous expliquent leurs besoins, s'ils veulent offrir leur solution sur Azure, ou pour les utilisateurs de Windows par exemple. Nous sommes capables, au cas par cas, de voir comment faire. Cela fait quelques années que nous faisons ça, nous avons travaillé avec environ 500 développeurs. Et parfois, nous rencontrons des personnes d'un projet pour lequel il y a du sens de faire un partenariat plus important, par exemple Jenkins. Nous avons annoncé récemment que leur infrastructure a migré vers Azure. Ce sont des façons dont nous pouvons travailler avec l'écosystème open source.

Au-delà des crédits, c'est partie intégrante de notre stratégie d'engager la discussion avec la communauté open source. Nous avons travaillé avec le projet Jenkins, nous sommes membres de l'Eclipse Foundation et nous travaillons avec CloudBees. C'est cette combinaison de partenaires commerciaux, de gouvernance et de communautés, ainsi que de relations avec des développeurs individuels quand cela fait du sens, qui fait qu'Azure a ce différenciant. Pour Microsoft aussi, cela permet d'accompagner nos clients dans ce chemin vers l'open source. Donc vous allez voir plus de partenariats commerciaux, plus de participation dans les organismes de gouvernance, par exemple la Fondation nodejs, pas uniquement via du sponsoring, mais aussi une participation directement dans le Board of Directors, représentant les plateformes Cloud.

InfoQ FR : Quelle est la stratégie qui a poussé à distribuer l'Azure cross-platform CLI via NPM ?

José Miguel : Il y a deux sujets ; le premier est Azure CLI, il y a de nombreuses façons d'interagir avec les services Azure, dont par exemple PowerShell. Nous avons effectivement cet Azure CLI qui est basé sur nodejs, et qui a été notre CLI depuis quelques temps. Et enfin nous avons notre version 2.0 de l'Azure CLI, qui est en preview, et qui est maintenant écrit en Python. Ces systèmes vont continuer à co-exister, car nos clients cherchent des solutions soit via des templates ARM (Azure Resource Manager), et dans ce cas ils vont utiliser la version 2.0 en Python, ou alors s'ils cherchent à mixer des templates ARM, ainsi qu'ASM, qui est notre précédente génération de description de ressources en Azure, ils utiliseront plutôt notre version basée sur nodejs.

Mais la question est aussi pertinente sur notre cheminement nodejs. Nous avons une stratégie exhaustive pour node, qui est bâtie sur plusieurs piliers :

  • Un pilier productivité, qui se manifeste aussi dans VSCode et le support, pas uniquement du simple hilight syntaxique, mais aussi dans le support du debug full-stack, comment débugger la partie frontend et backend, l'extensibilité des outils de développement, comment via des extensions VSCode s'intégrer directement avec NPM, s'interfacer avec Docker pour permettre de containeriser une application de façon simple, mais aussi s'intégrer avec AppServices pour Linux pour permettre de déployer facilement son app sous forme de container Docker. Donc l'axe productivité est très important et nous avons voulu intégrer de façon profonde ces outils.
  • Un pilier Cloud, pour avoir un environnement agile et puissant, qui permet d'utiliser un ensemble de services quelque soit l'architecture en place, que ce soit du container, du PaaS, des produits dans la Marketplace, AppServices, du CloudFoundry ou OpenShift.
  • Un pilier opérations, de qualité, donc des outils de diagnostic, du monitoring, ou même du support. Par exemple, nous avons une équipe de support Linux chez Microsoft qui aide nos clients, mais aussi une équipe de support open source, qui aide nos clients sur les stacks node.js, Java ou PHP. Nous avons donc intégré ces éléments directement dans notre stratégie.

Pour revenir à la question sur node, nous faisons partie de la Fondation, nous avons keynoté récemment au Texas, et nous faisons beaucoup de choses sur le sujet. Beaucoup de nos SDK sont disponibles pour node, pour de nombreux services Azure, par exemple le stockage ("storage"), AppInsights, etc. Il y a aussi des produits qui sont importants dans l'écosystème node, par exemple MongoDB, et nous avons une base NoSQL managée qui s'appelle DocumentDB. Et même si nous avons un SDK node pour DocumentDB, nous avons aussi choisi de supporter directement le protocole de MongoDB dans DocumentDB. Donc il n'y a même pas besoin de changer son code pour en profiter, il suffit de faire pointer sa chaîne de connexion vers DocumentDB et cela fonctionne, c'est un "drop-in replacement".

Donc en récapitulatif, nous voyons une vraie croissance pour node, des développeurs qui l'utilisent, des organisations aussi, et nous le voyons aussi sur des populations qui utilisent .Net et nos outils, lorsqu'ils réfléchissent à des choses comme les micro-services ou la programmation polyglotte, ils regardent node aussi. Donc c'est important pour nous d'avoir cette stratégie à trois piliers dont j'ai parlé. Il y a pas mal de chouettes démos qui sont sorties de cet événement node, qui montrent l'expérience complète, comment débugger son code dans VSCode, jusqu'à l'auto-scaling d'un AppServices sur Linux qui fait tourner cette application.

Et bien sûr pour la partie CLI, il y a aussi de nombreux outils comme Ansible, Terraform, Chef, etc, qui permettent d'aller loin dans la gestion des ressources Azure, sans avoir besoin de toucher à la CLI ou à PowerShell directement.

InfoQ FR : Quelle est la stratégie pour amener encore plus d'éditeurs open source dans l'Azure Marketplace ? Est-ce qu'il y a des secteurs pour lesquels il y a un focus particulier ?

José Miguel : La Marketplace Azure actuelle est déjà un témoignagne de notre stratégie open source. 60% des solutions offertes sur la Marketplace sont open source. On peut trouver des solutions très populaires comme Drupal ou Wordpress, jusqu'à des solutions de développement full-stack comme MEAN, de l'infrastructure d'entreprise comme des distributions Enterprise Linux de RedHat, ou des bases de données. Donc c'est très riche. De notre côté nous regardons ce que veulent nos clients, et nous essayons d'anticiper les changements, par exemple, dans le domaine des bases de données, beaucoup essaient de régler des problèmes très spécifiques. Après tout n'est pas un bon fit pour le côté transactionnel de la marketplace. Donc nous pensons l'écosystème en tant que la marketplace plus d'autres choses, par exemple les outils que vous allez downloader directement depuis un site externe. Il y a aussi les solutions qui sont implémentées comme des templates, et qui ne seront pas disponibles donc dans l'Azure Marketplace mais plutôt sur GitHub. Par exemple, nous avons un repository qui s'appelle l'Azure QuickStart Templates et qui contient des templates qui résolvent des cas pointus et que les clients peuvent downloader et exécuter eux-mêmes. Pour donner des exemples, des templates de clustering avancé de MySQL Cluster, des playbooks Ansible, etc. Donc que ce soit depuis la Marketplace, un site d'un partenaire ou un site communautaire, c'est juste une façon pour nous de supporter différents usages de produits open source. Et pour revenir sur ce repository, un intérêt particulier est de permettre la collaboration avec nos architectes Cloud, mais aussi nos partenaires et clients.

InfoQ FR : Pour revenir sur un point précédent, quel est le focus de la distribution Intel Clear Linux ?

José Miguel : Intel a publié trois versions de sa distribution Clear Linux dans l'Azure Marketplace. Il y a une image standard, une image optimisée pour les containers, et enfin une image optimisée pour le Machine Learning. La nature de ce nouveau partenariat avec Intel est la performance, car les images sont optimisées pour de nombreux scenarii. L'un des points qui nous intéresse le plus est les implications devops de cette distribution. Elle implémente des concepts intéressants de configuration sans état, le package manager est unique. Par ailleurs, Azure est le premier fournisseur Cloud à proposer cette distribution, donc nous sommes très contents de pouvoir permettre à nos clients de tester cette nouvelle solution et de voir par eux-mêmes ce qu'ils en pensent.

InfoQ FR : Est-ce qu'il y a des éléments de roadmap sur lesquels tu aimerais revenir ?

José Miguel : En termes de roadmap, il y a eu beaucoup de choses qui sont arrivées cette dernière année, et clairement un point de focus c'est Linux en tant que citoyen de premier plan ("first-class citizen"). Nous avons cette volonté, nous avons les clients qui ont cette volonté, je le disais, un tiers de VMs sont sous Linux, nous déployons de plus en plus de services sous Linux directement, HDInsight, ACS. Nous avons investi dans le driver de notre base de données SQL Server managée, pour les clients qui ne sont pas sous Windows, l'expérience n'était pas idéale. Nous avons travaillé sur notre driver JDBC, des drivers pour node ou pour Ruby, etc. L'équipe SQL Server envoie des updates régulières sur Twitter sur leur travail.

Il y a aussi le travail sur les services type DocumentDB, les solutions partenaires, par exemple Cloudera pour l'écosystème Hadoop, DataStax pour Cassandra, Elasticsearch et la stack Elastic, donc de nombreuses solutions.

Un point aussi qui est important pour les développeurs c'est d'avoir cette base Linux pour les services managés, comme AppServices, mais aussi les PaaS comme OpenShift ou CloudFoundry, ou les nouveaux arrivants comme Deis ou Flynn. Ces solutions s'attendent à tourner sur un OS Linux et nous l'offrons.

Et enfin, pour la partie outils de développement, il y a effectivement VSCode, son extensibilité, les intégrations Docker et même Kubernetes ; l'Azure CLI, mais aussi les API elles-mêmes, via des outils comme Terraform, Packer, Jenkins, Chef, CircleCI, etc. Toutes ces solutions peuvent parler directement à Azure via nos API ou des SDK générés depuis les descriptions d'API.

InfoQ FR : Merci José Miguel et à bientôt !

José Miguel : À bientôt !

Evaluer cet article

Pertinence
Style

Contenu Éducatif

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

BT