DaoCloud创始人喻勇谈基于Docker创业成长之路

对DaoCloud联合创始人喻勇的采访被安排在一场他们组织的Docker meetup之后。在忙完一天的议题之后,他的声音有点沙哑,但是这并不妨碍他说话的速度。在大约30分钟的采访时间里,他给我详细介绍了DaoCloud创业的前前后后。他坦言,创业这半年特别有感触。当他看到用户通过Docker、通过DaoCloud一键式部署Code to Cloud的方式,提高开发效率,让优秀的开发者变得更优秀,能感到非常有成就感。

回忆起为什么会基于Docker创业,他表示自己和DaoCloud的另一位创始人陈齐彦一致认为,PaaS技术与应用的对接并非严丝合缝,他们发现企业应用正在从分层式架构转到互联网架构,而互联网架构的核心是轻应用、微服务。当这样特性的应用变成主流的时候,那它底层的支撑平台应该是以Docker这种轻量级容器为载体的平台。他认为并不是自己选择了Docker,而是看到了未来应用的发展趋势。他认为:“Docker未来有能力演化和发展为互联网上应用发布的标准,同时也会成为云计算未来三到五年里很重要的核心技术。”

enter image description here

DaoCloud创始人 喻勇

CSDN:为什么叫DaoCloud?公司的技术团队情况如何?

喻勇:DaoCloud中的这个Dao其实是“道”字。“道”在中国人的传统思维里面是有一定内涵的,比如道家,或者是为人之道、处事之道。我觉得落实到我们这里就是应用之道。因为容器是一种很好的应用交付的方法,应用到云上的一种运营方式。这个“道”我觉得一方面是取中国的道家思想的这个传统的字;另外方面,DaoCloud,与Docker也有一点谐音,而且叫起来比较朗朗上口。既跟中国的传统文化有对接,又跟我们用的技术有吻合。目前公司的团队还是以开发团队为主,我们另外几位核心的主力程序员也是在EMC、VMware工作了很多年,组成了一个非常资深的团队。我们做PaaS做得比较久,并且积累了一定的经验, 我们对整个行业也是有一定的洞察力。

我觉得PaaS再往下走,应用的转型会推动Container技术的火爆。Container的火爆不是因为它的技术有多好,而是因为它是应用的驱动引起的,整个团队对这个都有高度的认同感。整个团队现在以开发为主,现在有十几个开发工程师,除了核心的创始团队之外;我们也从向学校、高校招了一些非常优秀的毕业生。我相信团队技术能力方面有一定的积累;同时对市场、对整个大环境也有一定的洞察力。我认为整体上我们还是工程师文化比较重的一个团队。

CSDN:选择Docker开始创业,是看到哪些痛点?创业初衷是什么?你们整个平台的定位是什么?

喻勇:我觉得从痛点来说,其实是两个方向,一个方向是我们自己做PaaS做了这么久,不论Cloud Foundry也好、以前的OpenShift也好,这些PaaS技术与应用的对接并不是严丝合缝。Docker的出现从技术上来说并不是什么高深莫测的,而是让我们看到应用在发生变化,应用在从原来的三层架构的这种分层式架构,越来越多的转向互联网类型的架构。互联网架构是什么?是轻应用,微服务。当这样特性的应用变成主流的时候,那它底下的支撑平台是什么?是应该以容器为载体的平台来支撑这种轻应用和微服务。换句话说,就是应用引导平台的变化,当应用转型的时候,平台和技术架构也需要同时跟着转。不是我们选Docker,而是我们看到了未来应用的发展趋势。Docker必将对技术架构产生新的革命,成为解决现有问题的一个很好的答案。我们做Cloud Foundry的时候,采用了类似的容器技术Warden。我们研究后发现Warden和Docker很接近,并且正在开放。我觉得用Docker来做一个创业的出发点,结合上下游的生态,事情可以做很多、很广,这也是我们的初衷。

CSDN:对这个平台的一个定位,请用最简洁的语言概括一下,你认为是什么?

喻勇:我觉得就是Code to Cloud。Docker它是个应用发布的载体,那么当应用以Docker化的方式发布。当这个事情变成一个大家都遵循的方向和努力的时候,那上下游很多的努力,很多的生态,其实可以拉的很长的。从代码的测试,从镜像的构建,从版本的管理,从发布最后上云平台,这是个很长的链条。这个链条的开始是代码,是程序员代码,终点是公有云或者私有云的环境,我们称它为Code to Cloud。我们做得事情就是把这整个的链条给串起来,并且通过自动化的方式完成代码的测试、发布、容器化,最后以容器化的方式运行在用户想要的云平台上去。

CSDN:Docker很美好,能否分享下Docker未来的想象空间有哪些?

喻勇:我觉得Docker它处在一个很好的状态,它有两个非常重要的优势,一个是开发者的支持。你看他有非常活跃的开发者社区,开发者会知道怎么写Dockerfile、怎么向这个方向去靠拢、怎么去用他自己的应用以Docker化的方式去发布,这个是Docker的很多竞争对手目前所不具备的点。另外,它有大量的资本, 最近又融了九千五百万美元。它有资本,有开发者,所以这两者会形成很好的一个互动。我们现在也看到一些别的标准的竞争,我觉得这是个好事,这说明大家在争的一个东西肯定是个对的东西,是个正确的方向。我觉得对于程序员和用户来说,我们可以关注这个标准之争。更重要的是我们要思考,如果容器,不论是哪家的容器,是一种应用发布的标准,那我该为开发流程做什么样的改变,我该为我的架构做什么样的改变来适应这样的一个新的大的环境。

对于Rocket,我觉得和Docker是标准之争。真正的竞争不是说市场或者你用户有多少,而肯定是在标准。谁来定标准?定发布标准、镜像标准?这个才是最关键的一点。我看到Rocket也有大量的来自厂商的支持,包括Google等大公司。百花争鸣,大家都会朝这里面去努力,竞争越火,投入就越大,那最终获益的是用户,用户可以很快地看到一个更好的容器化交付的标准和环境。我觉得这是好事情。

CSDN:虽然Docker很美好,但是据我所知也有很多人并不看好Docker,认为这只是一个营销的噱头,你怎么看?

喻勇:回想十年前我们看虚拟化是什么?10年以前我们看虚拟化的时候它是个玩具,是个在我的电脑上实现多系统、不用分区的这么一个小的工具而已。但是从2007、2008年开始,虚拟化就进入企业成为主流了,这个发展速度是非常快的。Docker它处在同样的一个定位,大家都觉得这是个应用打包的小工具而已,但是它有能力演化和发展为一个互联网上应用发布的标准,甚至是未来云计算在三到五年里面一个很重要的增长点,以及核心的技术。我们看云计算前面五年八年都是在讲虚拟化。

虚拟化是什么?虚拟化是资源的提供方和承载者,它提供资源,他把物理资源变成虚拟资源,它提供的是资源。那用户要的是什么?我要的是我的应用跑起来,跑好,跑安全,高效的跑。容器更多的是面向应用的一个载体,会让云化的应用有一个大幅度增长的机会。我们在VMware做了好多P2V(Physical to Virtual)的事。我们上云,但应用还是按照以前的单机的方式去开发,只不过我把单机从物理机移到了虚拟机里面。作为一个云化的应用,它怎么很好地把整个的云资源给用起来?Cloud Native Application的最佳载体就是容器,就是Docker。目前业界对Docker肯定存在有各种各样的疑虑和偏见,但真的往前看一下,应用在发生变化,应用要更好地、更多地去使用云里面的资源的时候,必须打破这个单机或者虚拟机的框架,使得它更好的去调配资源。容器是一个非常好的切入点。

现在,我觉得大家在看容器的时候觉得它还有很多的局限性等等,但是也可以看到好的方面。五年以前,我们看虚拟机的时候,它仍旧有很多问题,开销很多资源,但它会变好,它变好的动力在哪里?或者说我们相信Docker会变得成熟,容器会变成主流的动力有哪几个?有两个,一个主要的动力是上层应用的需求,我的应用需要这样一个载体来承载我;第二是各大厂商的投入,VMware在投、微软在投、Google也在投。有这两个因素在这里面作为推动力,它的发展速度一定会比虚拟化从个人工具变成企业平台的速度还要快,这个我觉得是个明显的趋势。就好比说,以前你说虚拟化为什么从桌面工具变成了IT技术架构?因为服务器跑不满,因为硬件的CPU太快了,内存太多了,我必须做隔离,这是个很明显的驱动力;加上有云的需求,以及自动化部署的需求,使的虚拟机很快的从桌面的一个小工具,变成了企业的核心。Docker也是一样,所以我们对Docker,对容器技术是充满信心的。

CSDN:那么下面来谈谈你们DaoCloud平台的具体情况吧?

喻勇:就像我前面提到的,我们的服务主要是 Code to Cloud的过程。现在的应用形态是轻应用、微服务,所以需要Docker作为载体,这是第一个维度。另一个维度就是现在我们叫做持续交付的应用。持续交付意味着什么?意味着我每周,甚至每天都要发布。在一个分布式、互联网应用的云平台上发布是个很复杂的事,它需要程序员去做环境配置,开发环境、测试环境、生产环境等不同环境的配置,以及发布的管理;整个流程需要花很多的人力资源。我们怎么样在快速交付的时代,把这部分东西变得自动化?

以前的发布方式是我三天写代码,两天做发布,三天打鱼,两天晒网。我怎么做到天天打鱼不晒网?那这个过程就是需要自动化的工具,这就是DaoCloud要完成的事,我们将代码交付到云端,以Docker为载体做成自动化,流程化。当代码写完后,直接就可以发布,减少了用户的手工测试,手工构建以及配置管理的过程。那这部分,一部分是得益于Docker对环境的隔离性,另一部分是我们自己做得非常精细的、一环套一环的工具链来完成。DaoCloud做的事就是Code to Cloud,向云端快速自动化的容器式交付,,以及容器化应用的持续交付平台,它节省开发者的大量的时间。这是关键一点。

另外一点,我们还做应用在云上的生命周期管理,DaoCloud本身不拥有任何机房,但是你的应用以Docker化的方式交付的时候,我会管理它在云上的生命周期。容器化应用的生命周期管理也是我们做的事情。我们会以更有效的方式去帮助用户的应用高效地使用公有云的资源。 以容器来跑,我可以严格知道用了多少资源,用多少就申请多少,帮助用户更高效地管理容器化应用的生命周期。

DaoCloud的服务主要是围绕着以下几点:首先,应用是容器化交付的,那么我们在它的交付环节提高用户的交付效率,使它自动化;其次,在应用的运行生命周期里面,我们给它做良好的精细化生命周期管控。这是我们两条主线,也是DaoCloud核心价值所在。

CSDN:作为一家服务于开发者的Docker云平台,你们在平台打造过程中需要考虑哪些维度?

喻勇:其实有很多地方需要考虑,首先从开发者的接受度来说,怎样尽可能降低用户使用我们这个平台的门槛是一个需要考虑的问题。因为Docker是标准,所以用户只要有Dockerfile我们就可以跑起来。我们会帮助用户来完成一些像CI持续集成的这种门槛较高的配置,降低用户的入门门槛,这是很重要的一个维度。

第二点,这是个大平台,对我们自己来说,其实是个分布式的平台,我们的首要任务是提高效率;用户跑在我上面的应用如何跟不同的公有云很好地对接,这是我们考虑的第二点。在一个分布式环境之下,我在使用公有云的时候,怎样提高用户应用的效率。原来我的应用要跑个大虚拟机,现在我放到小的容器里面,它的成本可以很好地节省下来。分布式环境下资源的调度和管控能力,是我们在打造整个产品的第二个维度。

第三个可能更多的就是一些用户体验,安全性问题,这是产品设计的一个最基本的要求,这个我们考虑了很多。总结有三点,第一让用户容易用,用起来门槛很低,容易上手;第二在资源管控上面怎么样做精细化的资源管控控制,节省资源,既为我们自己节省资源,也为用户去节省资源;第三提高用户体验,提高安全,提高可靠性。

CSDN:平台构建过程中的难点有哪些,你们如何解决的?

喻勇:DaoCloud主要是一个分布式平台,由差不多四五十个分散的节点组成。我们自己的应用本身就是一个高度云化的应用,自己在开发一段时间之后,也遇到了发布困难,比如说这个交付的时候,可能有互相之间不一致的问题。我们的解决办法是什么呢?我们是用DaoCloud来开发DaoCloud,我的四五十个组件在编译的时候、在提交代码的时候、在打包时候,全部都打包成容器,然后在交付的时候每次版本更新,这四五十个容器组件推到云上去。你会发现这个流程跟DaoCloud给普通用户提供的服务是一样的。我们用自己的服务解决了很多诸如环境不一致、发布管理困难、版本控制困难的问题。

我们的分布式确实做得比较彻底一些,都是微服务架构,很多人会遇到同样的挑战。当我们前期把这个问题解决掉,并且增加经验后,我们就会分享给我们的用户。说到挑战,其实技术上有很多,比如说我们用Go语言开发,就会遇到一些新语言的挑战,一些性能的调试问题,但是这些都不是大问题。从整个研发的战略上来说,我选择轻应用和微服务的架构,就会遇到这种部署的挑战,最后我用自己的工具来解决自己的问题。现在我们已经开始这样的发布,4月份做了两次大的发布,5月份也有几次,这些发布都是用自己的平台来实现的。

CSDN:Docker在其目标客户群体中的认知度仍有待提升,而客户应用Docker的疑虑主要来自网络支持、安全性、迁移成本等方面,你们在这些方面有什么具体的措施?

喻勇:我们其实做了很多网络方面的增强,因为Docker进来的容器,它是有很多的网络端口,包括磁盘访问的各种各样灵活的东西,我们做了很多限制让应用有了更安全的环境。这部分其实做了很多别人看不见得工作,包括网络的防范,包括沙盒里面做的一些控制等等,这些东西是做在底层的。我们也给Docker提交反馈代码,包括去修一些Bug等等。这部分我们会变得越来越好,变得越来越巩固,越来越完善,这只是时间问题。

CSDN:用户使用Docker搭建自己的平台有多大的难度?

喻勇:用Docker自己搭建平台,难在哪里?难在整体的调度。当他做一台机器和五台机器去跑,问题可能都不会太大,但他如果一下子做到50或者100,或者更多台机器的时候,这里面的压力就会出来,就会慢慢地遇到问题。我觉得大平台的管控能力,整体的调度能力,这部分是用户比较难的一点。Docker上面的整体调度能力,以及几千个,几万个Docker,用好虚拟化资源的时候,底层资源就是很大的挑战。这部分我觉得是很多用户很难逾越的坎,需要由专业的厂商提供Docker的编配和资源调度能力,结合他已有的各种各样的SaaS服务,去串在一起。很多厂商现在看到的,或者说想得很明白,用户要解决的问题是应用的交付,以及快速交付,包括打包发布的问题,而不是要有做个Docker底层的能力。这部分很多人会用我们的服务来补足,形成一个互补。

CSDN:你们对Docker做了哪些优化?

喻勇: 第一,我们不改Docker的任何代码,保证开源的公开性,以后它有更新,我可以很快的追上来。然后我们对Docker的优化体现在在用户身上,比如说镜像,当用户访问Docker Hub的时候很慢,我们国内给它做代理加速,这个加速在我们自己的服务里面也在用,使得pull image速度会很快。比如说用户在做CI,在做镜像构建,在做Docker构建的时候,我们做了大量的针对中国特殊环境的优化,而不是Docker本身的优化。这部分其实是跟Docker无关,但是提升用户体验、特别是国内用户体验的过程。我们镜像Build的速度,目前是国内最快的,比本地还要快差不多20倍。本地做镜像可能需要30分钟,我们只要两分钟,或者两分钟不到就做完,这个15到20倍左右的速度提升是很快的。

第二我们是开放的平台,我可以和不同的服务轻松绑定,不管代码在什么位置,GitHub也好,国内的Coding也好,都可以很好的对接起来。过程很快,用户体验又很好,大家就会用,一定要让用户尝到甜头,这个才会牢牢地产生黏性。我们的平台,看后台数据,每天的活跃用户量,回头客比例非常高。

CSDN:你对国内的一个Docker的环境怎么看,包括现在Docker国内创业者,你觉得大的环境是一个什么样的状态,包括还有哪些需要优化的一些地方?与国外相比大概是个什么样?

喻勇:我觉得一切刚刚开始,国内的创业者今天都来了(指meetup活动,编者注)。相比外国市场,中国的市场深度可能比国外要深要广要大,尤其是中国的传统企业在转向互联网的时候,他对新一代的云平台,对应用的交付会产生大量的需求,那这一部分的人在国外是没有的。国外的用户已经很先进了,而国内的用户的广度和深度都很大,所以我觉得市场很大,新一代云平台,互联网化应用的交付,然后容器化应用的发布,这套东西是个大市场。

国内的Docker创业才刚刚开始,我们可能跑的比较早,我相信一定会有后来的人不断的加入进来。总体来说是个好事,因为把这个盘子做大了。如果只有一家做Docker创业,我会面临着我一个人摇旗呐喊去影响用户的这个尴尬局面,这是很辛苦的一件事;有更多的人加入这个阵营,会跟用户形成良性互动,会形成一个供求关系,供求关系会逐渐形成一个正反馈,雪球会越滚越大,大家一起把这个盘子做大,把饼做大,这本身是个好事。我们既要面对竞争,我们又希望大家一起在竞争的同时把这个市场做大,把这个盘子做大。这个我觉得是未来几个月,一两年里面会发生的事情。

CSDN:那DaoCloud下一步计划呢?

喻勇: 我们是国内第一个开放注册的平台, 这样的服务我们会持续提供给用户。我们目前还是以投入为主,来改变用户的使用习惯, 这是一个很重要的点。

接下去我们会加强产品的成熟度,以及与企业客户有更多的接触。公有云里面有足够的用户,私有云里面我们有足够的垂直场景;用Docker来解决相应的问题,解决一些垂直场景里的问题,我觉得这是我们想乐见其成,想看到的画面。
我们已经接触了一些企业用户,而且企业用户在内网里面也有这样的需求。上周我们跟招行的架构办的高层也做过一些交流,他们看Docker也有很多非常有趣的出发点,我觉得这里面也是个市场,可能这个大幕才刚刚揭开,这是一个非常有深度、有广度的一个机会。

CSDN:创业至今,你有什么感触?

喻勇:特别让我有感触的地方,是我们做出来的产品真正有帮助到用户。我们现在平台上面每天有几千个用户在用,很多人告诉我说,这个东西节省了我的时间,通过Docker,通过这种一键式部署Code to Cloud的方式,让他提高了生产力。我觉得做一款产品,让优秀的开发者变得更优秀,让他可以有时间更多的专注在创新上面,这个是我们觉得非常有价值的地方。刚才那位朋友(指参加meetup的DaoCloud用户,编者注),你可以跟他聊聊,他是我们早期的用户,非常出色的开发者,在GitHub上面Java项目排名全中国第一、全世界第十。这样优秀的人,他用了我的产品,给我的反馈是,“你帮我节省时间,可以让我专注在创新上面”,这让我非常有感受。我觉得对我们来说,其实是做一款产品,帮助用户产生价值,这让我觉得创业再苦再累也是非常有收获、有成就感,或者说我真的帮助到别人。这个感觉无法被替代。

CSDN:说点吐槽的地方吧?

喻勇:因为整个团队的执行力非常强。市场里当然也会有竞争,但是我觉得这是一个刚刚开始的阶段,大家都是在齐头并进的阶段,有竞争说明这是个正确的方向,整体的感觉来说,我觉得是一个在辛苦的过程中,但是会收获快乐的一个状态。

DaoCloud 公司简介:「DaoCloud 道客」云原生领域的创新领导者,成立于 2014 年底,拥有自主知识产权的核心技术,致力于打造开放的云原生操作系统为企业数字化转型赋能。产品能力覆盖云原生应用的开发、交付、运维全生命周期,并提供公有云、私有云和混合云等多种交付方式。成立迄今,公司已在金融科技、先进制造、智能汽车、零售网点、城市大脑等多个领域深耕,标杆客户包括交通银行、浦发银行、上汽集团、东风汽车、海尔集团、屈臣氏、金拱门(麦当劳)等。目前,公司已完成了 D 轮超亿元融资,被誉为科技领域准独角兽企业。公司在北京、武汉、深圳、成都设立多家分公司及合资公司,总员工人数超过 400 人,是上海市高新技术企业、上海市“科技小巨人”企业和上海市“专精特新”企业,并入选了科创板培育企业名单。

未经允许不得转载:DaoCloud道客博客 » DaoCloud创始人喻勇谈基于Docker创业成长之路

申请试用