V5版本,这个V5是怎么来的呢
如果说旧版本叫V2(docker/podman)
那么新版就可以叫V5(docker/podman/service/iis/systemd)
(为了便于区分,Linux的Service以下用systemd表示,Windows的Servie以下用service表示)
使用PasteSpider之前,我们需要了解几个概念
1.PasteSpider是以什么方式运行在你的服务器上的?podman/docker(容器) systemd(Linux.Service)service(Windows.Service)
2.你的项目需要以哪个方式部署到服务器上(podman/docker/iis/systemd/service)
V5版本至少70%的逻辑代码都改动了!
因为之前的操作方式是通过ssh的,可以说是远程模式,而V5的很多交互是本地模式,比如和本地的IIS交互!
1.大于70%以上的逻辑代码重写
2.重新梳理和整改集群相关的问题,修复了不小于20处的集群代码问题(PasteCluster组件改动至少大于10处)
3.重跑docker registry代码,没错就是那个私人仓库的创建代码,之前的有些问题,目前的版本我至少都跑了3遍了,windows中是必须重启一次docker然后重新创建的
4.由于service和systemd及iis的引入,扩展了服务器和服务等参数,用于适配新的需求
5.由于交互方式从原来的远程到远程和本地混合模式,修改了之前的任务模式,全部采用异步(这个异步不是代码的异步,是远程委托执行的异步)调用方式
6.引入了PasteDocument文档模式,哪里不会点哪里,可以说PasteSpdier目前有2个文档资料,一个是专题,主要介绍概念,解决方案等,另外一个就是操作文档,哪里不会点哪里,你可以看到很多表单的字段后面有一个❓,点他!!!
7.全线改用新的框架PasteForm,又一个实际项目证明了PasteForm框架的魅力,进一步诠释“All in Dto”的优势所在!
更多变动等你你的发现,你也可以把遇到的问题在下面进行回复
以下是本次升级的摘要
1.同步容器的时候,更新所属项目,服务等信息!
2.修复容器的重启,停止,删除的逻辑,改成任务模式,兼顾系统内的站点容器和系统外的!
3.运行容器的名称调整,全部规则为model.code_service.id_app.id_project.id_model.id
4.?持续时间是否分开配置
5.自定义更新IIS内容,动态表单!!!
6.支持静态化的函数静态化
7.全局的Log的改版,之前的引入没必要
8.重新划分warning和error的范畴,默认正常执行的走information
9.关于windows.server的配置和启动.bat的处理
10.手动停止站点的话,状态啥时候同步到容器列表中!
11.采用新的文档机制!PasteDocument,后续文档统一迁入
12.如果是以systemctl的方式运行在linux上,容器使用podman/docker
13.在windows上有2种方式,pastespider与服务或者程序方式运行,而容器可以是iis也可以是docker/podman
14.修复任务异常的时候,可能导致状态没变更的BUG
15.重新修改权限列表模块,使用json导入模式,之前是代码模式,便于后续的初始化和调整 data/roles.json backup/roles.json 参考案例项目的实现
16.项目网关,添加校验,IIS不支持这个东西!后续的Linux的SYSTEMD也将不支持这个模式
17.小时的线程数不统计的BUG
1.容器站点的报表数据是否添加其他的,比如秒链接,秒读取,链接数等,也就是docker和非docker有些数据不一样
2.是否考虑支持systemd的模式部署!
3.iis部署的日志读取! systemd的使用journalctl查看
4.服务是否添加程序名称 可以用于配置systemd的模式等,或者是iis,可以考虑放于参数一
1.如果是systemd和service的模式,是否创建默认服务器! 如果是集群呢??? 应该是单例模式的时候
2.服务监听,服务器监听,内存 CPU 线程 持续时间各自配置!
1.win.service.start.bat linux.run.sh
2.注意linux中需要配置权限,可执行权限!
1.服务监听,更新读取的状态信息不同步的问题
1.种子数据,是否支持导入,导出,恢复默认?目前的思路在table页面,添加按钮,导入,导出,恢复默认 需要root权限
2.iis的镜像也给入库,这样可以执行删除等操作!
3.返回虚拟内存大小的报表,是否开放开关,最小内存是否包含虚拟内存
1.roles.json(roles)
2.dynamic.json(tables+fields)
1.systemd模式 添加执行文件名 和服务名 用于停止和启动服务 查看日志等!
2.cluster节点信息是否添加表,是否支持动态编辑,比如修改一些参数等,对应映射到appsettings.json中
1.PasteWebServer中需要一个入口,用于初始化一些数据,比如证书等!!! 已经归纳到HandlerModule了!
2.添加对systemd的支持!!! 引入了新的字段,服务名称(这个应该是动态的) 程序名称(执行程序的名称)
1.修改Cluster的消息机制,主要是PasteSpider内部的消息流转,添加linux_id cluster_name作为目标节点信息
2.添加远端任务模式,任何地方发起任务,通过Cluster中转到目标服务器执行任务,执行完成后通过WebSocket下发
3.至于一般的任务,由Plan创建任务后,发往任务中心,任务中心下发到对应的节点执行任务!
4.修复服务-服务器-运行限定默认配置的时候最大数量为1最小数量为3的问题!
1.?.文件同步的问题,多个服务器之间的文件同步(文件差异化?压缩差异文件,下载文件包,校验文件包,是否重试!重试限定次数!)
2.文件同步后,添加一个任务,检查是否需要同步给其他服务器
a.主服务端检测其他服务器哪些要同步,然后创建各自的任务(让目标服务器执行) 附带了服务,版本号
b.子服务端附带当前的publish的文件列表到服务端请求,或者差异文件(文件夹忽略,文件忽略等要附带进去),主服务端会基于这个差异创建压缩包,并建立文件信息等,标记1个小时后删除
c.子服务端根据返回的进行,执行压缩包下载
d.压缩后,检查文件码等是否符合,完成任务!! 如果不符合,则删除本地文件,重新执行下载(计数 重试次数为3) 获得任务结果!
1.修复之前多服务器模式,升级的时候全部全量升级的问题
2.添加默认升级项,也就是服务的环境绑定服务器的那边
3.启用直连服务器的功能,也就是上传文件其实是上传到直连服务器,然后再通过分发,分发给需要的服务器,包括构建版本等!
4.修复win.service有时候报表获取失败的问题
5.添加对app的定义分类,比如容器,站点,服务等
1.修复扩容,缩减的任务逻辑,目前的写法是单服务器的限定,由于执行都是按照服务器执行的,所以缩减等都是按照服务器划分!
2.修复单个服务多个容器或者站点等运行的时候报表数据错误叠加的问题!
3.容器名称规则重新调整{model.code}_{service.id}_{app.id}_{project.id}_{model.id}_{pro.code}_{ser.code} 添加后面2个项,便于识别,前面的数字是代码里面要用的!!!
1.//回滚版本有问题 /api/spider/manage/ServiceUpdate?serviceid=1&modelid=1&version=1027
1.???构建镜像 1029 升级1029 容器列表是1028???
2.镜像旧版本的删除,需要读取镜像列表!
3.?镜像重复创建的问题
1.容器站点 添加 当前内存 当前CPU的记录 用于列表的时候直接显示!!! 还是使用扩展的模式,使用缓存模式!
1.svn/git 拉取代码后的升级,同步Linux的配置! 支持不同服务器 不同环境 升级数量等配置!
2.?关于IIS的 多app 多虚拟目录的 列表显示 添加 删除等操作!!! 类似绑定!
3.自定义添加服务,比如windows.service 和linux.service 一般用于运行数据报表展示等!
1.只有系统初始化的时候读取证书列表,后续加入的如何重新读取???按钮触发还是??? form表单中加一个重载的按钮!
2.服务-综合管理 新增或者修改的时候,有一个默认switch,就是构建升级的时候是否升级(当前服务,某一台服务器上的某一个环境)
3.改进的自定义容器(服务/站点)的数据报表,使用名称和路径双限定
1.版本同步的时候,如果服务器的状态是fasle,则不需要这个任务!
2.集群的时候,显示节点列表
1.升级过程中执行了扩容... .. .. !!! 升级任务添加一个标记,任务类型.linux.service.modelid 任务完成后清理! 如果在排队呢?? 扩容前先要进行判断任务是否存在
2.docker_run之前要在检查一下服务器资源,是否执行清理这个动作!
3.服务综合管理-数量限定还是有问题,1-3??应该是3-1 应该是哪个代码写错了!还是web缓存的问题?
4.undoplan,podmanrestart 有问题,需要把任务分配到对应的节点和服务器上,而不是主节点执行!
5.节点列表,节点更新的问题,目前只处理了节点新增,在新增后,应该要同步给数据库,这样当前节点只要配置自己的信息即可!
6.查找自己节点的逻辑要重写,先给自己定一个随机数,然后去遍历节点,找随机数,一致的表示找到了,然后赋值给更多的信息,比如节点名称等!!!
1.通知的队列要独立出来,不需要和主任务混一起,直接跑一个本地队列执行这个任务即可!
2.主页得数据预览,由于采用异步方式,所以请求后需要有一个loading的动效
3.登陆页面的窗口,使用js动态计算位置,显示更加合适的位置
4.service.limit没有同步给其他服务器,这个问题要修复下,修复内部的部分代码错误的问题
5.serive.monitor linux.monitor 可能对应的servie.isenable linux.isenable 补上这个的问题
6.podman docker 在windows上的模式,这个待测试!!! 没机器测试...
7.!!!进一步检查linux.tool的判断,估计很多地方漏了,总共是v5个版本
1.windows上的docker测试通过! 不过私有仓库还没有测试,这个有空搞下!
2.之前的配置registry-mirrors没有附带端口!!!,修复这个问题!
3.在windows中的registry,有个问题,重启的问题!!!
1.仓库,私有仓库,不再是服务配置,应该是否服务器,表示这个服务器的所有服务都是使用仓库模式!!!
2.涉及多方面的内容,比如构建镜像,升级等... .. . 大改!!!
1.私有仓库绑定服务器后,isenable没有设置为true的问题
2.添加isready可以为手动模式,这样应对手动绑定的情况
3.构建镜像的时候,如果有仓库,是否需要上传一个去?还是按需? 按需是比较合理的,因为升级的时候的版本是基于情况获取的,而不是笼统的获取最新的版本
1.关于一份代码如果部署在docker/systemd等的情况如何处理! 这个和代码有关,如果是独立运行和平台运行的时候冲突,那是不行的!比如运行是否需要dotnet 要么都不要 要么都要,这样就可以多模式运行
2.修复部分前端页面还在用服务器list接口的问题,全部改成page了
1.关于网站绑定https的情况,目前待定,因为涉及到证书选择等情况,估计还要开外表!这个问题已经修改成啥时候更新证书列表,因为要读取证书列表!!!
2.pasteform是否和dynamicform一样支持多层级???info__name 这样的情况,目前的考虑是使用query的方式动态的支持!
3.单台服务器,如果有多个模式要使用,可以创建多个服务器,然后配置服务器不读取状态(保留一个)这样就不浪费资源可以实现多个模式了,比如docker,systemd,至多支持3个模式iis/winservice/docker
1.git/svn中,可以不用仓库id,因为不是这个控制的!!!,由对应的service和linux来决定!
2.禁用cluster的审计日志,这个日志没必要保存,因为太多了!集群节点的一些信息交互!
1.修复podman创建仓库失败的问题,之前的测试有点叠加了,导致有些问题没发现!
2.还有没测试的就是unbuntu的docker/podman了
3.测试一个系统多个仓库的情况!主要情况还是在于服务器和仓库的配置,绑定是为了login而已
4.注意配置文件的groupname currentname我被这个问题整灵异了,后面才反应过来,估计后面会把这2个配置给合并掉!!!应该是在spider端写入到cluster,这样保持cluster的独立性!
5.无法查看推送通知详细的问题!
6.搞一个备份 项目->服务 ? 项目服务器 服务。服务器。。。感觉好乱!!! 完全的备份不太能行,估计得半支持!就是导出后手动按需录入???
7.搞一个容器服务站点的最后状态 列表的时候显示 比如cpu 占用内存 目前考虑使用hashtable field:appinfo.id:memory/cpu value