部署工具,可以说非常多,比如最庞大的应该属于K8S了,还有另外一种的就是宝塔等,为啥还要介绍PasteSpider呢?
PasteSpider是一款使用NET8.0开发的部署工具,她可以把你的项目部署到Windows服务器或者Linux服务器上!
你的服务可以以容器(docker/podman),Systemd(linux服务),Service(windows服务),甚至是IIS(Windows)在服务器上运行!
而需要驾驭这个工具,你只要5分钟即可上手,你也不用担心相关知识没有地方找寻!
说一堆不如拿一个实际案例来说明下,就以贴代码网站为例,我们都知道做开发的,特别是测试服,那升级频率,可以说是非常高的!那么有人说了,为啥不弄CI/CD,就是那种推送代码上去,自动部署的!PasteSpider也是支持CI/CD的,只是需要配置下,这里先不讨论这种情况!
拿贴代码网站的案例来说,我的开发习惯是在开发机子上修改代码,然后发布(本地文件夹),然后把发布文件夹的文件上传到服务器,然后运行(docker),之前的大致流程就是上传文件后,比如执行run.sh,其实这里是有很多问题的
一起来看看我用PasteSpider是如何发布的
当我们把需要修改的地方修改完成后,保存所有文件,然后按照下图
也就是在本地执行发布(发布到文件夹),因为有经验说明,运行成功和发布成功是两码事,我采用的是发布模式!
等待开发机运行发布结果,成功后,你只要点击PasteSpiderFile的“一键发布”
然后就是等待发布的结果的通知了,比如我的WebHook
这就发布成功了!!!
如果是静态页面的,比如html的,或者是vue的发布文件的,其实对于服务器来说这些是静态文件,只要存放到服务器的某些目录,然后nginx配置过去即可访问,对于这样的,可能用发布不太贴切,我称为同步!
其实这样的,也可以参考API的发布使用一键发布,只是后面创建任务的时候会被系统阻断而已,但是文件是已经同步到服务器了的!
你也可以点击“对比差异”,然后点击“同步”,这样也是把你开发机的文件同步到服务器上了!
是不是非常简单!!!
要说到流程,也就是PasteSpider如何运行的,有几个概念不得不先说明下,还是以贴代码官网为例!
贴代码官网这个我称为“项目”,关键点就是所有的服务都是通过一个域名来访问的!
项目的下一级就是服务,可以理解为,比如后端,管理端,用户端,也可以按照开发划分,独立开发的为服务!
上面的API的发布流程
上面是大概的流程,其实在整个流程中还有其他的考量,比如是否部署到多台服务器,比如当前服务器的内存是否富足,比如当前服务设定运行数量限定等!
一起来看看PasteSpider都有哪些特点
作为一个工具,我把这个拿到首要来说,是因为我的原则就是工具就是工具不能喧宾夺主了,旁载模式的意思是,在没有发布任务的时候,你把PasteSpider直接停止,你自己的服务不会受影响,能继续运行!
以我几台服务器的运行状态来看,PasteSpider运行后的内存占用大概在200MB左右!对于小内存的服务器来说,工具吃得多少意味着主服务是否能够自由的伸展!
3分钟上手,你不需要学习其他的语言,比如yaml等,PasteSpdier的操作都是通过表单,图形操作的,也就是点点点就行了,遇到不懂得,你只要点击表单或者表格中对应得点就行,会跳转到在线文档进行解说和案例说明等!
可以基于账号,为不同账号分配不同权限,比如张三只能发布哪个服务的,李四只能发布她负责的项目等,还可以基于环境划分!
内置环境隔离,比如开发环境,生产环境,所有的操作几乎都是和环境相关的,比如当前升级,是升级到测试环境还是生成环境!再比如项目路由也是按照环境隔离的!
内部采用nginx实现路由,也就是你的服务得使用nginx进行转发,可以实现升级得时候用户无感知,也就是他们说的平滑升级,或者是滚动式升级
支持CI/CD,也就是从源码服务器拉取源码,然后在服务器上进行编译,然后发布升级,不过需要对应得配置,比如NET或者JAVA,这个时候服务器得配置是不一样得,主要在编译发布这个环节!
键值配置,或者说是配置模式,可以基于不同环境实现key-value模式,这样可以实现不同得启动参数等!
支持按照当前负载,是否自动扩容,我们都知道服务瓶颈有很多情况,有时候就是多启动一个容器就行了,比如经典得rabbit消费者,很多时候就是多开一个消费者就行了!
遇到问题不用慌,遇到问题找对应的知识即可,比如docker的问题,你就找docker的即可,如果是nginx的,你找nginx的信息即可,记住PasteSpider其实做的只是把命令程序化而已,没有引入新的概念啥的,所以遇到问题的时候,可以手动试试,看看是否能执行!
从最初的只支持docker到后面的podman,iis,service,systemd等,可以说通过PasteSpider可以很好的把你的服务部署到服务器上!
PasteSpider中主要有2个数据库,一个是系统的,另外一个就是日志,2个数据库你都可以自己配置使用哪些数据库,目前支持mysql,mariadb,postgresql,sqlite,sqlserver等
新版重写了审计日志,通过查询,你可以查询某一个字段的变更记录,比如张三的账号是否修改过密码,比如谁在今天某一点发布了哪个项目等!
可以说是数据报表,支持分钟,小时,天模式查看服务器和服务的运行状态,对于我来说主要的作用就是看看某一个项目是否有内存泄漏!
通过配置,可以第一时间发现问题,比如硬盘即将占满等,让很多潜在的问题灭杀在萌芽阶段!
个人免费使用,企业版采用买断机制,企业版可以获取最新专业版的源码,基础班的代码直接公开开源,所以PasteSpider也是一个开源项目!