Docker是否应该用于非devops环境,而不是非常灵活的环境?

想象一下,在一个新的Web应用程序项目的开始。 通常的基础设施需要build立 – 数据库,networking服务器,appservers。 从一开始你就知道这个项目将会非常stream行,在开发团队,部署团队,运营团队等之间都有严格的分工。没有连续的部署,没有任何连续性。

主张像这样的项目使用docker是否有意义?

使用docker有没有隐藏的优势,我失踪了?

编辑:下面的@VonC提出的观点是完全有效的,然而我在这里寻找的是在开发/发布过程中拥抱docker的论据。

在这种情况下,docker可以用来指定一个开发环境,这是一个图像,其中包括:

  • 预装正确的语言
  • 正确的IDE设置
  • 在正确的版本的正确的工具

这样一来,开发人员只需要开发和运行专用于开发的图像,就可以立即开始工作,而无需进行任何configuration。


赞成或反对在开发/发布过程本身拥抱docker的理由

这主要是关于复制执行环境的能力。
这可能不是针对您的情况的持续集成/部署,但对于在“喜欢”(或“接近”)生产环境中开发仍然有用,可随时在生产计算机上轻松重build。

  • 一致的开发/生产环境(不需要stream浪者等)
  • 使用Docker进行configuration要简单得多
  • 如果你想使用微服务模式,那么无论生命周期如何,Docker都会有很大的意义。
  • 充分利用Docker也会迫使你在我看来build立更好的应用程序。
    • 它鼓励您创build高度解耦/ 12因子的应用程序
    • 一切都是一次性的 – 容器,服务器,负载平衡器等。如果你有一个服务器的问题,销毁/replace它。
    • 使用服务发现模式使得缩放更简单,更dynamic
  • Docker基础架构 – 一旦安装,便可轻松扩展到多个应用程序,从而节省时间。
    • 服务器群集
    • 服务注册/发现机制
    • DNS处理和dynamic负载平衡
    • …所有这些,一旦安装,将适用于多个应用程序
Interesting Posts