极小的运行资源消耗,还支持一拖多运行,运行内存甚至低至100MB!
和业务服务没有层级上的关联,哪怕PasteSpider停止运行也不会影响你的业务服务运行
一键安装,图形操作点点点即可完成操作,附属服务的支持原汁原味,简单易上手
支持拆分多环境运行,工厂,测试两不误,还可以根据环境配置适应不一样的配置信息
从项目角度进行服务容器管理,支持自动升级,扩容,缩减,状态报表,键值配置,自动路由等
通过配置支持服务环境级别的自动提交构建,一键提交代码后即可自动发布服务和路由等
1.修复项目服务新增的时候无法选择静态类型的问题,其实可以先选择其他的,然后再修改!
2.服务-同步过滤-新增,服务无法自动选定的问题,其实就是新增当前服务的同步过滤配置
3.服务-构建镜像,参数错误的问题,代码复制的时候重命名的问题
4.服务器-同步容器(把这个服务器在运行的容器同步到系统中),执行的时候没有标注操作者的问题
5.?待检查,估计是限定信息没有推送给监控端?新创建的服务,不会自动启动容器,还是做了限定? 那旧的会不会保持运行数量的限制?
6.?待实现?扩容的时候,没有清理服务器缓存,是否清理应该由服务的配置决定!
7.服务新建,监听端口默认80,也就是容器内监听的端口,一般是80,比如php是9000,phpthink是8000,redis是6379
1.修复podman的服务器重启后容器不会重启的问题!注意要为spider配置重启,原理是使用spider去重启其他服务,spider的依赖服务需要先重启,比如数据库,redis等
2.添加对仓库,路由等的服务器分布的支持
3.去除IP,全部采用项目IP
4.修改部分UI中的显示!进一步完善pasteform的使用
1.重新开发后台管理端,采用PasteTemplate的最新的PasteForm模式开发
2.?项目网关是否绑定环境,就是不同项目的环境采用不一样的网关地址
3.添加动态菜单,左侧的菜单将使用接口模式,由接口控制!
4.?key-val的数据,返回的时候使用***去敏感,然后弄一个新的接口来读取
5.修复推送的配置,all和其他混合的时候不生效的问题,貌似这个也不是问题,配置了|all|,其他的就可以不用配置了,!
6.服务监控和服务器监控添加状态,禁用的将不再执行!
7.修复之前版本中的,日志数据库结构同步在后面的问题,导致升级失败的问题!
1.服务环境服务器运行数量的修改,减少最大运行数量的时候的错误问题!修复只能增大不能减少的问题!
2.查看审计日志,信息排序基于时间,之前是乱的!
3.api/spider/Open/keyval的实现
4.服务监听中关于持续时间的设定,触发后,在持续时间后,写入一个定时任务,如果那个点还是满足监听触发,则执行对应的事件,比如重启,扩容!
1.服务器的内存达到预警后,是否执行清理服务器缓存的命令,直接执行清理1模式 echo 1 > /proc/sys/vm/drop_caches
2.添加对github gitee gitlab的CI/CD的支持,其他的将在后续升级
3.修复之前部分接口对于被禁用的对象的问题,比如linux被禁用了,其他地方还查询到!
4.修复集群中交互数据的异常问题(集群部署一直没怎么用,可能会有其他问题)
5.修复被禁用后,还会同步文件的问题
6.在上传到OSS中,为了防止上传OSS失败,所以是先存储到.backup/version文件夹的,所以需要手动再一次传入到工作目录
1.服务器的状态,添加对查询的支持,镜像,容器,状态 等!
2.服务自定义版本信息!及对应的更新!需要支持PasteSpiderFile的编辑!
3.容器管理为podman的时候,在首次链接成功后,会检查对应服务器的重启状态,如果重启时间差大于5秒,则执行重启容器(对比容器列表执行)
1.手动版本号?手动修改,不参与代码,主要用于多个服务器要更新的时候,保持版本使用! 32位数
2.是否支持多服务器同步升级,一键同步升级多个服务器!
3.是否添加长连接的支持 考虑引入SignalR的支持,那样的话nginx要对应变更!主动通知任务的动态等!任务开始 任务结束 等!
4.修复类似dev_3_99_1_f70db3fa96054153a010a的命名,由于版本问题导致的读取appid失败的问题,从而导致读取日维度的报表失败的问题!
5.添加PasteCluster集群组件,修复没有注册的时候,返回非Master的问题,其实这个可以由调用方自己判断,这个改版是后续可以中途加入一个集群,而不用重新发布
6.排序字段要显示出来配置了,在podman系统中,如果重启后,系统是基于sort进行项目重启的!顺带检查重启后podman的是否有执行这个任务
7.新增长连接的支持,那么对应的nginx的配置需要更新,需要提供对应的nginx的配置!
1.警告信息中添加对应的服务器信息,否则有多个的时候,不知道是哪个的警告!内存 CPU等均适用!
2.datalist的缓存删除问题,上一个版本忘记修改了!
3.防止latest版本占位问题,历史版本也显示出来 应该是文字引导? 其实只要命令存在,可以全部删除,重新拉区!
4.一些webhook的推送信息中附加服务器或者服务的信息,防止不知道是哪台服务器的警告!
5.-e RunConfig:Model 和 -e RunConfig:Address 一个表示当前环境的代码 一个表示当前容器的IP(需要使用项目网关模式)
6.dto中的svn/git中前置命令长短限制的问题
7.测试svn提交的问题post-commit,使用post表单的形式提交,请查看文档!
8.添加对服务器缓存的清理的支持
1.关于如果是使用项目网关的模式,是否附带环境变量CurrentIp表示当然容器被分配的IP是多少,这个对于容器来说有很重要的作用!
2.权限列表页面的样式错位问题!
3.基于变更思想,滚动升级的思路,其实应该是第一个批次就一个容器升级,比如你要修改一些综合信息的时候,如果一开始启动就好多个容器,有可能他们内部还要打架一会,所以后续集群升级等第一个包改成单个,后面的基于数量拆分计算!
4.关于页面中datalist的数据源缓存的清理的问题,比如新增了对应的对象,则需要清除对应的!更新和新增都需要主动清除!
5.使用命令查看硬盘情况 df -h |grep -E /dev/[a-z]{3}[0-9]{1,3}
6.使用命令查看工作目录中的各文件夹的硬盘占用du -h --max-depth=1 {work_dir}
7.首页修改成综合信息,显示/api/spider/manage/readTotal!
8.对应的返回某一台服务器的统计信息
9.修复部分服务器由于返回的内存使用情况格式问题引起的内存数据读取失败的问题
10.重新修改数据看板,使用图形模式显示服务器的综合数据,内存占用,硬盘占用等!
11.如果本地已经存在一个latest了,那么拉取的时候???
1.?是否使用websocket链接signalr ? 可以用于状态的直接反馈,命令sh的交互?
2.日数据,然后做日任务网格图!
3.日数据的统计,见projectmodel/DailyReport.cs的说明,先埋数据
4.提供一个接口,返回当前服务器的配置,比如数据库类型 日志等级 当前版本 等!
5.无数据的统一返回 701--> 204 提示为630
6.接口有附加数据如何返回???
1.修复之前私有仓库不能用的BUG,应该是之前测试,然后混淆了,注释了不该注释的东西
2.启用新的镜像拉取方式,后续将推送到阿里云,后续更新讲直接使用公开的仓库了
3.私有仓库添加对多端口的支持,更加细化,添加配置文件的支持,在<workdir>/registry/config/confiy.yml中,可以修改这个文件的内容,然后重新docker restart <your_registry_container_name>
4.可以重新修改仓库的状态,这样可以再次创建,注意创建的时候,前置的东西要清理,比如私有仓库的在运行容器,占用端口等!/api/spider/storeInfo/id/changeState?ready=false
5.Dockerfile中去除不需要的操作,比如不需要使用.sh执行docker login了!
6.命令详细修改成view而不是form
7.菜单更换统一的图标!
8.镜像显示默认可用的,而不是全部
9.!定时任务添加删除等操作按钮
10.审计日志,添加查看详细!是否添加对应的userid的查询等!目前是半个密钥的形式!
11.修复为账号授权多环境权限的时候,其他环境也会受影响的BUG!
12.修复由于本地镜像没有ImageDigest的值,导致的批量删除的问题!
13.修复新版的服务管理界面中的构建并升级的传参错误的问题!
1.配置服务器的时候,是否使用命令读取系统版本 https://blog.csdn.net/showgea/article/details/82745107
2.关于安装命令的确定 yum apk apt-get ?
3.关于ubuntu的软件源加入 和读取私有仓库的镜像???
1.修复Web中为账号分配服务器提示错误
2.部分checkbox修改为switch样式
3.处于选择模式的时候,只显示可用的状态的对象,比如服务器列表,服务列表,仓库列表等
4.是否引入 引导模式创建项目!!!
5.加入审计日志,记录重要修改即可!审计日志是存储在读取的sqlite数据库的,可以通过/api/spider/Log/xxx进行日志的读取,基于文件考虑只存储了post相关的日志
6.关于发布的时候的数量的问题,也就是灰色发布,然后是二次灰度的时候的选择!版本高的继续灰度???
7.环境列表页面重做,很多布局有问题,操作也有问题,如果没有私有仓库,可以直接在列表执行操作,然后+灰度运行量!
8.基于5,添加对日志资源回收的配置!
1.appinfo的复用,比如之前有8个运行,后面缩减到4个,那么有4个的状态就是删除的,下一次扩容的时候,可以把这4个拿来用,从而复用IP等信息
2.扩容和缩减的提示,输入框等!
3.删除容器的时候,对应的报表数据是否删除?还是等超时后删除???
4.容器的删除,重启,停止,合并系统和非系统的容器操作,划定对应的权限等!
5.为部分操作设定特定的权限,如果没有权限的会有对应的提示,最高账号可以添加权限,然后分配权限,用于更加细度的拆分权限控制!
6.修复直接查看容器的时候的restart stop rm的命令的执行,兼容系统容器和非系统容器
7.PasteSpiderFile对比文件前,是否可以执行一个自定义的命令,比如复制文件!实现文件同步的本地化命令步骤等,目前只支持windows
8.在扩容,伸缩,更新的操作上还有问题!入口太隐藏了!!!需要映射出服务那边去!
9.是否可以简化操作,比如选择服务器,如果只有一台... 直接在UI上进行选定,直接执行下一步骤!
10.重新发布的提醒!
1.如果构建过程中失败了,需要能够执行删除,而不是1小时,可以使用2次操作删除这个操作!
2.升级之前,检查是否有不正常的容器状态,需要停止删除他们
3.如果有-v 是否执行 mkdir -p 用于创建对应的文件夹!
4.添加对APP的停止的这个动作!重启!
5.修改删除规则,采用3秒内删除2次才会删除!
1.添加一个接口,检查密钥是否可用,这样PC端的切换站点就不需要再次登陆了!
2.校验一些输入的检验,添加400的检查等!
3.关于服务器的内存警告的问题,使用量保持,启用剩余内存的警告!
4.修复通知的|all|配置不生效的问题
5.集群组件从原来的内置修改成引用PasteCluster集群组件!
1.服务添加一个属性,注意PasteSpider的网络配置要和容器一致,否则接入不了,用于启动后把信息推送给容器的,这个有可能容器没启动完整!!!
2.命令占位符添加{{App.ProAddress}},用于替换容器的项目IP地址,也就是项目需要配置网关(网关的IP地址是先计算出来的(所以在容器启动前就知道这个容器的IP了),而非网关的IP是由docker分配的,所以要启动后才知道)
3.项目网关分派IP,之前是最后一位,实际是最后2位数,也就是从254容量到254*254
1.上传到OSS需要有一个记录,用于回查
2.列出指定版本的备份文件夹的文件列表
3.构建任务的排重机制有问题,应该是jsonstring的MD5进行排重
4.修复OSS回滚文件夹指定错误的问题!
1.当前是哪个版本,最高哪个版本
2.在当前页面创建任务后,提示是否成功!
3.基于服务id读取服务器列表的接口,用于为某一个服务构建的时候,这样可以减少步骤!
4.改进备份文件夹,之前是web web.1001 web.1002这样分布,现在修改成web web.backup/1001 web.backup/1002 这样不会出现太多文件夹,也好屏蔽,因为直接目录的模式下,一般是嵌套入其他项目的目录的
5.修复前端的时间控件时间选择无效的问题,是this的作用域的问题,改版改错误了
6.修复当前版本的问题,服务有三个版本version,fileversion,currentversion(服务当前使用的版本)(感觉多服务的时候有问题,是否需要绑定服务器?)
7.???关于有端口映射的容器,在启动的时候,是否需要检查没有在运行的是否占用了这个端口???
1.修复直接目录模式下的版本删除的问题
2.修复之际目录模式下的OSS上传的问题!
3.需要可以指定上传OSS哪个版本的,这个需要客户端去支持!当前版本往前推N个版本,最大5个这样子!
4.修复PasteSpiderFile中,上传到OSS应该更改为临时模式,然后再同步文件!
5.修复暂存文件的问题!
6.关于同步,上传OSS等是否建立日志的问题?
7.静态文件的版本回撤的问题,直接指定版本覆盖过去,需要考虑是否需要同步到其他服务器!
8.静态文件指定版本上传OSS,指定版本回滚
9.工作目录的文件夹占用大家,添加对static文件夹的查询 registry publish static source
1.!!!如果只绑定了一个服务器,那么在构建升级的时候,是否可以忽略选择服务器这个过程!!!
2.或者说1步骤的,返回服务器列表只返回有绑定关系的服务器列表,不然就是选择了也无用!
3.修复推送的各项配置问题,all的代码将不再适用,需要的话就需要勾选对应的!
4.!!!表单输入的?项介绍,这个是个长期的工作内容,或者说大量的工作内容,简单点就是介绍每一个项的说明!!!##**长期任务**##
5.关于读取容器日志指定行日志的问题! podman logs -t --since="2024-05-16T03:00:00" --tail=10 postgres 读取指定时间后的多少行日志!
1.阿里云盘账号配置!
2.ServiceInfo+ OssId 有配置表示更新的时候要更新对应的云文件!
3.修复之前由于规则调整不会推送通知的Bug?
4.推送通知中添加任务名称的显示
1.vue转云的支持?
a.所在路径比如https://www.bbc.file.com/mobile/
b.需要替换的字眼,比如/vue_production/
2.PasteSpiderFile的文件,导出差异化的文件列表!可以用于其他作用!也就是本地文件保存!
3.上传到阿里云,是否本地化实现?
4.PasteSpiderFile的程序自动升级的问题,后续再考虑,主要是内容也不少,由于安全等问题,服务端还得做下载,大概思路是有文件过滤,然后是2边的文件版本对比,然后执行差量更新!还得有版本差异说明综合,比如现在差3个版本了,那么更新是一次,说明是列表!
1.关于项目的其他配置项没有显示的问题,比如排序值
2.关于服务的其他配置项,比如健康检查(启动后,用这个检查是否启动成功),排序等
3.关于修改的时候,不让修改的项,比如code!
4.是否启用删除!物理删除这个功能,需要查询多表,进行删除!
5.没有在运行容器,当执行升级任务的时候,是否至少启动一个容器?(基于服务-环境-服务器的运行限定,如果有设定最少运行1个那就至少会启动一个)
6.还是想把外表去掉的,有些地方不太合适,虽然简单易用
1.有一个新的思路,是否启用静态文件的云化,比如vue
1.服务-环境列表-居然没显示环境???
2.读取PasteSpider的日志文件,读取文件的内容 支持分页读取
3.读取版本更新内容,版本更新的内容使用倒叙模式 readme/update.md
4.服务的环境列表中关于分布的开关样式改成switch
nginx的名称变更的时候咋办??? 手动去删除还是自动删除?
1.谁创建的任务!PlanInfo + UserId
2.读取路由信息的时候,没有返回环境信息的BUG
3.任务信息,返回user信息,作为创建者信息!
4.静态同步的时候,添加一个任务,表示谁上传的!
1.镜像列表,返回这个镜像代表的服务有多少个环境,比如这个服务只开通了测试环境,那么这里就只返回测试,用于回滚的时候选择回滚哪个环境!
2.在服务容器运行数量监听的时候,基于项目的sort排序,然后再基于服务的排序,这样可以让运行数量不足的按照排序执行启动!
3.任务是谁创建的???
1.修复多服务器文件同步的问题,wget的url要用引号
2.修复service的directpath的使用和限定问题
3.修复创建任务的默认状态的问题,只有待执行的,任务打入到队列才会去执行
4.修复服务为静态类的无法创建绑定服务器的问题(文件同步,就是需要把服务绑定到服务器去!)
1.静态文件的同步问题,同步到不同服务器!
2.读取待同步文件列表 fullpath reativepath from_linux_id to_linux_id
3.使用子服务器从主服务器下载的方式??? wget ? 使用 -O的方式下载!
4.linux1 /spider/static/project/service/xxx/xxx.html serviceid tolinuxid downinfo!
5.service(static) 绑定的服务器,是否是当前spider绑定的宿主,如果不是,则需要推送下载的任务! 问题在于如何保证同步完成???
6.使用spider作为桥接,执行wget的下载,最后经过md5校验 和总数校验,是否成功!
7.是否使用创建任务的方式,使用子任务的形式执行下载任务!
8.路径使用占位符的模式{{workdir}} / {{directpath}} 等方式
9.Spider访问地址,可以是局域网也可以是外网的形式,主要用于同步静态文件!
10./api/spider/direct serviceid linuxid md5 planid planitemid等
11.wget 下载的路径写入到commmand中?fullpath(/index.html /app/abc.txt) md5() 只需要写入 下载哪个文件即可? 使用md5sum 检查问价的md5 对比是否正确!
12.暂存的处理 和定时任务暂存的处理 处理下载的问题!
13.创建服务的时候 需要绑定服务器!!! 静态的时候!
14.bindModelLinux 监听数量的时候 如果是静态的 不能包裹进去了!
15.镜像状态设置为isenable=false;构建镜像后,删除后,设置镜像不可用!
1.创建路由文件的时候,必须指定服务器,表示挂载在哪个服务器上
2.如果服务类型为静态的,且设置了直接目录,在升级文件后不会删除旧版本文件的问题,体现在文件夹.xxxx版本上
3.如果往文件夹/spider/direct/spider/.文件夹写入文件会跑到哪里去? 修复这个问题!
4.开放接口 读取项目的路由信息 /api/spider/open/ReadRoute
5.获取项目基础信息等
1.修复页面/page/codeproject/view.html的提交问题,带入了非法的config配置模块
2.giv/svn中关于接收到webhook后构建命令的model判断的问题!
3.部分页面 page==1的时候没有清空下面的分页控件!!!
4.添加安全校验,-e KeepConfig:UserToken=111222333444555666 的校验,这个密钥作为token的密文,也作为集群部署的密钥,必须要更改!后续的接口信息获取等都基于这个
5.首页添加版本号,添加专题地址
6.删除镜像的问题,本地非仓库的时候执行删除代码
1.key-value中的modelcode的问题,没有做新旧兼容!
2.nginxroute的默认返回的问题,如果没有app或者Model,只要服务有配置,也是需要返回一个upstream的
3.容器列表信息返回不全的问题
4.key-value返回信息不全的问题
5.修复planinfo-planitem的列表查看和任务详细无法查看的问题!
1.前端的搜索searcharea中,添加对应的dataprojectid dataserviceid datamodelid等,用于针对项目 服务 环境等的检索
2.输入框中用xxxx:xxxxx的形式显示,前面表示ID,后面表示名称
3.使用sessionstroge的方式,会话缓存对象,利于网络使用率的提升!
4.关于编辑模式中,也采用这种方式
5.统一后端关于projectid serviceid modelid的搜索合并!关键在于字段名称 然后是时间区间的查询!
6.从form中读取的时候,校验对应的类型回正轨!
7.去除外表的设定!!!
8./page的接口实现,用于?_apiquery使用
9.统一的接口,用于实现datalist数据源! orderbydesc isenable 可用的排在前面 其实模型继承于基础表是更合适的!name code id isenable (linux store project service model nginx)
10.ConcurrencyStamp base
11.修正私有仓库的目录没有指定到工作目录下的问题!工作目录默认为宿主的/spider/文件夹,系统将会在这个文件夹下存放代码,私有仓库,证书等!
1.定时任务的任务串
a.tasktimeplan + father_id
b.planinfo + timeplan_id
c.tick_evented 仅仅读取father_id==0的tasktimeplan!
d.任务完成后,如果有timeplan_id 则尝试获取他的子集!
e.创建任务的时候,时间或者父级二选一!也可以都不选表示立马执行!
2.针对定时任务,如何处理前端这种非编译的!!!
a.为这种的建立一个缓存文件夹timetemp 写入前执行清空操作!
b.存入缓存文件
c.任务从缓存文件夹拉取文件覆盖到指定文件夹
d.完成任务!
3.关于回撤版本这事,前端的回撤版本
a.如果服务类型为静态的,则先创建一个对应版本的文件夹
b.文件写入到版本文件夹
c.全部上载完成后,把整个文件夹覆盖到目标
d.兼容模式,上传的时候,直接写入主文件夹和对应版本文件夹!!! 如果特殊配置,则不写入主文件夹,只写入备份文件夹??? 执行的时候直接把fileversion的文件写入到主文件夹???
4.服务器的监听 添加对硬盘容量的监听/dev/vda1:32G;/dev/sdb1:16G;表示对应的硬盘占用大于这个数据的时候提示警告!
5.定时任务,从系统中获取容器状态的任务,可以自定义时间间隔,在启动的时候设定-e KeepConfig:CollectTaskSecond=300 即可表示300s执行一次
6.版本号将写入到appsetting.json中了,你也可以在启动后通过 docker logs xxx 查看当前运行的版本,至于前端需要在后台管理端的首页上方查看
1.服务的多级支持监测
2.通知按照不同维度拆分,可以为服务器,项目,服务,系统!
3.修复每次都偶要读取监听配置的BUG!做缓存处理!
4.服务器监测调整,可用内存 占用内存 总内存 缓存内存 虚拟内存!
5.修复关于触发警告的条件,如果是CPU有持续时间的说法,如果是内存则触发就通知,然后是下一次通知!
6.关于持续时间这个问题!!! 由于首次也是轮询获得,所以后面收尾也是等轮询
7.配置中添加版本号显示,添加轮询的频率控制(s)
8.修复一些ServiceId的外键问题,改用OutServiceId等,尽量后续不再使用外表这个机制!
1.MonitorLinux + FreeMemory 表示可用内存 低于这个则触发警报!
2.是否添加流量暴增的预警?
3.是否添加对硬盘剩余量的监测,由于硬盘爆满产生的事故可不少! 注意硬盘可能有多个!!!
4.df -h 说明:Linux系统的分区格式使用的是xyzN的格式,
xy表示的是硬盘类型,如上面的执行结果,sd/vd表示是SCSI硬盘,z表示的是硬盘序号,
第一块硬盘是a,第二块硬盘是b,
所以要查询Linux系统上有几块硬盘,只要注意这一点即可。N表示的是分区号。
/dev/sdxx(物理硬盘?)
/dev/vdxx(虚拟硬盘?)