说明

资源的整合有时候还是比较麻烦的,特别是多了容易混乱,稍微梳理一下。

内容

我把资源分为几种:

  • 1 环境资源
  • 2 文件资源
  • 3 函数资源
  • 4 数据资源

1 环境资源

环境资源主要指提供程序运行的基础环境,最方便的方法是通过docker来做(包括GPU的CUDA环境)。

初步创建时可以使用docker-compose方法,之后可以把常用的镜像推送到镜像仓库,方便随时调用。

可以获取初始镜像,然后按需求逐步构建,每构建一种功能就可以构建一个镜像,例如:

  • 1 基础ubuntu镜像
  • 2 基础flask服务镜像
  • 3 pytorch+jupyter镜像

这方便做好镜像的用途就可以了,另外镜像需要配合文件资源才能快速使用,这部分也要准备好。

2 文件资源

在以API为核心的系统中,很多是一个个的项目包,里面既有文件,也有结构。这一类的文件包应该做好模板化,将文档和资源进行压缩打包。

在使用时,修改模板形成应用包,然后按需部署调用。

还有一些可能是比较大的文件,或者是一些软件包,也是打包好,在需要的时候远端可以wget。

几种比较重要的文件资源:

  • 1 简单的接口服务模板SimpleAPI:扁平化的flask服务,提供单纯的某个接口
  • 2 简单的任务模板SimpleTask:任务是独立指定,写死的
  • 3 通用的任务服务模板GeneralTask:主要是任务根据func_dict动态指定和调配
  • 4 带授权模块的服务模板AuthAPI: 蓝图形式的flask服务,加上鉴权控制
  • 5 简单分布式任务数据库版 SimpleDistributedTaskMongo: 服务端负责发任务,客户端执行并直接向数据库回传结果
  • 6 简单分布式任务内存版 SimpleDistributedTaskMemory: 客户端配合本地文件,直接向数据库回传结果
  • 7 分布式任务代理版 AgentDistributedTask: 和5,6相似,但是客户端不能直接访问数据库,必须通过服务端代理

3 函数资源

这块至少已经挺好的了,通过数据库管理和分发,还比较方便。

4 数据资源

主要针对接口调取的,网络形式下载的资源。需要统一数据库的管理和查询。

结论

目前主要是把文件资源进行模板化,打包。