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