关于:-
“为什么将软件部署到docker映像比简单地部署更容易
部署到一致的生产环境?"
大多数软件部署到许多环境中,通常至少有以下三种:
-
个人开发者个人电脑
-
共享开发人员环境
-
个人测试仪PC
-
共享测试环境
-
质量保证环境
-
UAT环境
-
负载/性能测试
-
现场表演
-
生产
-
档案文件
还需要考虑以下因素:
-
根据工作的性质,开发人员,甚至测试人员,都将拥有微妙或巨大不同的PC配置
-
开发者通常可以在公司或业务标准化规则无法控制的PC上开发(例如,在自己的机器上开发(通常是远程开发)的自由职业者,或开源项目的贡献者,他们没有“受雇”或“签约”以某种方式配置PC)
-
有些环境将由固定数量的多台机器组成,采用负载平衡配置
-
许多生产环境将根据流量级别动态(或“弹性地”)创建和销毁基于云的服务器
正如你所看到的,一个组织的服务器外推总数很少是一位数,通常是三位数,而且很容易更高。
这一切都意味着,仅仅因为巨大的容量(即使在绿地场景中),从一开始创建一致的环境就已经足够困难,但是
考虑到大量服务器、添加新服务器(动态或手动)、来自o/s供应商、防病毒供应商、浏览器供应商等的自动更新、由开发人员或服务器技术人员执行的手动软件安装或配置更改,等等。让我重复一遍——保持环境一致几乎是不可能的(没有双关语的意思)(好吧,对于纯粹主义者来说,这是可以做到的,但它涉及大量的时间、精力和纪律,这正是为什么VM和容器(例如Docker)最初被设计出来的原因)。
所以,请像这样思考你的问题
“考虑到保持所有环境一致性的极端困难,即使考虑到学习曲线,将软件部署到docker映像是否更容易?”
.我想你会发现答案总是“是”——但只有一种方法可以找到答案,将这个新问题发布在Stack Overflow上。