@
594duck 作为一个调参侠,生产上启用 k8s - docker 对我来说节约了太多的开发与运维成本。
从开发角度而言,不同版本的模型可能依赖不同版本的 tensorflow, 而不同版本的 tensorflow 又依赖不同版本的 cudnn 。 如果不依赖容器,我要实现多版本 cudnn 就很麻烦。 什么?虚拟机?你要我搞虚拟机显卡直通? 先不问老黄答应不答应,我为了搞这一套还不知道要折腾多久。
但是用了 Docker 方案就优雅很多了,在项目里定义好 dockerfile 和编排,同事 vscode 里一键就可以从容器中打开继续项目的开发。
从运维角度而言,我不需要写复杂的部署文档,实际上即使我写了部署文档运维还是不得不来问我到底是怎么把这些玩意儿装上去的。更可怕的是,对于 CPU 和 GPU 版本我可能还要准备 2 套部署文档。 而使用 docker,大家只要看一下编排,都心领神会了,cpu-gpu 只要改下镜像 tag 就行了。
你要说容器化有没有坑? 肯定是有的,但是给我带来的便利远大于坑带来的苦恼