Docker如何为企业产生价值?


容器技术很早就有,如BAT这些互联网公司也早就大规模使用容器技术。

那么相对于传统的容器技术,Docker如何产生更高的价值?

Docker火起来的真正原因是什么?

我认为有这么几点,
  1. 普通开发者有机会接触容器技术,享受开发发布一体化的便利。
  2. 容器云是区别于传统IaaS服务的另一种更快速更高效的轻量级选择。
  3. 基于镜像的第二个GitHub、CI/CD服务、代码发布、在线debug。


但是针对有实力的大企业,这些并不是刚性需求。

那么,Docker到底如何成为大家的刚性需求呢?到底Docker上面的杀手级价值点在哪里?
已邀请:

郭蕾 - InfoQ主编,关注容器技术的发展。

赞同来自: 石海旭 wonderflow xinweihome 吴锦晟 寻觅神迹 hydRAnger noprom 等冰的雪更多 »


健波,你这个问题其实Docker公司的人最清楚,Docker是一个开源项目,也是一个产品。如果你是产品经理,肯定要知道它的目标用户以及目标场景,对吧?正好Docker两周年的庆祝活动上,Jérôme Petazzoni分享了他对Docker的定义,Jérôme是Docker公司员工,做了很多事,大家应该知道,所以他说的其实就是Docker公司说的。

我们曾经为Docker想了N多使用场景,但你有没有发现,官方对自己的定位一直很简单:an open platform to build, ship, and run any app, anywhere。看到了吧?这是官方定义的Docker,这不也是他们的初衷吗?

Docker真正火起来的原因是什么了?后面Jérôme又说了一个话题:What can Docker do for me,我贴几个重要的:
  • Get a well-defined, reproducible environment
  • Define this environment in a Dockerfile
  • Build this Dockerfileinto a container image
  • Run this container image anywhere


好的产品一定是解决了某一个需求,而Docker也不例外,所以我觉得Docker的亮点是可以通过镜像来定义环境。

william - cSphere CEO

赞同来自: wonderflow hydRAnger 浩瀚 sharon山哥 cSphere


这是个有趣的商业话题讨论。

提到的3个点,对“有实力”的大企业,需求不刚性,是说他们有实力自己实现?

大量的企业,并没有强大的研发实力,但是都是需要IT支撑业务发展的

废话预警

妄自把题主的企业聚焦到了大家比较熟悉的一些所谓垂直行业的企业,他们大都有个特点,他们不是纯粹的IT企业,他们有各自的业务,他们更多是IT技术的使用者,当然有时也可以算是IT技术的创新者。(其实,这个角度讲,所谓互联网巨头大都有各自的业务,在经营各自业务的同时,他们只是更多的充当了IT技术创新者的角色)

然后换个角度,来看看

搜狗截图20150326130901.png


如上图,从企业看新技术, 可以有两个维度,一是同企业业务的关系,二是技术门槛。
举例而言,
以2G/3G/4G/*G各种通信技术及设备为例,对于通信运营商,只要他们一直做通信,这些其实直接是这些运营商的业,。所以这些通信新技术会一直很重要,只是可能会越卖越便宜;
以传统关系型数据库为例,对银行而言,传统关系型数据库一直也很重要,承载了银行的众多业务,就算去IOE等造成了一定影响;
Openstack,Docker,hadoop这些新技术其实也需要做两方面工作,一是降低使用门槛, 二更重要的是能够承载更多业务或者干脆直接为企业开拓出新的业务。极端点说, 要么帮人赚钱,赚到之前不能赚到的钱,要么帮人省钱。“”talk is cheap, show me money”。

具体怎么做,大概需要更多摸索了,比如说docker, 大致就是在开发-测试-生产 和 应用-中间件-基础架构这两个维度上去看看有没有发挥空间。

大致如此,都是废话。

bnuhero - 读书喝茶踢球写程序

赞同来自: freedemos wonderflow 吴锦晟 wanghaitao fastzhong


Docker 的价值

一个 IT 系统大致可以分为:
  1. 应用程序
  2. 运行时平台(bin/framework/lib)
  3. 操作系统
  4. 硬件(基础设施)


开发人员的主要工作是应用程序的编码、构建、测试和发布,涉及应用程序和运行时平台这两层。而运维人员的工作则涉及从硬件、操作系统到运行时平台的安装、配置、运行监控、升级和优化等工作。

云计算最主要的价值体现在实现了自动化运维。提高资源的利用效率,是较为次要的价值。

要实现自动化运维,需要解除 IT 系统各层之间的耦合,使各层变成可编程控制,即「software defined」的。只有我们可以编程创建和控制各层对象,才能达到最大程度的运维自动化。

硬件虚拟化技术解除了硬件和操作系统的耦合,用户可以编程创建和控制虚拟机(包括虚拟硬件,运行自定义的操作系统镜像)、虚拟存储设备和虚拟网络。

操作系统虚拟化技术解除了操作系统和运行时平台的耦合,用户可以编程定义适合应用运行的平台,包括需要的二进制程序、框架和库等。操作虚拟化技术既可以用来创建和管理系统容器,也可以用来创建和管理应用容器。如果是用作系统容器,这相当于一个轻量级虚拟机,目的是解除操作系统与底层的耦合。例如, LXC/LXD 和 OpenVZ 属于这个路线的。而 Docker 容器主要是用作应用容器,包括两方面的功能:

静态打包:把应用程序及其运行时打包为一个镜像;
动态运行:以一个应用容器的形式运行这个应用。

Docker 提供的这些功能是任何一家公司开发 IT 应用时都需要用到,它的使用是轻量级的,只需安装一个 Docker 软件包,就可以用起来,例如,用作开发和测试环境的构建。单机也能用,集群也能用,既可以简单,也可以复杂,非常灵活。想想看,如果你要安装和使用 OpenStack,有没有这么轻松便捷?

Docker 本身只提供最基本的功能,如果用户需要构建一个复杂的 IT 系统,单靠 Docker 本身是不够的。幸运的是,Docker 不仅提供了 API,还形成了一个庞大的社区和生态系统,包括知名的那些 IT 巨头。因此,基于 Docker 的解决方案具有非常大的灵活性,从原理上讲,不会对你的操作系统、运行时平台有特殊的限制。我个人觉得 Docker 是符合 Unix/Linux 哲学的:只做一件事,做到最好。还能与其它程序复合(compose),完成更复杂的功能。

有实力大大企业当然可以实现自己的容器技术,但是它们不会得到一个生机勃勃的生态系统,这个是最重要的。

难易 - 华为杭州研究院PaaS开发者

赞同来自: william wanghaitao fastzhong


对最终用户而言,Docker提供的是一个标准化的交付方式。

把应用跑起来只需要两样事情:
  1. 一个64位的linux内核
  2. 一个打包正确的docker镜像地址,或者Dockerfile


这样,用户,不管是大企业还是普通想在服务端跑程序的人,只需要这2者就完了。不用去操心一堆的数据库、消息队列、中间件、jvm参数、等等等的所有麻烦的事情。

这种交付方式能给用户带来什么体验呢?
一个形象的比喻就是目前iphone手机上的APP,在用户看来,只要点击“安装”,然后在桌面上就会出现一个图标,从灰色到下载完毕。其他任何事情都不需要操心。(我已经觉得该开发一个iphone版的docker容器的形象化管理程序了)想想我们当年多么痛苦的在PC机上安装游戏或者各种软件,现在在手机和平板上已经过了这个阶段,服务端也该过这个阶段了。

在这个前提之下,这样的应用场景就会出现:
任何一个人或者组织都能从docker市场上买到服务端应用,然后一键部署在自己使用的云上面。

组织这个市场的人会从中获取巨大的利润,就像现在的苹果市场或者安卓市场一样。

xiaolunsanguo - 京东商城-基础平台部-JDOS团队

赞同来自: william wonderflow


我们先来看,一般大型企业的业务比较多,开发、测试、运维的环境都不能统一。从开发到上线,会有相当多的时间用于一遍遍搭建环境。当然,以前的VM也是能够做到。但是VM的效率跟容器会有一些差距。
同时,容器由于是轻量级,能够快到容器的快速迁移,秒级HA。这也是VM做不到的。
而且容器的资源限制也能够对于不同级别的业务进行更好的规划。
综合来看,就我的使用心得,docker的最引人注意的是统一环境,保证效率,HA、资源限制。
至于分层,目前还没使用的。估计以后业务迭代开发时候会进一步利用起来。
Dockerfile的使用比较少。代码发布的话暂时还不会使用这种方式。

yoofooyoo

赞同来自: wonderflow


从商业的角度出发,企业资本家都是逐利的,docker这样的新技术之所以能火,必定能够给当前处于弱势的企业带来逆袭或者突破的机会,但是对于已经躺在印钞机上记得利益者,也许真的不是那么的需要。

walker

赞同来自: 石海旭


請問apple為什麼生產一體化軟硬件,而不是分好層讓大家靈(xia)活(J)搭(B)配(gao),搞笑

alexwhen

赞同来自: darker


分析lamp一键安装包这个现象就可以知道了

9lives - 爱生活,爱云计算。

赞同来自: ATSTZWD


个人认为,docker最优秀的地方是基于版本控制的方式去构建应用环境,每个应用都可以使用不同和相同的版本的docker image来构建,并且可以清楚的知道各版本之间的差异在什么地方这对于应用的升级打patch等维护无疑是革命性的改变。当然目前还没有一个比较成熟的案例和解决方案,但是我们相信很快就会有的。比如很多公司正在研究如何用docker等容器技术来解决OpenStack的跨版本在线升级问题,这个就是最好的例子。

欢迎大家讨论。

xds2000 - 数人科技CTO

赞同来自:


Docker简化了开发流程中最复杂的事情:构建环境。它也相应给开发者带来另外的挑战,那就是环境更加复杂。目前这个技术还是一个尝试的阶段,谈不上能带来什么,但最少可以改变一些日常的使用习惯。

jiyiyun - 共同学习,共同进步

赞同来自:


完全可以,就像集装箱改变了货运历史一样。

badounan

赞同来自:


目前感觉还是对运维的帮助比较大

要回复问题请先登录注册