Tutoriel sur la découverte d'Eclipse CHE, un environnement de développement sur le Cloud

| Stanislas Zarka (Soat) | Soat |

Développeur, votre DSI n'a pas les moyens de vous fournir un environnement de développement consistant ?

Vous voulez expérimenter de nouvelles technologies et réaliser rapidement des POC sans vous tracasser avec la configuration fastidieuse d'un environnement de développement ?

Vous souhaitez pouvoir retoucher votre code depuis n'importe où et en visualiser le rendu sur n'importe quel device ?

Eclipse Che et cet article sont faits pour vous.

Pour réagir à cet tutoriel, un espace de dialogue vous est proposé sur le forum : Commentez

- Titre : Tutoriel sur la découverte d'Eclipse CHE, un environnement de développement sur le Cloud

- Auteurs : Stanislas Zarka (Soat), Soat

- Parution : 19 mai 2015

- Licence : Copyright ® 2015 Stanislas Zarka. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- II. Présentation

- III. Fonctionnalités

- IV. Apports

- V. Démonstration

- VI. Conclusion

- VII. Bibliographie

- VIII. Remerciements

I - Introduction

Eclipse Che- ou Che - est un IDE Cloud open source accessible depuis un navigateur Web. Il se présente sous la forme de services REST et d'un client JavaScript. Che permet aux développeurs de s'affranchir de l'installation et de la configuration d'un environnement de développement. Che dispose d'outils transverses comme Git et Docker, permettant au développeur de retrouver un environnement de développement complet pour développer, déboguer, lancer, tester et profiler ses applications. Par ailleurs, l'organisme hébergeant cet IDE - Codenvy - permet la sauvegarde de cet environnement de travail sur le Cloud, ce qui rend ce dernier accessible depuis n'importe quelle plateforme disposant d'un navigateur Web : PC, Mac, Chromebook, tablette, smartphone, etc.

Che a notamment été un des sujets des conférences du Devoxx France 2015.

II - Présentation

Depuis la création d'Eclipse, en 2004, et l'avènement du Cloud Computing, ces dernières années, de nombreuses organisations ont tenté de faire cohabiter les deux principes : permettre au développeur de concevoir et tester ses applications à partir d'un IDE accessible sur le Cloud, c'est-à-dire depuis tout device possédant un accès Internet haut débit. Cloud9, Codeanywhere, Codenvy sont autant de ces sites Web. Le sujet de cet article n'est pas de comparer ces différents acteurs du développement sur le Cloud, mais d'approfondir le cas du plus récent des trois, en mettant l'accent sur son IDE : Codenvy, et son IDE Eclipse Che.

Codenvy est une société fondée en janvier 2013, comprenant 50 employés et dont le siège se situe à San Francisco. C'est en octobre 2014 que Codenvy annonce l'intégration d'Eclipse Che, dont la réalisation a commencé en 2009 chez Exo Platform. Eclipse Che est alors un sous-projet du projet Eclipse Cloud Development(ECD). Le but d'ECD est de mettre au point les technologies, plateformes et outils nécessaires au développeur Cloud afin de réaliser son livrable, à travers les plateformes et infrastructures Cloud (CloudFoundry, OpenShift, Stratos, etc. ; AWS).

III - Fonctionnalités

Les principales features de Codenvy - dont Eclipse Che fait partie - ont pour but de fournir un conteneur basé sur des dockers afin d'affranchir le développeur des contraintes que représentent la mise en place et la maintenance d'un serveur d'application. Codenvy propose des environnements de runtime prédéfinis pour plus de trente langages de programmation dont Java, JavaScript, PHP, Python, Ruby, C++ ou Go.

Le développeur a donc accès à :

- un IDE - Eclipse Che - similaire à celui de bureau, c'est-à-dire comprenant de nombreux raccourcis, une coloration syntaxique, l'autocomplétion, du code folding, un système de quickfix, etc. ;

- un outil de versionnage de code (Git) ;

- des environnements de runtime ;

- des outils de débogage ;

- des dockers configurables au besoin de l'utilisateur (aussi bien basés sur les Dockerfiles que pullés depuis Docker Hub), ce qui rend le nombre d'environnements disponibles différents considérable.

Il est aussi possible de partager la configuration de son environnement de développement via l'envoi d'un lien vers une Factory, sorte de workspace temporaire. Chaque utilisateur garde alors une version de son projet, isolée des autres. Il est possible de rajouter des droits d'accès, des restrictions d'actions, un guide d'utilisateur concernant le build et les processus, des environnements de runtime par défaut (en associant un Docker script au projet), ou la RAM recommandée pour le projet (intéressant dans le cas d'un compte non payant).

IV - Apports

Les plateformes de runtime migrant peu à peu vers le Cloud (Heroku ou AWS par exemple), ce dernier a prouvé sa faculté d'améliorer la modularité et la scalabilité des applications. Tout porte également à croire que les coûts s'en retrouvent diminués (notamment ceux des licences utilisateurs) et que le produit se retrouve plus rapidement sur le marché qu'un autre, développé quant à lui à partir d'IDE de bureau. Le développement sur le Cloud reste toutefois jeune et réserve donc des surprises pour l'avenir. Parmi les différents projets réalisés à l'aide d'un IDE sur le Cloud, on peut citer HubSpot, Nuxeo ou BigML.

Concernant le développeur, s'il utilise un environnement de développement sur le Cloud, il constatera l'allègement en CPU de son ordinateur de travail. Par ailleurs, il peut retrouver son workspace partout où il disposera d'un device connecté, d'où sa mobilité améliorée. Par ailleurs, l'interface des IDE sur le Cloud n'a rien à envier aux standards du développement de bureau, compte tenu les apports esthétiques proposés par HTML 5/CSS 3, JavaScript et ses nombreux frameworks. Étant donné la faible difficulté de configurer un environnement particulier, il aura également la possibilité d'expérimenter et de réaliser des POC rapidement et efficacement sur les nouveautés.

V - Démonstration

Il s'agit simplement ici de montrer l'allure de Che et son intégration dans Codenvy.

La première étape consiste en la création d'un compte sur Codenvy. Lors de la première authentification, un tutoriel clair explique le fonctionnement d'Eclipse Che. À travers une application Web JEE/Spring de présentation, on saisit les différentes commandes accessibles, qui sont similaires à celles d'un IDE de bureau. On retrouve dès lors globalement les mêmes principes qu'Eclipse ou IntelliJ IDEA.

Voici le projet proposé en tutoriel :

Voici le rendu sur navigateur de cette application :

On décide de créer une application Web très simple Angular JS 1.3.14 pour aller plus loin :

Il s'agit d'un Hello World dont le rendu sur navigateur s'affiche ici :

Le versioning de code s'effectue via l'onglet Subversion ou l'onglet Git. Voici l'exemple d'un commit avec l'ajout d'un nouveau fichier start.html au repository Git :

Par ailleurs, les features communautaires de Codenvy (gestion des utilisateurs, partage des environnements, etc.) sont disponibles dans le Dashboard via un clic sur le nuage en haut à gauche d'Eclipse Che.

L'onglet Projects dans le Dashboard contient les projets et leurs caractéristiques :

L'onglet Factories contient l'essentiel afin de partager sa configuration :

L'onglet Workspaces contient l'ensemble des utilisateurs et leurs droits pour chaque projet :

On s'aperçoit que la prise en main de Codenvy et la compréhension de ses features sont relativement rapides. La meilleure expérience reste bien sûr de l'essayer soi-même ; ce que je vous invite à faire, si ce n'est pas déjà le cas.

VI - Conclusion

Le but de ce populaire IDE sur le Cloud (125 000 utilisateurs pour 350 000 projets au début 2015) n'est pas de remplacer l'IDE standalone de bureau. Sur les 22 millions de développeurs professionnels, plus de 99 % du travail est encore fait sur des IDE de bureau. C'est pour l'instant une solution de plus, visant à permettre à l'utilisateur d'utiliser le bon outil au bon moment. Toutefois, il n'est pas impossible que l'industrie ait pour focus un jour d'assurer la transition du développement de bureau vers le développement sur le Cloud.

VII - Bibliographie

- Eclipse Flare

- Introduction au développement Cloud avec Eclipse Che

- Utiliser le plugin Eclipse de Codenvy

- Développement sur le Cloud - 9 pièges à connaître avant de démarrer

On trouve également des vidéos pertinentes sur YouTube :

- Chaîne de Codenvy

- Eclipse Che par Eclipse Foundation

Par ailleurs, je souhaite remercier particulièrement Sun Tan, développeur Java pour la SSII Serli, committer Codenvy/Che et acteur du Devoxx France 2015, pour sa disponibilité et ses explications.

VIII - Remerciements

Cet article a été publié avec l'aimable autorisation de la société Soat.

Nous tenons à remercier Claude Leloup pour sa relecture attentive de cet article et milkoseck pour la mise au gabarit.