问题:linux 平台下的构建安装包大小将近15G左右,文件太大,不能满足交付需求。
解决过程
- 查看相关安装包的相关逻辑和业务划分
- docer 使用python来构建基础服务。基本上有9-12G左右。
- mysql 使用了mysql8和mysql5.7的两种形式。占用空间900M左右。
- 其它业务部分有6-8个子模块,构建的rpm或者deb包有850M左右。
- 开始时快速验证功能逻辑的可行性,准备提供14G包的大小。但考虑到交付的专业性开始考虑减小docker的大小。通过mac平台的分析,同样的功能逻辑在mac下空间才1G-1.5G左右。基本上可以判定docker中的镜像文件构建存在问题。通过更一步的分析,发现存在使用nvida cuda相关的Pytorch库。通过使用pytorch使用cpu的whl来搭建相关的基础服务等。最终docker的镜像文件减少到3.5G左右。
- 之后开始验证服务的性能以及相关服务的整体构建是否合理。开始时先逐渐优化性能。
- 一定阶段之后,通过反复的验证性能不使用docker时同样也能满足实际的生产环境的需要。最终开始迁移服务,剔除docker,编译python环境等。之后安装包构建的大小在1.5G左右。同开始构建时安装包大小减少90%。
总结
- 问题杂乱时,先满足业务需求。
- 同时在满足业务需求时,可快速的进行版本优化。
- 迭代的目的是减少用户的学习成本。
- 丰富的知识储备和技能能快速定位解决相关问题。