
Un environnement de développement est indispensable au quotidien, mais il peut vite devenir complexe à gérer. Nous allons voir ensemble, dans un billet de blog en 3 parties, comment améliorer son confort et sa productivité !
Réunions incessantes, environnements Docker différant légèrement sur chaque machine, mises à jour système intempestives : garder un poste de développement fiable et cohérent devient vite un combat quotidien.
À chaque nouveau projet, il faut ré-installer les mêmes outils, les mêmes CLI, reconfigurer les mêmes SDK ou frameworks. Et surtout, espérer que la machine locale tienne la charge quand les tests, le linter et la base de données fonctionnent en même temps. Le tout, avec des situations de télétravail ou de mobilité dans lesquelles les personnes se retrouvent à développer depuis un ordinateur portable parfois proche de l’obsolescence, derrière un VPN capricieux.
Dans cette série d’articles, l’objectif est de transformer cette réalité en s’appuyant sur un environnement de développement complet hébergé dans le cloud et accessible depuis n’importe quel navigateur grâce à VS Code Server.
L’idée est de disposer d’une « station de travail » distante, puissante et, si besoin, reproductible et indépendante.
Ce premier chapitre montre comment déployer simplement et manuellement une instance Public Cloud et y installer VS Code Server. Les chapitres suivants traiteront de sa sécurisation et de son automatisation.
1. Déploiement de l’instance
Pour les premiers tests, afin de prendre en main l’environnement et de le tester, il peut s’avérer judicieux d’opter pour une instance assez modeste, de type Discovery. Une instance d2-2 sera ici utilisée. 1vCPU et 2 Go de RAM peuvent être suffisants.
2. Installation de la partie applicative
La source de vérité pour les étapes suivantes est le GitHub du projet vscode-server : https://github.com/coder/code-server
Plusieurs possibilités existent pour l’installation. Dans ce chapitre, pour simplifier le déploiement et pour les personnes peu habituées à Docker, l’installation se fera via le script d’installation « natif », sans utiliser de conteneurs.
ubuntu@vscode-server:~$ sudo apt update && sudo apt upgradehttps://code-server.dev/install.sh | sh |
Cette étape suffit à installer le nécessaire. Activez maintenant le service et vérifiez son bon fonctionnement.
ubuntu@vscode-server:~$ sudo systemctl enable --now code-server@$USERcode-server@ubuntu.service - code-server |
3. Validation de la configuration
À ce stade, le service est opérationnel, il reste à en finaliser la configuration, notamment la création du dossier qui contiendra le code ainsi que l’authentification.
ubuntu@vscode-server:~$ mkdir workspace ubuntu@vscode-server:~$ cat ~/.config/code-server/config.yaml |
Il est ici nécessaire de placer un mot de passe sécurisé et de vérifier que la bind-addr correspond à la configuration souhaitée.
Si vous souhaitez tester directement le service en l’état, utilisez 0.0.0.0:8080. Relancez ensuite le service et accédez à l’interface via http://<IP_PUBLIQUE>:8080.
Après avoir fourni dans la fenêtre d’authentification le mot de passe présent dans le config.yaml, vous accédez directement à VS Code dans le navigateur.
Partant de ce déploiement, vous pouvez donc ici répondre, partiellement en l’état, à la problématique d’un environnement de développement stable.
À ce stade, il est possible de cloner directement vos repositories GitHub ou d’utiliser le dossier workspace pour les cloner.
C’est d’ailleurs ce qui est recommandé pour davantage de pérennité, comme vous pourrez le voir dans le second chapitre.
Pour réaliser un commit de test via l’interface vscode-server, vous devez configurer git en local (juste une fois) pour que l’authentification du remote repository s’effectue correctement.
ubuntu@vscode-server:~$ git config user.email “mail@foo.bar”ubuntu@vscode-server:~$ git config --global user.name"John Doe" |
Dès cette étape, vous pouvez utiliser l’environnement de développement distant avec vscode-server. Et ce, en profitant de quasiment toutes les fonctionnalités dont vous pourriez disposer en local, mais avec les avantages d’un environnement dédié à cet usage.
⚠️ Rappel : en l’état, le déploiement fait ici n’est pas en statut « production ready » !
Le but de ce premier chapitre est de découvrir le service, les manipulations vous étant proposées pour vous permettre de vous familiariser avec l’environnement. Ainsi, veillez à ne pas opérer le service tel que déployé ici plus que quelques heures !
Il sera nécessaire de sécuriser l’environnement, puisqu’il est exposé directement sur Internet. C’est l’objet des chapitres suivants.
Ce premier chapitre se termine avec un environnement de développement opérationnel, déjà capable de supporter un vrai projet applicatif !
L’instance est en ligne, VS Code Server répond dans le navigateur, l’espace de travail est prêt et le premier dépôt a été cloné et ouvert comme sur un poste local. Cette base montre qu’il est possible de s’abstraire du matériel pour gagner en portabilité et partager plus facilement une configuration commune au sein d’une équipe ou d’un poste de développement nomade.
Dans les prochains chapitres, cet environnement au minimum viable sera progressivement renforcé avec du stockage persistant, des mécanismes de sauvegarde ainsi qu’un accès sécurisé en HTTPS. Il sera ensuite entièrement automatisé via de l’Infrastructure as Code, afin de passer d’un simple test technique à une véritable plateforme de développement prête pour la production interne.

Rémy Vandepoel
Let's talk servers, instances, containers, and the magic we can do with them!