新闻中心
8点思考,租服务器远程跑代码哪个靠谱?
2023-02-02
阅读()
来源:互联数据

直接远程到租用的服务器上写代码有什么好处?以前的公司都是在本地开发代码,最后移植到服务器上。最近发现好多公司都是直接远程到服务器上写代码,主要原因是因为有些编辑器自带SFTP,SCP等功能,可以远程直接编辑文件,小范围编辑可以用用,大范围就傻逼了,比如两层ssh跳转是很正常的事情,SFTP、SCP就完全没法联通了。


举个例子:我刚上手就没建自己的虚拟环境,为了解决类似办公软件只有Windows,但又得到Linux下写代码的情况。比如用企业微信,它不支持Linux,但如果用Linux机器写代码,就收不到及时消息。用Windows写代码,就只能远程到Linux机器上。这个时候远程过去写代码就可以少切换电脑。哪怕每个人都有一台Windows+一台Linux,远程需求也是存在的,就因为你要截屏发代码发日志复制粘贴函数名什么的都要用Windows的即时通讯。


租服务器跑代码免费测试:http://www.hkt4.com/dedicated/hkcloud.html

租服务器跑代码哪个靠谱


一、为什么推荐租用服务器跑代码更靠谱?


1、第一次使用服务器一定要建一个属于自己的虚拟环境


我刚上手就没建自己的虚拟环境,刚巧我运行的程序需要的python版本更高,需要我安装更高版本的python,而我不想把旧环境覆盖掉,因此需要把旧环境换个名字,而我没有权限,在反复试错之后,我询问了师兄,师兄告诉我要建一个自己的虚拟环境,用这个虚拟环境去装包。。。建议一个程序匹配一个虚拟环境,不然装包装库很麻烦。


$ module load anaconda3

$ conda create --name 你的环境名 python=3.7.9 #这样就建好了一个装有python3.7.9版本的虚拟环境,当然也可以不写最后一句,等环境建好之后再装


2、建完要看程序里还有哪些包需要装


可以用:$ pip list


命令列出当前python环境里已经装了哪些包。直接用pip install命令就可以安装想要的包和版本号。注意一定要装完整,不然会报错,使用作业提交系统运行程序,程序报错之后不能直观地反映出来,因此装包这一步还是要仔细检查不要有遗漏。


3、使用bsub等一系列命令提交脚本去运行


我运行的是.sh文件,使用GPU,需要在文件中加入让服务器看得懂的命令,包括选择哪个队列。要在.sh文件中开头输入这些命令。


#!/usr/bin/env bash

#BSUB -J 当前文件名(后缀是.sh)

#BSUB -q 队列名

#BSUB -o %J.out

#BSUB -e %J.err

#BSUB -gpu "num=1:mode=exclusive_process:aff=yes"

module load anaconda3

python 你要执行的文件


就这样很多用户成功开启了第一步。后续运行代码遇到的问题我同样会整理到互联数据文章中,如果有不规范的欢迎指出,希望能和大家一起进步!


二、租服务器跑代码的优势:


1、减少服务器的数量,提供一种服务器整合的方法,减少初期硬件采购成本。比如,一个项目代码量>=1MB 很正常,一个源代码超过100KB也很常见,你同时打开几个这样的远程文件,每一轮修改就传一次不觉得开销大么?或者你反复提交到svn、git上滚版本,产生一堆用于调试的垃圾版本,你觉得好么?


2、简化服务器的部署:当运行环境,小程序没问题,大程序你又依赖这个服务,又依赖那个模块,还有各种配置的,这时候你还坚持使用svn/git同步代码,或者scp远程编辑的话,就有点隔鞋搔痒了。租用服务器写代码能减少管理和维护工作,降低管理费用。


3、提高服务器资源的利用率:使用本地编辑器编辑/同步远程文件和直接在终端上编辑比较起来,就像玩星际争霸的时候你把基地建造在离矿比较远的地方,而对方直接把基地建造在矿边上一样被动,虽然都可以打下去,但是随着战局的复杂化,越到后面你会变得越被动。


4、减少代码编译时出错的几率:编译有问题了,里面修改再编译,试运行跑出问题来了,立马修改两行再试,不对再修改两行加一些日志再试,直到正确再返回编辑,这个循环如果其中1-2个环节比较麻烦的话,会让你的思路经常被打断,来处理那几个麻烦的小环节,久而久之效率奇低。


5、通过动态资源配置提高IT对业务的灵活适应力:有时候写代码不光是编辑,还要在文件中搜索各种符号,比如你用scp远程打开一个文件,你就只能编辑下,没法在那个目录下搜索各种符号。使用 svn/git 镜像一份代码在本地虽然可以解决各种符号搜索问题,但是你每次操作同步所花费的时间却得不偿失。


6、提高可用性,带来具有透明负载均衡、动态迁移、故障自动隔离、系统自动重构的高可靠服务器应用环境,减少服务器或应用系统的停机时间


7、支持异构操作系统的整合,支持老应用的持续运行。支持快速转移和复制虚拟服务器,提供一种简单便捷的灾难恢复解决方案。


8、在不中断用户工作的情况下进行系统更新,直接在终端上编辑可以彻底的加快你的 edit-compile-edit 循环,比如我在终端下 vim里配置按下 F7就开始编译,有错误直接输出在vim下面的quickfix windows中,一个快捷键就可以跳转到错误的代码,修改后再次 F7编译,通过后 F5直接运行,看一下效果,还好的话,又返回编辑状态。scp/svn/git这类同步工具就傻逼了。

相关阅读