docker - 谁应该编写 dockerfile、SRE 或开发人员?
问题描述
我们正在内部完成一个流程,并对其他团队在做什么感到好奇。谁应该“拥有” dockerfile、devs 或 SRE?我可以看到两者的优缺点 - 如果开发人员编写它们,那么 SRE 必须更新它们,如果 SRE 编写它们,开发人员必须向它们传达所需的更改。
从我的角度来看(基本上是项目经理),我希望我们的开发人员能够部署并且我们的 QA 能够尽快进行测试,并且我想要一个支持这一点的流程。
解决方案
这是值得商榷的。这取决于具体情况。
在高层次上,编写 Dockerfile 需要两种技能Dockerfile
,首先是 Dockerfile 中的内容,其次是如何最好地编写 Dockerfile。
需要注意的关键点:
- Dockerfile 应该尽可能的轻(因为镜像是分层创建的,镜像不应该包含来自上述层的任何不必要的障碍)。
- 最重要的是图像必须是安全的。安全性是一个更大的方面,但往往被忽视。
要回答谁应该编写 Dockerfile,据我所见,大多数时候是开发人员,因为他们对应用程序有更多的了解,而且现在希望开发人员具备 Docker 知识。然而,对于 Docker 的安全性和其他细节,SRE 的参与是需要一些时间的。
问题的第二部分与 CI 有关。Dockerfile 在功能方面几乎没有变化。如果 Dockerfile 发生变化,建议对 SRE 进行审查,因为如果映像烘焙过程的所有管道阶段都不满足,CI 可能会失败。
总而言之,如果应用程序很复杂,则需要开发人员和 SRE 之间的协作。Dev 和 SRE 对同一事物有不同的看法,因此在定义它们时需要两者的输入。在简单的情况下,任何人都可以做,没关系。
推荐阅读
- ibm-midrange - 在名称带有 @ 或 # 字符的表上运行 SQL 查询会在不同的 CCSID 上显示问题
- html - 使链接可点击,但也有下拉?
- c# - 查询在未准备好的语句中返回 ODBC 错误“参数太少”
- javascript - 在 contenteditable = true div 中禁用文本选择
- android - 如何修复 LinearLayout 中的 EditText 错误位置
- java - CrudRepository 不删除行
- java - 硒火 StaleElementReferenceException
- docker - NGINX 配置以在执行从 nexus 3 到 nexus 2 的代理重定向以使用解压缩插件时保留 URL
- java - 如何获得 onResponse 的返回值
- javascript - 如何通过单击显示/隐藏 v-loop 中的每个元素?