PasteSpider
PasteSpider 是一款面向开发者的专属部署工具,主打简单高效、开箱即用。无需复杂配置,图形化界面操作,5 分钟即可快速上手,轻松完成服务部署与管理。
它支持多种主流开发语言和技术栈,包括 .NET、Java、PHP、Rust、Go、Vue 等,无论是后端服务还是前端项目,都可以灵活部署。
采用旁载模式运行,业务服务与 PasteSpider 进程相互独立,即使 PasteSpider 停止运行,也不会影响已部署服务的正常运行,确保系统稳定性与持续可用性。
部署案例
其讲一堆原理,不如拿一个实际案例来说。就以“贴代码网站”为例——做开发的都懂,尤其是测试环境,版本更新频率高得离谱,一天发好几次都不夸张。
有人可能会说:为什么不上 CI/CD?代码一推送自动部署不就完了?确实,PasteSpider 本身也是支持 CI/CD 的,只是需要做一定配置。这里我们先不讨论自动化流水线的场景,而是聊聊更常见、更接地气的手动发布流程。
以前我是怎么发布的? 在开发机上改完代码 → 本地发布到文件夹 → 把发布后的文件手动上传到服务器 → 进入服务器执行 run.sh(通常是启动 Docker 容器)。表面看流程挺顺,其实问题一大堆。
比如:新引入了一个 DLL,但上传时是“差量覆盖”,结果漏传了文件,线上直接报错。
如果选择全量覆盖上传,一方面耗费大量网络带宽和时间,另一方面还可能把服务器上原本的配置文件给覆盖掉。
有时候手一滑,把项目 A 的文件传到了项目 B 的目录里,张冠李戴,排查半天。
想做版本回滚?几乎等于重新传一次老版本文件,操作繁琐又不安全。
更别提平滑升级了,每次发布都要中断服务几秒甚至更久,用户体验直接打折。
这些问题,很多人都踩过坑。
接下来,就看看我是如何用 PasteSpider 来完成发布的,以及它是怎么把这些“老大难”问题一步步解决掉的。
一键发布
当我们把需要修改的地方修改完成后,保存所有文件,然后按照下图
也就是在本地执行发布(发布到文件夹),因为有经验说明,运行成功和发布成功是两码事,我采用的是发布模式! 等待开发机运行发布结果,成功后,你只要点击PasteSpiderFile的“一键发布” 然后就是等待发布的结果的通知了,比如我的WebHook。
这就发布成功了!!!
管理端发布
如果是静态页面的,比如html的,或者是vue的发布文件的,其实对于服务器来说这些是静态文件,只要存放到服务器的某些目录,然后nginx配置过去即可访问,对于这样的,可能用发布不太贴切,我称为同步!
流程解析
要说到流程,也就是PasteSpider如何运行的,有几个概念不得不先说明下,还是以贴代码官网为例! 贴代码官网这个我称为“项目”,关键点就是所有的服务都是通过一个域名来访问的! 项目的下一级就是服务,可以理解为,比如后端,管理端,用户端,也可以按照开发划分,独立开发的为服务! 上面的API的发布流程
1.对比文件,对比开发机发布文件夹的文件和服务器的文件对比,哪些需要上传到服务器,哪些忽略,哪些是必传的,上传到服务文件夹 2.基于这个服务对应的文件夹,构建镜像(docker build),这里需要计算出新的镜像版本,用于后续的版本回滚 3.按照需要,是否对当前运行的服务拆分多次,或者一次,停止服务,同时更新对应的nginx配置 4.拉取镜像,然后查看是否有配置key-value组合成启动运行命令(docker run),也会针对项目看看是否配置了项目网关,设定特定的IP或者端口监听等! 5.检查运行状态,更新nginx的配置,如果有多次分拆的,则进入下一个周期 6.完成整个流程,发送通知(webhook)报告升级结果!
上面是大概的流程,其实在整个流程中还有其他的考量,比如是否部署到多台服务器,比如当前服务器的内存是否富足,比如当前服务设定运行数量限定等!
https://gitee.com/pastecode/PasteSpider