VT2019 Microclimate Codewind: Difference between revisions
Loic.Schanen (talk | contribs) No edit summary |
|||
(70 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
Microclimate (https://microclimate.dev/) est un environnement de développement dockerisé permettant la conception et le déploiement d'application de divers types en Java, Node.js et Swift. |
Microclimate (https://microclimate.dev/) est un environnement de développement dockerisé permettant la conception et le déploiement d'application de divers types en Java, Node.js et Swift. |
||
[[File:Microclimate.png|120px|thumb|right|Logo Microclimate]] |
|||
Microclimate est, depuis le 1er Décembre, officiellement obsolète, et son évolution se nomme Codewind qui est fourni via le projet open source Eclipse Codewind (https://www.eclipse.org/codewind/). [[File:Eclipse_Codewind.png|320px|thumb|right|Logo Eclipe Codewind]] |
|||
L'évolution de Microclimate se nomme Codewind, fourni via le projet open source Eclipse Codewind (https://www.eclipse.org/codewind/). |
|||
Codewind correspond à l'évolution de Microclimate, et regroupe les mêmes fonctionnalités que Microclimate mais au lieu d'utiliser un IDE web, Codewind se matérialise sous forme d'extension pour les IDE classiques les plus utilisés (Eclipse, VSCode). |
|||
Codewind regroupe les mêmes fonctionnalités que Microclimate mais au lieu d'utiliser un IDE web, Codewind se matérialise sous la forme d'une extension pour des IDE classiques (Eclipse, VSCode). |
|||
[[File:Eclipse_Codewind.png|250px|thumb|right|Logo Eclipe Codewind]] |
|||
=Abstract= |
=Abstract= |
||
Microclimate is a fully dockerized web-based IDE. It allows users to develop applications using several languages (among Java, Node.js, Python, Go and Swift) while reducing the time between code and execution. It also manages end to end deployment and testing. Deployed applications performances are monitored and users can access them at any time along with the logs. |
|||
=Synthèse= |
=Synthèse= |
||
==Description== |
==Description== |
||
===Microclimate=== |
|||
Microclimate est un outil de développement gratuit fourni par IBM facilitant la création, le déploiement, et le test d'applications de divers types. |
|||
Plusieurs fonctionnalités fournies par Microclimate font la spécificité de cet outil : |
|||
* Complètement intégré dans un conteneur Docker |
|||
* Support de plusieurs langages de programmation et leurs combinaisons |
|||
* Choix de l'IDE |
|||
* Dès la création de l'application, cette dernière tourne dans Docker |
|||
* Rapide boucle de développement interne |
|||
* Pipeline de déploiement intégré |
|||
* Métriques de performances intégrées |
|||
===Codewind=== |
|||
Codewind correspond à l'évolution de Microclimate fourni par le projet open source Eclipse Codewind. |
|||
Codewind intègre toutes les fonctionnalités précédemment citées pour Microclimate, la différence fondamentale se trouve dans le fait que Codewind se matérialise sous la forme d'une extension pour les IDE standards comme VSCode et Eclipse. |
|||
==Utilisation== |
|||
===Microclimate=== |
|||
Pour créer un nouveau projet sur la page d'accueil de Microclimate il suffit de cliquer sur le bouton "New Project". Il faut ensuite sélectionner le langage du projet. Il est également possible de créer ce projet dans le même temps sous GitHub. |
|||
[[File:Microclimate_create.png|500px|thumb|center|Fenêtre de création ou d'importation d'un projet sous Microclimate]] |
|||
Cet outil est ensuite très bien documenté et propose de nombreux tutoriels pour démarrer un projet en utilisant toutes les fonctionnalités détaillées par la suite : |
|||
https://microclimate.dev/usingmicroclimate#doc |
|||
===Codewind=== |
|||
De même que pour Microclimate, Codewind est très bien documenté et propose un tutoriel complet pour l'utilisation de Codewind pour Eclipse, VSCode ainsi que Eclipse Che : |
|||
https://www.eclipse.org/codewind/gettingstarted.html |
|||
==Avantages, Inconvénients et limites== |
|||
===Avantages=== |
|||
====Support et combinaison de plusieurs langages==== |
|||
Microclimate permet l'écriture de plusieurs micro services dans des langages différents en vue de les assembler pour former une seule application par la suite. Cela permet d'être très flexible et de choisir à chaque fois le langage adapté au micro service que l'on veut développer. |
|||
De plus, l'interface intègre une gestion des différents langages gérés (Java, Node, Swift, Go et Python) ainsi que des templates de codes pour chacun de ses langages, afin de fournir toutes les informations et l'assistance nécessaire au codage avec ces langages. La gestion simultanée des différents langages utilisés est gérée par LSP (Language Server Protocol), permettant l'auto-completion, l'accès aux définitions et références, etc... pour chaque langage. |
|||
[[File:Microclimate_code_choice.png|500px|thumb|center|Choix du langage lors de la création d'un nouveau projet]] |
|||
[[File:Select template.png|500px|thumb|center|Choix du template de projet avec l'outil Codewind sous VSCode]] |
|||
====Complètement intégré dans un conteneur Docker==== |
|||
Microclimate existe entièrement à l'intérieure d'une image Docker. Cela permet un développement polyglotte décris par la suite. En effet, lorsqu'un langage est sélectionné, il est directement téléchargé avec les paquets spécifiques à ce langage (Java JDK, Maven, par exemple). Cette fonctionnalité est supportée pour tous les langages précisés précédemment. |
|||
====Choix de l'IDE==== |
|||
Microclimate fourni un IDE web basé sur le projet open-source Eclipse Theia, cet éditeur de code permet de directement modifier le code sur l'environnement web de Microclimate en intégrant toutes les fonctionnalités classiques d'un éditeur de code. Néanmoins, le code généré ou importé dans Microclimate est également accessible en dehors de Microclimate et peut être facilement importé dans l'éditeur de code voulu (Eclipse, VSCode, autre...), tout en bénéficiant tout de même des autres spécificités de Microclimate. |
|||
[[File:Microclimate_Web_IDE.png|500px|thumb|center|Editeur Web fourni par Microclimate]] |
|||
[[File:Projet nodejs vs.png|500px|thumb|center|Outil CodeWind sur VSCode: template node.js]] |
|||
====Application tournant dans Docker dès sa création==== |
|||
Lors de la création ou l'importation d'un projet, un Dockerfile est automatiquement créée et configuré pour ce projet en vue de gérer le cycle de vie de cette application. Cela permet de rendre la construction, l'exécution, et le déploiement de l'application le plus rapide possible. |
|||
====Rapide boucle de développement interne==== |
|||
La boucle de développement interne correspond à l'enchaînement des quatres étapes suivantes : code, build, déploiement, exécution. Plus cette dernière est rapide, plus le développement d'une application sera productif. Sous Microclimate et Codewind, cette dernière a été pensée pour être le plus rapide possible afin d'éviter les temps d'attente importants que représentent généralement les étapes du build et du déploiement. |
|||
====Pipeline de déploiement intégré==== |
|||
Microclimate intègre un pipeline de déploiement entre un micro service créée et le serveur [https://fr.wikipedia.org/wiki/Kubernetes Kubernetes] IBM Cloud choisi, ce pipeline se base sur Jenkins (https://jenkins.io/doc/book/pipeline/) pour Microclimate et sur Tekton pour Codewind (https://tekton.dev/). Cela permet de facilement déployer notre application sur IBM Cloud, IBM Kubernetes Service ou encore OpenShift. Une fois ce déploiement réalisé, tous les commits réalisés sur le projet déclencheront un build qui sera ensuite conditionné dans une image Docker qui sera téléchargée sur le registre d'image Docker voulu. Il est possible de voir l'évolution de ces différentes étapes sur les interfaces utilisateurs d'IBM Cloud Private, d'IBM Kubernetes Service ou d'OpenShift comme nous pouvons voir ci-dessous. |
|||
[[File:Microclimate_deploy.png|500px|thumb|center|Pipeline de déploiement basé sur Jenkins]] |
|||
====Métriques de performances intégrées==== |
|||
Chaque application créée avec Microclimate dispose d'un suivi de performances qui inclut l'utilisation CPU, les informations sur les requêtes HTTP (nombre d'entrées, débit,...) ainsi que divers informations concernant la mémoire. Il y a également un détail pour chaque point de terminaison, et la possibilité de lancer des tests de performance personnalisés. |
|||
[[File:App metrics.png|500px|thumb|center|Métriques de performances fournies par Codewind]] |
|||
====Outil OpenAPI==== |
|||
Codewind propose également une extension nommée "Codewind OpenAPI" qui permet d'utiliser un générateur OpenAPI pour créer des API clients, des server stubs, ainsi que de la documentation HTML pour ces API. |
|||
===Inconvénients et limites=== |
|||
====Microclimate==== |
|||
*Microclimate est officiellement, depuis le 1er Décembre, obsolète. Il n'est donc plus mis à jour régulièrement. De plus, si vous tentez de créer une application avec Microclimate et de la déployer sur IBM Cloud, cela ne fonctionnera pas, le cloud IBM ne prend plus en compte les nouveaux projets Microclimate. Cependant les anciens projets fonctionneront toujours. |
|||
*Même s'il est possible d'exporter le projet sous un autre IDE que l'IDE web fourni par Microclimate, cela nécessite plusieurs commandes dont un Docker bind mount. Cela nécessite donc une étape supplémentaire et peut être un obstacle pour certains utilisateurs. |
|||
====Codewind & Microclimate==== |
|||
*Lors du déploiement d'une application, il n'est possible de déployer que sur IBM Cloud (Microclimate & Codewind) et sur OpenShift (Codewind). |
|||
*Ces deux outils ne proposent que 5 langages, même si ces-derniers sont les langages les plus utilisés, pour certains projet nécessitant un langage non pris en compte cela peut poser problème. |
|||
=Démonstration= |
=Démonstration= |
||
[ [[VT2019_Microclimate_Codewind_Demo|Démonstration]] ] |
|||
=Sources= |
=Sources= |
||
*[https://medium.com/@jgwest/microclimate-a-new-container-based-multi-language-cloud-friendly-development-tool-98a2d03326a9] : Description des spécificités de Microclimate. |
|||
*[https://microclimate.dev/] : Site web officiel de Microclimate regroupant une rapide description ainsi que des tutoriels. |
|||
*[https://www.eclipse.org/codewind/] : Site web officiel de Codewind regroupant une rapide description ainsi que des tutoriels. |
|||
*[https://docs.microsoft.com/fr-fr/dotnet/architecture/containerized-lifecycle/design-develop-containerized-apps/docker-apps-inner-loop-workflow] : Description d'un cycle de développement interne classique avec Docker. |
|||
*[https://langserver.org/] : Description LSP |
|||
=Veille Technologique 2019= |
=Veille Technologique 2019= |
||
Line 18: | Line 127: | ||
* Sujet : Microclimate, Codewind |
* Sujet : Microclimate, Codewind |
||
* Slides : |
* Slides : |
||
* Démonstration : |
* Démonstration : [[VT2019_Microclimate_Codewind_Demo|Démonstration]] |
||
* Auteurs : [[User:Loic.Schanen | Loic Schanen]], [[User:Antoine.Pelisson | Antoine Pelisson]] |
* Auteurs : [[User:Loic.Schanen | Loic Schanen]], [[User:Antoine.Pelisson | Antoine Pelisson]] |
Latest revision as of 15:03, 9 December 2019
Microclimate (https://microclimate.dev/) est un environnement de développement dockerisé permettant la conception et le déploiement d'application de divers types en Java, Node.js et Swift.
L'évolution de Microclimate se nomme Codewind, fourni via le projet open source Eclipse Codewind (https://www.eclipse.org/codewind/).
Codewind regroupe les mêmes fonctionnalités que Microclimate mais au lieu d'utiliser un IDE web, Codewind se matérialise sous la forme d'une extension pour des IDE classiques (Eclipse, VSCode).
Abstract
Microclimate is a fully dockerized web-based IDE. It allows users to develop applications using several languages (among Java, Node.js, Python, Go and Swift) while reducing the time between code and execution. It also manages end to end deployment and testing. Deployed applications performances are monitored and users can access them at any time along with the logs.
Synthèse
Description
Microclimate
Microclimate est un outil de développement gratuit fourni par IBM facilitant la création, le déploiement, et le test d'applications de divers types.
Plusieurs fonctionnalités fournies par Microclimate font la spécificité de cet outil :
- Complètement intégré dans un conteneur Docker
- Support de plusieurs langages de programmation et leurs combinaisons
- Choix de l'IDE
- Dès la création de l'application, cette dernière tourne dans Docker
- Rapide boucle de développement interne
- Pipeline de déploiement intégré
- Métriques de performances intégrées
Codewind
Codewind correspond à l'évolution de Microclimate fourni par le projet open source Eclipse Codewind.
Codewind intègre toutes les fonctionnalités précédemment citées pour Microclimate, la différence fondamentale se trouve dans le fait que Codewind se matérialise sous la forme d'une extension pour les IDE standards comme VSCode et Eclipse.
Utilisation
Microclimate
Pour créer un nouveau projet sur la page d'accueil de Microclimate il suffit de cliquer sur le bouton "New Project". Il faut ensuite sélectionner le langage du projet. Il est également possible de créer ce projet dans le même temps sous GitHub.
Cet outil est ensuite très bien documenté et propose de nombreux tutoriels pour démarrer un projet en utilisant toutes les fonctionnalités détaillées par la suite :
https://microclimate.dev/usingmicroclimate#doc
Codewind
De même que pour Microclimate, Codewind est très bien documenté et propose un tutoriel complet pour l'utilisation de Codewind pour Eclipse, VSCode ainsi que Eclipse Che :
https://www.eclipse.org/codewind/gettingstarted.html
Avantages, Inconvénients et limites
Avantages
Support et combinaison de plusieurs langages
Microclimate permet l'écriture de plusieurs micro services dans des langages différents en vue de les assembler pour former une seule application par la suite. Cela permet d'être très flexible et de choisir à chaque fois le langage adapté au micro service que l'on veut développer.
De plus, l'interface intègre une gestion des différents langages gérés (Java, Node, Swift, Go et Python) ainsi que des templates de codes pour chacun de ses langages, afin de fournir toutes les informations et l'assistance nécessaire au codage avec ces langages. La gestion simultanée des différents langages utilisés est gérée par LSP (Language Server Protocol), permettant l'auto-completion, l'accès aux définitions et références, etc... pour chaque langage.
Complètement intégré dans un conteneur Docker
Microclimate existe entièrement à l'intérieure d'une image Docker. Cela permet un développement polyglotte décris par la suite. En effet, lorsqu'un langage est sélectionné, il est directement téléchargé avec les paquets spécifiques à ce langage (Java JDK, Maven, par exemple). Cette fonctionnalité est supportée pour tous les langages précisés précédemment.
Choix de l'IDE
Microclimate fourni un IDE web basé sur le projet open-source Eclipse Theia, cet éditeur de code permet de directement modifier le code sur l'environnement web de Microclimate en intégrant toutes les fonctionnalités classiques d'un éditeur de code. Néanmoins, le code généré ou importé dans Microclimate est également accessible en dehors de Microclimate et peut être facilement importé dans l'éditeur de code voulu (Eclipse, VSCode, autre...), tout en bénéficiant tout de même des autres spécificités de Microclimate.
Application tournant dans Docker dès sa création
Lors de la création ou l'importation d'un projet, un Dockerfile est automatiquement créée et configuré pour ce projet en vue de gérer le cycle de vie de cette application. Cela permet de rendre la construction, l'exécution, et le déploiement de l'application le plus rapide possible.
Rapide boucle de développement interne
La boucle de développement interne correspond à l'enchaînement des quatres étapes suivantes : code, build, déploiement, exécution. Plus cette dernière est rapide, plus le développement d'une application sera productif. Sous Microclimate et Codewind, cette dernière a été pensée pour être le plus rapide possible afin d'éviter les temps d'attente importants que représentent généralement les étapes du build et du déploiement.
Pipeline de déploiement intégré
Microclimate intègre un pipeline de déploiement entre un micro service créée et le serveur Kubernetes IBM Cloud choisi, ce pipeline se base sur Jenkins (https://jenkins.io/doc/book/pipeline/) pour Microclimate et sur Tekton pour Codewind (https://tekton.dev/). Cela permet de facilement déployer notre application sur IBM Cloud, IBM Kubernetes Service ou encore OpenShift. Une fois ce déploiement réalisé, tous les commits réalisés sur le projet déclencheront un build qui sera ensuite conditionné dans une image Docker qui sera téléchargée sur le registre d'image Docker voulu. Il est possible de voir l'évolution de ces différentes étapes sur les interfaces utilisateurs d'IBM Cloud Private, d'IBM Kubernetes Service ou d'OpenShift comme nous pouvons voir ci-dessous.
Métriques de performances intégrées
Chaque application créée avec Microclimate dispose d'un suivi de performances qui inclut l'utilisation CPU, les informations sur les requêtes HTTP (nombre d'entrées, débit,...) ainsi que divers informations concernant la mémoire. Il y a également un détail pour chaque point de terminaison, et la possibilité de lancer des tests de performance personnalisés.
Outil OpenAPI
Codewind propose également une extension nommée "Codewind OpenAPI" qui permet d'utiliser un générateur OpenAPI pour créer des API clients, des server stubs, ainsi que de la documentation HTML pour ces API.
Inconvénients et limites
Microclimate
- Microclimate est officiellement, depuis le 1er Décembre, obsolète. Il n'est donc plus mis à jour régulièrement. De plus, si vous tentez de créer une application avec Microclimate et de la déployer sur IBM Cloud, cela ne fonctionnera pas, le cloud IBM ne prend plus en compte les nouveaux projets Microclimate. Cependant les anciens projets fonctionneront toujours.
- Même s'il est possible d'exporter le projet sous un autre IDE que l'IDE web fourni par Microclimate, cela nécessite plusieurs commandes dont un Docker bind mount. Cela nécessite donc une étape supplémentaire et peut être un obstacle pour certains utilisateurs.
Codewind & Microclimate
- Lors du déploiement d'une application, il n'est possible de déployer que sur IBM Cloud (Microclimate & Codewind) et sur OpenShift (Codewind).
- Ces deux outils ne proposent que 5 langages, même si ces-derniers sont les langages les plus utilisés, pour certains projet nécessitant un langage non pris en compte cela peut poser problème.
Démonstration
[ Démonstration ]
Sources
- [1] : Description des spécificités de Microclimate.
- [2] : Site web officiel de Microclimate regroupant une rapide description ainsi que des tutoriels.
- [3] : Site web officiel de Codewind regroupant une rapide description ainsi que des tutoriels.
- [4] : Description d'un cycle de développement interne classique avec Docker.
- [5] : Description LSP
Veille Technologique 2019
- Année : VT2019
- Sujet : Microclimate, Codewind
- Slides :
- Démonstration : Démonstration
- Auteurs : Loic Schanen, Antoine Pelisson