Docker是一个自动化部署应用的开源引擎,它将任何应用看作为一个可以运行在任何地方的轻量、便携及自给自足的容器。 是的。但什么是docker呢,你也许会问?让我体验一下。 但当有另一个Rails应用需要使用相同环境时会怎样呢。你需要安装另外一个与之前生产环境相同的实例来运行第二个应用。 云平台当前云平台提供按需求伸缩扩张和按使用模型付费的服务(但并不完全) 提供和构建时间目前云平台的愿景要求你,必须维护一个绝对低限度的实例,来全天候地服务于所有应用。具体点来说,作为云服务的使用者,即使现在没有一个用户在使用你的应用,你也需要维护一个最低功能的实例 云程序之所以要做成这样,是因为一些云应用的属性,像程序的提供和构建时间这样的,其重新启动的时间至少需要几分钟。所以,为了以防万一,你必须很好地维护一个实例。 这儿也正是Docker优势所在, docker几乎不存在应用的提供和构建时间,即使是开始一个docker容器,有时还不到一秒种。docker的这个特性几乎可以让使用者完全不需要一个占用着专门处理器,内存和磁盘空间还得全天候运行的实例了。 实例抽象云服务提供商通过提供一个独立的虚拟机实例来获利。使用者根据使用这些实例的时间来付费。这些实例都是彼此隔离的,而且资源都是自己的,因此通过虚拟机实例来收费也是合理的。 在使用容器的情况下, 操作系统被许多容器共享。此外,既然这些容器没不会一直需要一个专用的处理器和的内存。通过抽象实例付费的方法可以抛弃了,通过你使用的模型来付费的方法出现了。 专业化服务的提供商,比如数据库托管和图形加工处理提供商,可以大大受益于这样的解耦实例。不是通过分配资源这样的选择服务多少收费,而是通过实际服务使用量这样可插拔式的服务来收费。最后说一下,抽象底层机器将有利于衡量服务使用量 按小时支付模式大多数的云主机提供商要求用户按小时支付(即使你只用了15分钟然后就把你的实例杀掉了),但这已经比原来需要购买专用硬件已经好很多了。但是,这仍然不是你只支付你所用的部分。通过像docker一样的共享资源环境的模式,客户只需要支付他们所用的CPU周期和内存就可以了。 开发的便利到目前为止,开发者们被要求维护不同的开发环境和产品环境。这种不一致性不可避免的带来了问题。Docker承诺将会通过使开发和部署在相同的容器中来消除这些情况,这也将使得开发更加容易并且少一些痛苦。 英文原文:Docker will change everything |