阅读 205

远程开发新手向入门了解

解决的痛点

由于迭代的业务发展,会需要将系统进行拆分以便快速迭代开发。另外,开发机相对鶸的硬件条件,使得对应多个项目时力不从心。开发的过程中是否会遇到内存爆涨,CPU暴涨,造成开发效率降低。

所以我们寄希望于使用性能更强大的台式机或服务器来解决我们这个痛点。

远程开发模式

1. VSCode Remote SSH

Remote - SSH模式的原理是在服务器上运行VSCode,而开发机仅仅做编辑与展示功能。并且vscode直接集成了远程ssh环境。并且VSCode支持映射远程端口至本地。

2. Centos SMB 模式

在远程服务器上部署SMB服务,将远程文件夹映射为本地文件夹,使用开发工具直接在共享文件夹中进行操作。文件将会自动同步至远程服务器。

3. Webstorm Deployment SFTP 模式

使用Webstorm自带的开发模式,使用SFTP协议同步文件至远程服务器。

4. 部署 web 编辑器至开发服务器

可以使用code-server或者其他在线web开发工具,部署在开发服务器上,然后通过web网页打开开发服务器上的网址,使用浏览器编辑代码。

5. 使用 rsync 同步目录至开发服务器

使用rsync同步本地文件夹的文件到开发服务器上,仅仅将开发服务器作为一个编译运行环境。

开发服务器

1. PM2直接开启服务

使用PM2管理器开启服务,但是端口唯一,由于无法修改端口号造成开启相同服务的时候,需要手动修改端口号以避免端口侵占。

2. Docker直接运行开发目录

基于Node 12版本的Docker包,在外部指定映射端口号,直接使用Docker启动需要调试的开发目录,通过外部映射端口号或nginx反向代理进行访问。

开发者可以在自己的服务器上假设nginx,通过nginx反向代理服务指定开发环境为开发服务器上某个端口号。可以联结各个子系统分支。还可以通过切换反代的目的地进行各种系统切换。

优势:独立项目独立docker,可以自行重启服务,不同分支可以共存,并且随时切换分支。

3. Docker 创建一个虚拟环境运行

基于ubuntu 或 centos 创建一个docker虚拟机,将各个开发目录映射至虚拟机中,然后在虚拟机里面启动pm2管理各个子系统。

优势:独立ip,作为一个独立机器运行在网络上,对于开发者来说就是一台独立服务器。

方案选型

1. 开发机方案

开发工具不限,在开发服务器上部署SMB服务,开放共享,支持共享访问与vscode的remote ssh 方式接入开发服务器开发。

2. 开发服务器方案

  1. 首先部署SMB服务
  2. 开启SSH证书验证登录
  3. 设置SSH服务心跳保持链接
  4. 设定docker运行开发文件夹
  5. 初始化docker node包
  6. 使用开发服务器方案2,直接使用Docker运行开发目录

我的选择,方案2,为什么选择 开发服务方案2?

单独创建一个虚拟环境的确可以更好的分割系统,但是方案2,可以直接使用脚本起一个新服务。

独立的虚拟环境,需要自己进去重新初始化各种环境,个人认为,选型需要能快速的部署,快速开发。