Il Remote Development extension pack è un’estensione di Visual Studio Code che consente di utilizzare un container, una macchina remota o il sottosistema Windows per Linux (WSL) come ambiente di sviluppo.

Tra le principali funzionalità vi sono:

  • Sviluppo sullo stesso sistema operativo di produzione o su hardware con capacità più elevate;
  • Sandbox per l’ambiente di sviluppo per non modificare la configurazione della macchina locale;
  • Facilità nell’inserimento di nuovi collaboratori nell’ambiente di sviluppo;
  • Utilizzo di strumenti non disponibili sul proprio sistema operativo;
  • Sviluppo di applicazioni per Linux usando il sottosistema Windows per Linux;
  • Accesso all’ambiente di sviluppo da più macchine;
  • Eseguire il debug di un’applicazione remota in hosting o in cloud;

Nello specifico le 3 estensioni sono:

Remote WSL: estensione che consente di usare Windows Subsystem for Linux come ambiente di sviluppo..

Si potranno sviluppare ed eseguire la proprie applicazione Linux su Windows ed effettuarne il debug. Gli sviluppatori avranno quindi a disposizione strumenti per modificare file in WSL o in un Windows filesystem “mounted” (ad esempio /mnt/c).

I comandi e le estensioni saranno eseguiti direttamente all’interno dell’ambiente Linux, dunque non ci si dovrà preoccupare delle binary compatibility o di altre problematiche derivate dallo sviluppo multipiattaforma.

Remote SSH: permette di accedere ai sistemi in remoto (directory, VM, container) eseguendo un server SSH. Sfruttando la Secure Shell è possibile accedere a sistemi più potenti, o specializzati, disponibili solo in remoto.

Se si sta lavorando per esempio ad un progetto di deep learning è necessario avere accesso ad una GPU molto potente configurata con tutti i tool ed i framework necessari per eseguire l’addestramento dei modelli tramite dataset su larga scala. Tale ambiente è ovviamente disponibile quasi esclusivamente tramite un Cloud provider. Lo sviluppatore potrà quindi accedere a tale ambiente da remoto, direttamente da VS Code.

Remote Containers: permette di usare Docker come un development container. I sistemi di container possono infatti diventare degli ottimi ambienti di sviluppo.

Con Remote Containers si potrà quindi sviluppare in modo completamente isolato dal proprio sistema, senza impattare eccessivamente sulle risorse hardware disponibili e con un insieme di strumenti facilmente riproducibile.