Docker生态不会重蹈Hadoop的覆辙

2016-08-24 晏东

本文作者晏东

Ghostcloud 创始人

  今早一起床就看见朋友圈内在转发一篇名为《Docker生态会重蹈Hadoop覆辙?》的文章,作为一个既从事过Hadoop创业,也正在做Docker创业的人,我觉得还是有一些发言权,本文中的观点仅代表个人观点,算是抛砖引玉。

1. 形态上的差异

  2013年的时候,Hadoop确实很火,不过当时的感觉是安装和操作极其不方便,如果没有Linux的基础,可能需要个一周都不能搭起一个集群。

  因此,不管是国外还是国内都出现了帮助方便搭建平台的项目或者公司,当时国内的EasyHadoop,Intel,也包括我们这个兼职小团队。由于我们是做存储和备份一体机,当然就是做Hadoop OS和Appliance,事实证明这个也是Cloudera的发展路线。记得当年还有一个朋友的团队,也是做类似的Hadoop实施,免费拿去POC了半年,然后想做案例。在当时,能很快搭建环境就是牛逼,这个也是特定时期的结果。

  但真正大数据发挥出价值是同业务的结合,纯做技术的是很难存活的,现在能有这么多大数据公司,都必须同业务场景结合起来,也因此在大数据领域最缺的不是技术,缺的是即懂技术又懂业务的复合型人才。

  Hadoop和Docker都是开源项目,这个确实不假。但是,在开源大行其道的今天,不能因为都是开源就能做类比。Hadoop是一个大数据的分析框架,可以说是Google的大数据平台的开源实现,它解决的只是一个云计算领域特定的问题,即大量数据的存储和计算问题。因此, 我认为是一个PaaS层级的东西。为用户提供了一个看似人人都可以使用的开源平台,但实际确实有很多的坑。这个也许正是开源的魅力,任何人都可以快速的使用,但是一旦深入就会步入雷区,也因此才有了这么多的创业公司。

  而Docker是操作系统级虚拟化(容器虚拟化)的一种具体实现,容器虚拟化并不是新技术,很早之前就有了。其使用的核心技术跟第一代虚拟化技术-Hypervisor是完全不同的。因此我认为Docker开源项目是一个IaaS层面的东西,当然通过开发可以赋予它PaaS层的属性。

2. Docker火爆的原因的不同见解

  Docker有很多的优势,具体的我就不讲了,如果不清楚的可以参照各大创业公司的步道Meetup。但是《Docker生态会重蹈Hadoop覆辙?》中,把其归纳为1)开发者能使用Docker;2)镜像仓库和开源,谁都可以用。

  对于这两点,我不敢苟同。众所周知,IaaS是一个更偏底层的服务。基于Hyper-V的虚拟化出现了AWS, 阿里云等公有云的巨头,也出现了很多私有云解决方案,而Docker的出现是为了改变整个云计算的基础架构,笔者认为这才是Docker火的根本原因。

  我们可以看到,整个Docker的火爆,其实是伴随着公有云和混合云的发展起来的。在公有云环境中,入门资源看似便宜,但一旦量大了其实非常昂贵,所以真正用的比较多的是低配实例。而Docker从技术层面赋予了公有云这种更大化利用资源的能力,当然私有环境中同样也有这种优势。

  另外,从第一天出现,Docker就是为了标准化的应用交付,一旦一个标准建立,就会带动整个后续的产业发展。容器技术看似只是简单的进程隔离技术,但带来的将是巨大的变革。这一点,我经常将操作系统的保护模式和非保护模式进行类比。在这种保护模式下,诞生了微软帝国。

3. Docker的应用场景

  虽然我们也是一家Docker的创业公司,但是我们从来没有吹嘘Docker可以运用到所有场景,并取代虚拟化。(这里我要吐个槽,之前参加业内有一家友商的Meetup,确实是牛皮吹破了天,提出的口号是“一直被模仿,从未被超越”。然后还在某个聚餐时刻说某某公司抄袭他们的,但是要知道这个圈子其实是很小的。我想问一下Tutum放在什么地方呢?)。

  话说回来,到底Docker能应用到哪些地方呢?——我的答案是所有基于Linux的服务型应用。

  因为Docker容器本身就是Linux进程,运行服务型的,没有桌面的应用是最好的。虽然包括Docker官方都在吹嘘对windows的支持,但是很多人都是断章取义,在windows上装个虚拟机或者轻量级Linux虚拟机能叫支持吗?真正的支持是在容器中运行windows应用程序,微软一直在做这个事情,也放出了demo版,但是一旦容器运行的是windows程序,那么整个现有docker生态里的镜像都将不可用。所以一定要区分,在容器里面运行windows程序和在windows系统上运行容器。另外,容器从进程模型上看是daemon派生出来的子进程,是共用的操作系统,因此不能做到内核层级的隔离。换句话说,如果你的应用涉及内核(你自己的内核程序),是不适合使用Docker的。从其进程模型上,我们可以很显然的得出, Docker适合运行所有的无桌面的,不涉及内核的服务型应用。因此,Docker如果要完全替代虚拟化是不可能的。但是,云技术和互联网应用快速发展的今天又有多少是一定使用桌面呢,又有多少开发人员会去开发内核呢?通过BS架构可以很好的支持可视化操作,而真正做内核开发的我觉得这个比例不超过10%吧。因此,客观的说Docker绝不是云计算的唯一技术,而是日后云计算的关键技术。

4. 国内外Docker创业环境

  1) 公司数量

  根据2015年DockerCon的《The Docker and Container Ecosystem book》报告,当年在美国有190家公司和项目都在这个生态圈里面。分别从事开发工具,应用部署和镜像管理;运行环境,平台及主机;容器管理,编排,调度,监控;IaaS;镜像仓库及安全;咨询服务。所以国内如果只有20家创业公司,真不算多。

  2) 产品同质化

  与国外各自专注在不同领域不同,国内确实存在产品同质化的问题。并不是创业公司不想差异化,但是差异化需要资本市场更多的容忍时间,比如做容器安全和网络,都可以做的很深,而且很有前景。但是,一个特定垂直方向在现阶段没有办法带来直接的收益,无法解决现金流的问题,那么肯定大家都会往右现金流的地方扑过去。

  3) 过度宣传投入

  同《Docker生态会重蹈Hadoop覆辙?》指出的相同,创业公司中确实存在很多过渡的市场宣传。做个专访要钱吧,发个文章要钱吧,参加一场大型活动赞助要钱吧,就连翻译个国外的文章都必须得给钱才能保证质量。不过,并不是所有创业公司都把精力花在PR上,至少我们80%是用在研发上面。

  4) 开源贡献

  Docker旗下的开源项目众多,一般Docker引擎是关注最多的。国内贡献最多的是华为,其他公司真正能给Docker贡献代码的其实很少,我们也是为数不多拥有Committer的公司,不过整体国内创业公司的贡献不多,有影响力的基本没有。并不是贡献开源社区有多难,贡献开源社区是一个很耗时耗精力的事情,创业公司自己的业务都忙不过来,哪儿有那么多精力去贡献啊,顶多遇到问题去解决一下。不过,如果一个公司都不是用Go语言开发,基本上也不大可能有对Docker的把控能力,有Docker把控能力意味着可以出Hotfix,遇到问题不需要等官方出版本,我们认为这是比较关键的能力。也因此,我们将Docker的内部控制看得很重,虽然不会刻意去贡献,但是会对常见的各种问题做预案。

5. 开源的框架

  目前主流的有K8S,Mesos和Swarm。Docker出现以后,很多公司都去鼓吹大规模集群管理和调度,但是连ESXi都没什么大规模的机器需要调度,作为一个创业公司或者第一个吃螃蟹的企业,真的会有那么多机器让你去调度管理吗。

  一般来说开源都可以加快产品上线,但是带来的问题就是企业或者商家是否有把控这些开源项目的能力, K8S和Mesos都是偏重量级的框架。一线互联网公司使用开源的路线无不是:开源->修改->自研,所以我们公司从一开始就没考虑用这些框架,而是使用自己研发的框架,这些框架也是我们多年分布式领域的积累。我觉得创业型公司,需要有更多的把控能力,包括Docker本身和操作系统。记得曾经参加某次Meetup,当有位老师在讲他们如何通过Mesos, Docker,Registrator, Etcd等等来实现负载均衡的时候,我提了两个简单的问题他们就无从解决。

  1)我在使用Docker中有时候会出现Daemon卡住无响应的情况,请问怎么解决?他的回答是,这个是Docker的问题,我们解决不了。也可能是操作系统的问题,我们不解决。

  2)你的负载均衡能够实现动态的伸缩吗?他的回答是,只能人工手动来伸缩。听到这些回答,我真是感到非常愤慨。这也许正是很多人说Docker创业公司浮躁的原因。

  Docker公司官方对K8S和Mesos的厌恶已经不是什么秘密,也因此其不予余力地推Swarm,甚至将Swarm直接内置到docker里面。而Swarm是一个非常新的东西,我们的内测就发现不少的问题。但由于官方绑定如此之紧,以及从去年到今年的一系列收购,谁愿意去抽出时间去给他们做嫁衣呢。好在有OCI标准的出现,作为创业公司,我们不需要被Docker公司绑架。说到这儿,我觉得有必要澄清一下Docker和Hadoop的对比关系。Docker开源项目可以和Hadoop开源项目对应起来,Docker公司可以和Cloudera对应起来,而Docker的DDC也许可以和CDH对应,但是国内基本没办法用,这也是国内创业的机会。不过,我觉得这也许不是一个恰当的对应,真要对应也许和OpenStack更容易对应。

6. 商业模式

  公有云肯定是大家都想做的,但是公有云短期内肯定是巨头的天下,而且大家都还在使用vm呢,要让别人来使用CaaS顶多就是尝新鲜。做公有PaaS接入,跟文章作者所说一样,要想在国内赚开发者的钱真的不容易。而且做公有云,需要很大量的投入来降低边际成本,我觉得国内创业公司目前都是玩不起的。所以,这也是很多企业都转做私有云的原因,这样离现金流更近。

7. 投资

  《Docker生态会重蹈Hadoop覆辙?》文中提出,Docker本身技术不成熟,商业成功不是一个短期过程。这一点我还是比较赞同的,但是从投资的角度,如果一个技术都是成熟的,就像做App一样简单,那基本也没有什么投资价值了。投资本身就是有风险的,也需要前瞻性。我接触的国内外的朋友,即使是做VDI的,包括VMWare,都承认Docker会在未来2年给虚拟化市场带来巨大冲击。既然这是一个未来趋势,那么肯定有其盈利的途径,而不是看其短期内是否盈利。至于具体途径,那就各显神通了。至于Docker和Mesos没有盈利,其他创业公司就不能盈利,我并不赞同这个理论。开源的运作模式,本身初期就没有考虑盈利,而且作为开源项目本身就是大家的,不存在是谁一家的,在国外没有代言人,在国内也没有。如果某一家公司企图独占,肯定会出现另一个项目。Docker公司对开源项目的贡献是巨大的,正是他们的贡献才衍生出很多其他的相关产业。如果一个投资机构,只是投Docker本身,我觉得是目光短浅的,他应该看重的是当Docker普及化后的相关产业。就像现在做大数据的公司一样,如果只是做平台搭建,肯定是死,但是如果和业务结合起来,那就是活。

8.企业CaaS建设

  确实业内存在很多的能提供Docker管理软件的公司,水平肯定也是参差不齐,整个Docker才出来3年,版本更新这么快,要说谁的特别出众很难说。我想提一下Rancher的commit graph,里面95%以上的提交是两个人完成的,还是外国人。所以我觉得企业在考虑管理软件的时候,第一需要考虑的是研发定制能力和快速响应能力。第二,管理软件是否经受了大规模的考验,我觉得公有 CaaS和已有案例都是比较好的评判标准。第三,一般我们实施项目的时候都不是简单的搭建一个平台就完事,我们会通过咨询,培训,联合开发,一期,二期的方式循序渐进。Docker创业公司可能会消失,相比于很多PPT项目和政绩大数据项目,这些公司至少会将先进的软件开发理念,比如:敏捷,精益创业,微服务架构等等,传递给落后的国内IT企业。相比于国外咨询公司动辄几十万的咨询费用,国内的Docker公司无论从技术和水平方面都不落下风。所以,我觉得对待新兴创业公司需要多一些宽容,我相信没有一个Docker创业公司希望做一个烂工程。

  Docker创业公司肯定会面临同行和传统IT公司的竞争,不过在项目竞争方面,很多时候都是客户主动电话联系的我们,至少我们不是那10家中的一员,整个未来市场这么大,与其头破血流往一个地方钻,不如潜心研发产品。在树立标杆上面,我觉得我们自身就是一个很好的标杆,全容器化的公有CaaS平台和全微服务的架构,正是所谓“Eat your own dog food”。

  对于传统企业使用Docker这一点上,我们觉得是非常有必要的,现在大家都喜欢谈工业4.0,而Docker可以很好的提高企业的信息化建设。传统的像IBM那一套,早就过时了,国家为什么要去IOE,就是要借鉴互联网公司的先进技术和理念去赶跑那些暴利公司。早期的互联网公司吃够了IOE的亏,才摸索出一套行之有效的方法。既然现在绝大多数互联网公司都在使用Docker了,传统企业为什么不跟进呢。企业的容器化改造,实质是IT信息系统的升级,这是迫在眉睫的事。企业可以根据自己的实际情况选择多种合作方式,比如自主研发,咨询,联合开发,以及第三方产品。《Docker生态会重蹈Hadoop覆辙?》的观点我也非常赞同,如果要选择厂商,需要综合考虑公司的实力。不过,除去Mesos, K8S和Swarm之外,还有像我们这种自主研发的,拥有绝对的系统把控能力。

  总的来说,笔者认为Docker生态圈的发展很难同Hadoop一样,在未来的某一天当容器成为标准应用交付手段的时候,所有云的节点也许都将运行在容器中,我们将看到越来越多的容器化服务。

时间: 2024-10-07 08:35:39

Docker生态不会重蹈Hadoop的覆辙的相关文章

Docker生态会重蹈Hadoop的覆辙吗?

Docker生态会重蹈Hadoop的覆辙吗? http://mp.weixin.qq.com/s?__biz=MzA5NDg3ODMxNw==&mid=2649535024&idx=1&sn=5e15a1afd3adfd3dca538c688e28d1e2

基于Docker快速搭建多节点Hadoop集群--已验证

Docker最核心的特性之一,就是能够将任何应用包括Hadoop打包到Docker镜像中.这篇教程介绍了利用Docker在单机上快速搭建多节点 Hadoop集群的详细步骤.作者在发现目前的Hadoop on Docker项目所存在的问题之后,开发了接近最小化的Hadoop镜像,并且支持快速搭建任意节点数的Hadoop集群. 一. 项目简介 GitHub: kiwanlau/hadoop-cluster-docker 直接用机器搭建Hadoop集群是一个相当痛苦的过程,尤其对初学者来说.他们还没开

Hadoop 2.6.0 重要特性之 Docker Container Executor (DCE)

Docker Container Executor (DCE) 是 Hadoop 2.6.0 包含的一个重要特性:至此,大数据的巨人 Hadoop 也终于可以利用当前虚拟化/云计算领域的宠儿 Docker 的强大能力了. 对于 Docker 概念介绍的文章已经非常多了,因此本文就不再赘述,仅仅直接引用 Hadoop 社区里对其的描述:"Docker (https://www.docker.io/) combines an easy-to-use interface to Linux contai

用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(下)-搭建Hadoop集群

上篇:用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(上)-快速上手Docker 上篇介绍了快速上手Docker部分,下面接着介绍搭建Hadoop集群部分. 六.搭建Hadoop伪分布模式 我们先用前面创建的这个容器来搭建Hadoop伪分布模式做测试,测试成功后再搭建完全分布式集群. 1.SSH这个centos容器可以看做是一个非常精简的系统,很多功能没有,需要自己安装.Hadoop需要SSH,但容器没有自带,需要我们安装.①安装SSH # yum -y ins

Docker安装Hadoop

一.概述 形成了安装有vim.jdk.ssh的centos镜像,现在我们在这个的基础上继续搭建haoop. 在正式开始前,了解一些docker容器的操作命令 docker  ps:查看活动的容器 docker ps -a:查看所有的容器(包括终止状态的) docker images:查看镜像 docker run:基于镜像新建一个容器 docker container start 容器id:启动已经终止的容器,但不会进入容器,容器在后台执行 docker container stop 容器id:

使用 Docker 搭建本地 Hadoop 集群

终于开始学习hadoop了,虽然是学校开课了才开始跟着学校的课程学,至少也是开始了.首先要做的就是搭建好一个hadoop的环境,需要三台主机,配置一个master两个slave的架构.老师让我们用vbox来做,但是个人觉得虚拟机太慢了,而且还要开三个,太亏.刚好最近开始接触docker,准备就在docker的环境下搭建hadoop环境. 安装docker 可以考虑使用国内的加速镜像 daocloud.io 注册后可以看到如何使用 由于我已经通过官网的方法安装了,这里就只记录下我的操作: curl

Docker搭建Hadoop环境

文章目录 Docker搭建Hadoop环境 Docker的安装与使用 拉取镜像 克隆配置脚本 创建网桥 执行脚本 Docker命令补充 更换镜像源 安装vim 启动Hadoop 测试Word Count 查看Web管理页面 Docker搭建Hadoop环境 Hadoop集群环境配置起来相当繁琐,并且在学习Hadoop过程中没有一般不会去使用多台设备进行分布式集群配置.因此在一台机器上配置Hadoop分布式集群时通常采用虚拟机来模拟多台设备,但虚拟机较为占用系统资源,开多个虚拟机(模拟Hadoop

docker搭建hadoop分布式系统

本来我一直想搭建一个hadoop分布式平台,没有高性能机器,也没有那么多机器,搞很很久,都没有能搞定.但基于docker,5-10min轻易搞定. 感谢大神KiwenLau的分享,网址是https://kiwenlau.com/2016/06/12/160612-hadoop-cluster-docker-update/ 一. 项目介绍 将Hadoop打包到Docker镜像中,就可以快速地在单个机器上搭建Hadoop集群,这样可以方便新手测试和学习. 如下图所示,Hadoop的master和sl

互联网金融走向交叉,生态才是王者

互联网金融走到今天,早已经不是什么新鲜的词汇了,P2P.支付宝.微信支付.众筹……这些很多人都已经耳熟能详.大部分人都习惯把第三方支付.宝宝理财.P2P.众筹等分开来,认为他们是互联网金融的不同形态.不过在刘旷看来,今天的互联网金融平台之间的界线却已经没有那么明显了,互联网金融正在开始走向交叉…… 比如在国内的互联网金融市场,实际上目前最大的平台是余额宝这个宝宝理财产品.不管是支付宝等第三方支付,还是传统银行平台,他们都在开始各个互联网金融理财产品的生态布局,未来的互联网金融的王者一定属于生态!