docker,编排,调度这些都是PaaS里面的经典概念。前面写了一篇文章《Docker和hadoop》,直言docker并不是Hadoop体系的关键技术,当前阶段只是作为大数据体系的一个很小的补充,更适合在应用领域的开发、应用和部署。
其他相关阅读:
说到docker,两家公司不得不提,这也是docker领域的核心玩家: 1)Docker Inc. 轻量级虚拟化技术其实存在已经很多年,07年cgroup就进入了Linux内核,Docker是PaaS提供商dotCloud(最近已经正式改名为Docker Inc.)开源的一个基于LXC的高级容器引擎,源代码托管在GitHub上,基于Go语言并遵从Apache 2.0协议开源。Docker的出现极大简化了容器的创建和管理,分层式的AUFS实现了Docker镜像。组合式创新,推出build,ship,run一体化概念,一下子点燃了容器技术圈的热情,概念持续火爆至今。 2)Google 眼看docker.inc这么火,google一看不干了,容器这种技术,google已经玩了十几年了,Google才是在生产系统中大规模玩容器的鼻祖呀,于是把自己玩了很久的borg精简精简开源出来,这就是k8s。
说实话看到最初的k8s,你会对k8s的简陋感到担心,当时CF,mesos明显更成熟。不过Google确实是玩生态的行家,Android,TensorFlow,成功的案例很多。k8s经过几年的生态运作,也基本奠定了在容器编排领域的江湖霸主地方,CF和mesos基本上被边缘化了。
Google玩生态就是牛,15年Google联合其他20家公司宣布成立了开源组织Cloud Native Computing Foundation(CNCF),也成为paas行业领域的权威组织,最近AWS都已经加入这个组织。国内的几家厂商,阿里,华为,腾讯都是会员。
作为一种时髦的技术组合,受到了业界的追捧,加入的公司非常多,到CNCF简单数了下,会员组织超过了80+(会员是要交钱的哦)。搞这些的公司估值也创新高,以docker公司为例,2017年8月Docker宣布获得7500万美元融资,交易后估值达13亿美元。(总融资超过2.5亿美金) 虽然Docker的技术受到了大量开发人员的好评——其社区拥有3000多名个人贡献者和270多个技术开发小组,但超高的人气并没有给他们带来实际收入。 这个其实也不难理解,企业软件开源虽然可以带来人气,但是转化成商业模式时缺非常困难,在这个领域通过开源软件赚钱的,最成功的应该是redhat(大量的收入来自服务),一年的收入也才20亿美金。Google搞的最成功的Android,更多的是给自己带来了流量,促进了搜索服务的应用,真正赚钱的是被三星这家设备厂商赚去了。正是因为不赚钱,所以你会看到Apple在开源领域其实没什么建树,其实也容易理解,大部分人忙着赚钱呢。 关于赚钱模式,可以拿一个例子来类比,就是cloudeara。当年搞大数据的cloudera,火爆程度不亚于现在的docker。几条道路: 1)提供企业版本,收服务费用。 2)在AWS/Azure上提供云服务(或者自己单干),赚云服务的钱。 根据Cloudera IPO提供的财报显示,Cloudera在2017年1月底结束的财年里面赚了2.61亿美元,去年同期是1.66亿美元。今年的利润是-1.87亿美元,比起去年-2.03亿美元好看一点。08年就成立的公司,十年快过去了,还在烧钱。钱不好赚呀,虽然他在bigdata开发者眼里就是神一样。
而真正在hadoop领域赚到钱的估计应该是AWS,据内部消息,AWS EMR服务每年一个亿美金的收入,而投入才60人的团队,赚大了。
K8S刚推出来的时候,功能相当弱,当时mesos,Cloud Foundry都要比k8s成熟,不过Google还是牛,财大气粗,玩生态的好手,才几年工夫,对手基本上都干掉。拉了一票厂商成立CNCF,K8S称为容器调度编排的霸主地位已定。CNCF已经增加到85家的会员的数量,生态发展速度非常快。
3月25日,Docker把容器运营时捐赠给了容器的基金会,进入基金会以后,CNCF托管的项目目前一共有9个,包括K8S、等等,目前一共9个托管的项目。可以看到上面的图,相当于整个企业在云里面做运用改造,可能涉及到非常多的项目,包括整个技术架构,项目的安装部署,容器的编排,应用的开发和部署的流程,整个其实涉及到非常非常多的开源的项目,来支撑云应用层的生态,目前CNCF基金会管理9个项目,将来会有更多项目进入CNCF下托管。
简单的说,kubernetes是管理container的工具,openstack是管理VM的工具。 container可以运行在物理机上,也可以运行在VM上。所以kubernetes不是需要openstack的支持。但对于云计算来说,很多IasS都通过openstack来管理虚拟机。然后用户可以在这些虚拟机上运行docker,可以通过kubernetes进行管理。 Kubernetes可能被视为替代Openstack提供基于docker的容器调度和部署。轻量级的linux容器与虚拟客户环境分别是其产品的基本差异。 另外,K8S仍然缺少所有其他关键云(IaaS)组件,如身份鉴权服务,网络服务等等,它没有项目/租户的概念,而在典型的私有云设置中,这些概念直接关系到组织和项目的公司组织结构。 另外现在OpenStack也开始支持docker。更多的用法是k8s定位于paas层,架在OpenStack提供的IaaS上,以解决应用的快速开发部署,运维为切入点。
为了方便大家相互交流学习,创建了一个公众号同名微信群:《大数据和云计算技术交流群》,人数已经800+,欢迎大家加下面我的微信,我拉大家进群,自由交流。