VT2019 Microclimate Codewind: Difference between revisions

From air
Jump to navigation Jump to search
No edit summary
No edit summary
Line 45: Line 45:
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.
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:Microclimate_code_choice.png|500px|thumb|left|Choix du langage lors de la création d'un nouveau projet]]
[[File:Select template.png|500px|thumb|right|Choix du template de projet avec l'outil Codewind sous VSCode]]


====Complètement intégré dans un conteneur Docker====
====Complètement intégré dans un conteneur Docker====

Revision as of 10:21, 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.

Logo Microclimate

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).

Logo Eclipe Codewind

Abstract

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.

L'outil pour Visual Studio Code est open source (license EPL-2.0)

Fonctionnement

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.

Choix du langage lors de la création d'un nouveau projet
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.

Editeur Web fourni par Microclimate

Application tournant dans Docker dès sa création

Lors de la création ou l'important 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 (code, build, déploiement, exécution) est imagée ci-dessous. Plus cette dernière est rapide, plus le développement d'une application sera productive. Sous Microclimate, cette dernière a été pensée pour être le plus rapide possible et é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/). Cela permet de facilement déployer notre application sur IBM Cloud ou IBM Kubernetes Service. 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é 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 ou d'IBM Kubernetes Service comme nous pouvons voir ci-dessous.

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.

Métriques de performances fournies par Microclimate

Inconvénients et limites

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] : LSP

Veille Technologique 2019