New Products

Immersion dans JetBrains Gateway

Read this post in other languages:
English, 日本語, 한국어, Deutsch, Русский, 简体中文

Nous avons récemment annoncé la prise en charge du développement à distance dans les IDE JetBrains. Cela signifie que vous pouvez désormais héberger votre code source, vos chaînes d’outils et un IDE basé sur IntelliJ s’exécutant en tant que service sur un serveur distant. Un client léger local, basé sur la plateforme IntelliJ, propose une interface utilisateur avancée complète pour éditer, créer, exécuter, tester, déboguer, et plus.

Tout ce dont vous avez besoin pour travailler sur votre code peut être disponible sur un serveur physique ou une machine virtuelle. Vous bénéficiez ainsi d’environnements de développement propres et reproductibles, de la puissance d’une machine serveur et de la possibilité de travailler de n’importe où.

Si vous n’avez pas encore lu notre annonce sur la prise en charge du développement à distance, il est encore temps de la consulter maintenant.

Aujourd’hui, nous vous proposons de vous présenter plus en détail le workflow de développement à distance géré par la nouvelle application JetBrains Gateway.

Le Développement à distance avec JetBrains Gateway

Le développement à distance de JetBrains utilise une connexion à un serveur via SSH. L’IDE est installé comme un service backend sur la machine distante, où il charge le projet sans afficher d’interface utilisateur. Un client léger s’exécute localement, se connecte au backend de l’IDE et offre une interface utilisateur avancée complète, tandis que tout le traitement se fait à distance.

L’ensemble de ce processus est géré par JetBrains Gateway, une nouvelle application autonome et compacte qui vous offre tout ce dont vous avez besoin pour commencer à développer à distance. Comme elle est autonome, c’est le seul élément que vous avez à installer localement pour commencer à travailler. C’est une solution idéale pour les ordinateurs portables moins puissants ou si vous ne souhaitez pas installez un IDE complet. 

JetBrains Gateway est également fournie sous forme de plugin avec un plusieurs des IDE JetBrains. Avec cette version bêta initiale, vous pouvez démarrer une session de développement à distance directement depuis l’écran d’accueil d’IntelliJ IDEA Ultimate, PyCharm Professional, GoLand, PhpStorm et RubyMine. En outre, l’application Gateway autonome peut installer et gérer CLion et WebStorm. La prise en charge sera prochainement étendue à d’autres IDE.

Gateway installe le backend d’IDE distant et le client léger local, puis les connecte ensemble via SSH. Elle commence par établir la connexion SSH. Spécifiez un hôte et un identifiant, puis indiquez une clé ou un mot de passe, et Gateway se connectera au serveur distant. Elle vérifie si un backend d’IDE est déjà installé et télécharge une nouvelle version sur jetbrains.com si ce n’est pas le cas.

Pour pouvoir lancer le backend de l’IDE, Gateway doit connaître le répertoire du projet. Vous pouvez parcourir le système de fichiers distant et choisir un répertoire ou, si le projet n’est pas encore disponible, utiliser le terminal intégré pour cloner le projet à partir de votre système de contrôle de version.

Une fois la version de l’IDE et le répertoire du projet sélectionnés, Gateway téléchargera l’IDE sur le serveur distant, le décompressera et le lancera avec votre projet chargé. Puis il télécharge, met en cache et lance localement une version correspondante du Client JetBrains.

Le Client JetBrains fonctionne localement et fournit l’interface utilisateur pour le backend de l’IDE. L’application est basée sur la plateforme IntelliJ et dispose des fonctionnalités d’un IDE basé sur IntelliJ : elle offre les mêmes outils d’édition, de saisie semi-automatique du code, de navigation, d’inspection et de refactorisation qu’un IDE local, mais tous les fichiers sont hébergés à distance et le traitement du langage s’effectue sur le serveur distant. Il s’agit du même Client JetBrains que celui que nous utilisons pour Code With Me, avec quelques nouveautés en plus. Il peut désormais afficher localement toutes les boîtes de dialogue et fenêtres d’outils du backend de l’IDE dans le client d’IDE enrichi, ce qui permet d’accéder à toutes les fonctionnalités du backend de l’IDE distant.

Une fois que vous avez fini de travailler avec votre code, vous pouvez simplement fermer le Client JetBrains. Le backend de l’IDE continuera à fonctionner et vous pourrez facilement vous reconnecter en cliquant sur la connexion récente répertoriée dans Gateway.

Configuration du serveur

Jusqu’à présent, nous n’avons pas beaucoup abordé la question du serveur distant. Actuellement, le développement à distance nécessite un serveur Linux, mais cela va changer à l’avenir (le client fonctionne sous Windows, macOS et Linux). En dehors de cela, vous pouvez utiliser le serveur de votre choix : physique ou virtuel, hébergé localement, dans un centre de données ou dans le cloud.

L’un des avantages de l’utilisation de machines virtuelles ou de conteneurs est la possibilité de reproduire un environnement et de le partager avec votre équipe. Pour aider votre équipe DevOps, le développement à distance JetBrains comprend un script d’aide qui peut être utilisé pour préparer un environnement existant, en chargeant le projet, en téléchargeant les dépendances et en lançant l’indexation et la compilation. L’image résultante est maintenant prête et vous pouvez commencer à programmer immédiatement.

Si vous préférez éviter d’écrire vos propres scripts, JetBrains Space, notre solution complète pour les équipes et les projets logiciels, propose maintenant des environnements de développement cloud. Tout projet hébergé dans Space peut facilement être transformé en environnement de développement, avec une prise en charge de la phase de préparation du projet par le chargement, la compilation, l’indexation, puis l’enregistrement de l’environnement sous la forme d’un instantané prêt à l’emploi pour commencer à coder. Lisez l’article d’annonce de Space pour en savoir plus.

Lancez-vous dans le développement à distance avec l’application autonome JetBrains Gateway ou téléchargez la version 2021.3 de votre IDE IntelliJ préféré. Consultez la documentation et faites-nous part de votre expérience !

Questions fréquentes

Où en est la prise en charge du développement à distance ?

Vous avez peut-être remarqué les mentions « bêta » figurant sur les captures d’écran. La prise en charge du développement à distance est intégrée à la plateforme IntelliJ elle-même et concerne un très grand nombre de fonctionnalités dans tous nos IDE. Bien que nous soyons convaincus que cela permette de gérer la plupart des scénarios, il est possible que des problèmes surviennent en cours de route. Néanmoins, nous tenons à ce que les développeurs puissent rapidement disposer de ces fonctionnalités.

JetBrains Gateway est fournie sous forme de plugin dans un certain nombre d’IDE. Certains IDE (CLion et WebStorm) n’intègrent pas ce plugin car des tests sont encore en cours de réalisation. Vous pouvez tout de même essayer Gateway avec ces IDE en utilisant l’application autonome.

Enfin, quelques-uns de nos IDE ne fonctionnent pas encore avec le développement à distance : AppCode, DataGrip, DataSpell, Rider et Android Studio. Nous travaillons activement pour rendre leur prise en charge possible prochainement.

Comment fonctionnent les licences pour le développement à distance ?

Le développement à distance est inclus dans le cadre d’un abonnement payant existant. Une vérification de la licence est effectuée lorsque le client se connecte à une instance de backend de l’IDE en cours d’exécution. Les cas d’utilisation à des fins d’automatisation, comme l’utilisation du backend de l’IDE pour créer et préparer un serveur ou une image de serveur à distance, ne nécessitent pas de licence. Cependant, une licence est nécessaire pour utiliser le backend de l’IDE de manière interactive avec le Client JetBrains.

Le développement à distance inclut-il le développement collaboratif ?

Pas encore, mais nous avons prévu de l’ajouter. Le développement à distance repose sur la même technologie que Code With Me et JetBrains Client est le même client que celui utilisé pour les sessions Code With Me. 

Toutefois, les cas d’usage sont très différents. Code With Me est conçu pour donner accès à certaines fenêtres d’outils et boîtes de dialogue à plusieurs utilisateurs simultanés, éventuellement avec des vues différentes, alors que le développement à distance doit afficher toutes les fenêtres d’outils et boîtes de dialogue à un seul utilisateur. L’équipe s’est uniquement concentrée sur ce scénario pour la version initiale.

Le développement à distance offre-t-il l’expérience complète d’un IDE de JetBrains ?

Oui ! Même si vous travaillez avec un client léger et un backend d’IDE sans interface utilisateur, toutes les fonctionnalités clés, fenêtres d’outils et boîtes de dialogue sont à votre disposition. La mise en évidence des éléments de syntaxe, la navigation, la saisie semi-automatique du code, les inspections, les actions Alt+Entrée, les correctifs rapides, les actions contextuelles, les refactorisations, les configurations d’exécution, la prise en charge de l’exécution et du débogage, les fenêtres de test et d’outils tels que Gradle et Maven, les plugins… Tout est disponible pour le développement à distance.

Le développement à distance inclut également le transfert de ports : vous pouvez ainsi visualiser les projets en cours d’exécution à distance via votre navigateur local.

Y a-t-il d’autres options d’interface utilisateur, web ou iPad ?

Le développement à distance a été spécialement conçu pour fonctionner avec le Client JetBrains en utilisant la plateforme IntelliJ, afin de fournir une application client à la fois riche et familière, avec toutes les fonctionnalités des IDE de JetBrains, y compris la personnalisation et le paramétrage avec des thèmes et des plugins (automatiquement importés de tout IDE installé localement). En réutilisant l’approche derrière Rider et Code With Me, le protocole peut être basé sur des« modèles d’affichage » légers, ce qui permet une expérience utilisateur agréable et réactive. Nous n’avons donc pas l’intention de mettre à disposition un frontend web.

Il est possible d’utiliser Projector pour accéder à un IDE de JetBrains via un navigateur web. Notez que Projector fonctionne à un niveau inférieur au protocole de développement à distance, il a donc une latence d’interface utilisateur plus élevée et il utilise beaucoup plus de bande passante. Autre limitation de Projector : il ne permet pas d’importer vos paramètres et les plugins d’un IDE installé localement.

Les plugins sont-ils pris en charge ?

La plateforme IntelliJ dispose d’un important écosystème de plugins, qui continuent de fonctionner avec le développement à distance. Si un plugin est conçu pour augmenter les fonctionnalités de l’IDE, par exemple en ajoutant la prise en charge d’un nouveau langage ou de nouvelles inspections et mises en évidence, il peut être installé sur le backend de l’IDE et ces fonctionnalités seront automatiquement disponibles dans le Client JetBrains. Toutes les nouvelles inspections, actions Alt+Entrée et autres fonctionnent avec le client de la même manière que si elles étaient exécutées avec un IDE local. L’installation des plugins peut également être automatisée par le biais d’un script dans le backend de l’IDE.

Les plugins qui modifient l’interface utilisateur de l’IDE, comme les thèmes, peuvent être installés sur le Client JetBrains plutôt que sur le backend de l’IDE. Les plugins d’éditeur comme IdeaVim fonctionnent également sur le client.

Quels systèmes d’exploitation sont pris en charge ?

Actuellement, le développement à distance de JetBrains nécessite un serveur Linux, bien que le client fonctionne sur Windows, macOS et Linux. Nous allons ajouter la prise en charge des serveurs Windows et macOS à l’avenir.

Puis-je héberger des serveurs distants dans le cloud ?

Bien sûr ! Le serveur distant peut être un serveur physique ou une machine virtuelle sur un ordinateur de bureau ou dans le cloud. Il peut être créé sous la forme d’une image Docker, et le backend de l’IDE comprend des scripts pour le téléchargement des dépendances, la compilation et l’attente de l’achèvement des index.

Y a-t-il des fournisseurs tiers proposant l’orchestration pour le développement à distance de JetBrains ?

JetBrains Space est actuellement le seul outil offrant l’orchestration de serveurs à distance, en utilisant un Dockerfile pour convertir un référentiel en une machine virtuelle prête à l’emploi. Nous échangeons avec d’autres fournisseurs au sujet de l’intégration et nous vous en dirons plus à l’avenir.

Auteur de l’article original en anglais :

Delphine Massenhove

Matt Ellis

Discover more