VT2019 Microclimate Codewind

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=

=Synthèse=

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)

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

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 trois langages gérés (Java, Node et Swift) afin de fournir toutes les informations et l'assistance nécessaire au codage avec ces langages.

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 à l'extérieur du conteneur Docker et peut donc être facilement importé dans l'éditeur de code voulu 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'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.

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.

Inconvénients et limites
=Démonstration=

=Sources= 

=Veille Technologique 2019=
 * Année : VT2019
 * Sujet : Microclimate, Codewind
 * Slides :
 * Démonstration :
 * Auteurs : Loic Schanen,  Antoine Pelisson