说明
资源的整合有时候还是比较麻烦的,特别是多了容易混乱,稍微梳理一下。
内容
我把资源分为几种:
- 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 数据资源
主要针对接口调取的,网络形式下载的资源。需要统一数据库的管理和查询。
结论
目前主要是把文件资源进行模板化,打包。