【瞎折腾】模拟远程云端开发的一种实现思路

模拟远程云端开发的一种实现思路

背景

近期使用idea开发java的时候经常会出现卡顿,甚至会出现闪退的情况,就考虑是否可以换一种开发工具,比如vscode

同时考虑到本地磁盘告急,就想着能不能把vscode放到服务器端,本地通过ssh连接然后再开发。

换句话说就是把所有的压力放到服务器端,就叫做内网环境的云端开发吧。

要求(期望达到的效果)

  1. 可以远程连接,即要求对端安装sshd服务
  2. 安装好基本环境,如java环境需要安装好jdk, maven, git等
  3. 可以远程编译、调试、运行
  4. 各用户工作空间隔离、插件隔离、vscode隔离
  5. 需要实现用户到服务器、用户到代码服务器的免密登录

带来的好处

简单说就是告别红色磁盘,告别内存告警,告别应用闪退!!!

拆开了说就是:

  1. 远程调试、编译、运行,产生的内存占用、jar包空间占用均在服务器端,极大的减轻了本地磁盘空间和内存的压力,同时发挥了服务器的CPU和内存的优势
  2. 相对于idea,更轻量便捷,但是从idea到vscode的过渡需要一定的周期,vscode强大的插件库几乎没有解决不了的问题
  3. 远程可连接,如果开放了外网端口可实现随处可编写代码
  4. 解决了本地编译慢和卡顿的问题
  5. 统一了jar包下载和存储的目录,统一了jar包下载源,提高了空间利用率
  6. 远程提供了运行的基础环境,本地仅需要安装vscode即可实现开发环境的搭建,本地不再需要配置额外的开发环境,简化了环境搭建的过程,即使是复制镜像也就是一行命令的事
  7. 迁移方便,只需要迁移镜像和对应目录即可,环境相关内容都在容器内不受影响

需要处理的问题

  1. 插件的安装及配置
  2. 用户空间隔离的实现方案
  3. 编译、运行、调试过程中遇到的问题解决
  4. 多用户在同一个机器上运行存在的端口冲突问题
  5. 服务注册及互联网络问题、
  6. 到服务器和代码服务器的免密登录的处理和实现

方案

考虑前后端都需要:

  1. 每个用户一个容器,需要启动n个容器
  2. 一个容器对应前端,一个容器对应后端,安装好对应的环境, 需要启动2个容器
  3. 一个容器对应两个用户,一个前端一个后端,需要启动n/2个容器

只考虑后端:

  1. 每个用户一个容器,需要n个容器
  2. 所有用户一个容器,需要1个容器

实现过程

未完待续。

你可能感兴趣的:(工作记录,vscode,java)