水土不服 什么Docker 、Mesos或开源都是扯
发布日期:2016-7-9 10:7:54
肖德时,数人科技CTO,原红帽Engineering Service部门内部工具组Team Leader,Mesos/Docker项目代码贡献者,擅长企业内部工具的设计及实现。在数人科技负责开源项目的选型和整合,让众多开源项目无缝连接,提供更加强大、更加弹性、更加稳定的运算能力。 目前我们对于开源的理解,早已经走出了之前“开放源代码”的肤浅。在越来越繁荣的开源环境下,大家都在不同层面上为开源做着贡献:贡献源代码、完善社区生态、推动闭源软件走向开源,等等。企业从开源中获得的好处也越来越大,这让诸多武艺高强的技术创业者找到了竞技场。然而,把在技术人眼中炫酷、客户眼中冰冷的代码变成好的产品,并不那么容易。怎样让那些高大上的国外开源技术,在本土环境下真正落地?怎样借开源项目接触真实环境下用户的需求,在完善产品的同时促进社区发展?在接受51CTO.com记者独家专访的时候,数人科技CTO肖德的时候,国内首位提交Docker代码的贡献者,分享了他与数人科技带着Docker 和Mesos闯荡花花世界这一年多的路上,经历的真心话和大冒险。 真心话篇 选择擅长技术 早先,老肖是红帽分发系统团队的Team Leader,主要负责把红帽的软件包分发到各个CDN,让客户去订阅。这是红帽的生命线,所以红帽内部成立伊始就对这个系统十分重视,到现已有十几年的时间,花费了大量人力资源对其进行维护。老肖是闲不住的人,在红帽,只要做好自己的本职工作,愿意多干你可以多干,没人拦,所以老肖没事找事的参与到开源项目中。2013年年初的一天,DotCloud在一次Linux 技术分享会上用一分钟码震惊了世界。在世界的某个角落,老肖也跟着一起摇摆。 Docker是一个只用一行代码,就完成原来LXC要配置十行命令才能配出来的“Hello, World!”程序的开源应用容器引擎。借助Docker,我们可以将每台机器看作一个资源点,就像一个一个小盒子,无论什么软件都能被标准化封装,最后像搭积木一样,使整个服务运行起来。它的出现得到诸多IT巨头的关注,并纷纷在Docker生态圈抢占一席之地,希望能够主导Docker的话语权。老肖迫不及待地参与到Docker开发当中,并成为国内提交Docker代码第一人。此时的老肖并不知道,他已被一个让谷歌养懒了的人—老王—给盯上了。 话分两头。2014年,老王从谷歌回国创业。他发现一个问题,原来在谷歌用得极好的云(如阿里云)计算平台Borg国内没有,这让老王觉得干啥都不顺手,于是他开始在浩瀚的开源世界里面寻觅。终于,他看到 Apache Mesos,发现这个技术的核心思想完全是照抄Borg系统的,更美妙的是它开源。而且拜赐于Docker的大火,Mesos 受到越来越多的互联网公司追捧。因为Docker与Mesos的结合,可以解决企业IT资源浪费、环境异构,支撑企业容灾备份、混合云部署、弹性扩容等实际问题。一开始,Twitter就拿它做最佳实践,后来Netflix、Apple,还有国外的各种云和大数据公司公司,都慢慢在用到这个技术。老王的眼睛亮了。 就像Docker找到Mesos作为黄金搭档般浪漫,老王和老肖相遇了。他们看到,目前国内的很多企业一直在不断地浪费资源。但好在大家已经开始希望通过购买服务,获得专业技术的支撑,来更好地专注核心业务发展。所谓术业有专攻,老王和老肖希望用自己擅长的技术,扛起为企业提供专业的业务基础设施解决方案的大旗。 把握市场机遇 云计算的开放、自由推动开源成为大家拥抱的对象。现阶段的开源已经不像以前,处于相对独立的局面。那些做开源的人本身在商业公司里面身居要职,或者是核心开发者。他们会将商业软件的核心思想透露给开源社区。所以业界非常流行的那些开源软件,其实在商业领域已经被验证很多遍。在这种环境下,大家不再把自己的核心技术握在手里。因为客户真正需要的是解决方案,而不是冷冰冰的代码。 云(如阿里云)计算也带来了更为灵活的IT基础设施。随着OpenStack等云计算技术的成熟,云上的解决方案越来越多。这时候,大家急需一种标准化技术,实现对不同云环境的统一管理,使企业迁移到云的应用可以得到有效衡量。种种商业背景和大趋势,让肖德时和数人科技看到了云计算风口下国内的创业机会,那就是如何为企业提供端到端的解决方案,利用开源项目让国外那些只闻其声未谋其面的高大上技术,在国内真正落地。 兼顾外围与开源社区间关系 肖德时告诉我们,目前国内真正做Mesos贡献的,只有数人科技一家。在客户提供服务的过程中,数人也会收集到的很多有价值的信息反馈给社区,保持和社区有很好的关系。技术人在创业的过程中,很难再为社区做代码贡献,因为能够在激烈的市场竞争中存活下来,是非常实际而艰难的。但是老肖认为,兼顾外围和社区之间的关系是比贡献代码还有价值的事情。 对于创业公司来说,用技术做产品不是闭门造车,要提取出技术本身中的商业价值,而非写出漂亮的代码孤芳自赏。对社区做出贡献的方式有很多,而社区最关注的也是项目能不能被企业真正用起来。作为拥抱开源的技术驱动型公司,将技术商业化过程中的发现到的问题,比如Docker的兼容性问题,毫无保留地反馈回社区,这对社区的发展同样起到非常积极的正向推动作用。 贴近用户需求 数人科技专注于toB市场,他们选择真正到企业中去登门拜访,了解国内中小企业生产环境中的实际问题。老肖认为,这是数人科技与客户共同成长的过程:“他们长大了,我们也就长大了”。在与企业逐渐接触的过程中,与企业业务信息进行对接,充分利用计算资源,打破之前的壁垒。能否选好那个最容易下手的行业,充分发挥服务优势,决定着一款产品的成败。老王和老肖选择一些业务特点非常明显的互联网初创公司进攻,比如互联网金融行业和生物信息行业,这些行业的共同点是都需要大量的计算资源,还有做DSP、日志分析等,并尝试将在这些企业中发现的共性问题,做成模板化的解决方案。 真正走进企业后老肖更直观地感受到,客户不会关心你是不是用了Docker还是Mesos,而是关注大数据环境能不能快速搭建,能不能实现跨云或是跨机房容灾,能不能降低运维成本,开发的分布式应用能不能得到有效管理……了解企业的实际需求,基于开源技术提供定制化的解决方案。Docker与Mesos可以为企业提供统一的软件基础构架,降低开发、运维的复杂度,也使业务部署、更新到多个数据中心变得更方便,极大减轻灾备维护工作。这就是数人科技能为用户提供的商业价值。 大冒险篇 迎接云计算发展 老肖说,在国内云(如阿里云)计算市场做创业,一定要有信心和耐心,等着云计算发展。虽然李克强总理说“互联网+”,但现在“+”到了什么区域,资源是不是只集中在北上广?商业模式又在哪里?首先本土云生态环境正变得越来越复杂。国内云基础设施参差不齐,不同的云间没有统一的标准,因此很难界定客户真正得到的服务质量的保证。这对数人来说是机遇也是挑战,他们希望能够通过消除各种底层云环境间的异构为用户提供统一的云平台,这就需要和不同的云服务商进行API对接。这里面最大的难度不是全部打通,而是让客户无感知的在不同云平台间行走,实现跨越调度,这需要花费很大的力气。 受网络资源限制,跨云间的数据调度基本无法实现。目前数人云的解决方案是实现一个缓冲阶段,也就是先做一个镜像,与远程数据同步一起进行,等数据同步完成后再做切换。虽然这个方案目前并不完善,但老肖坚定地认为,基于Docker完成跨云调度实现资源共享,在技术实现方面是没有问题的,只是需要一些场景的磨合。 慎用微服务架构 目前创业公司在持续集成方面做的都不成熟,每家都有自己的问题。数人的问题就在于一开始做的系统就做成很多小模块,每一个小模块都有自己的接口。每一个小部门都有自己的版本,而且程序员的开发进度不一。在相互调用的过程中就会发现,如果事前没有统一的进度调配计划,部署时非常容易出现问题。随着后续集成测试、依赖关系测试的进行,在没有足够经验的前提下,就会简单地认为把每一个服务都集起来就可以了。但是一到部署环境下,模块间相互调用时就会报错,再做测试连调的时候,工作量会非常大,经常会返工,这让老肖印象非常深刻,并让数人的技术团队越来越认识到,微服务架构还是应当谨慎使用。 老肖说指引他走出红帽,混进苦逼创业大军队伍的原因,并不是什么拯救世界的壮哉美哉所谓情怀,而是俗得不能再俗的自我能力提升。因为只有这样,才能鞭策自己不断进步和学习。“原来读书很少,现在基本上不管是技术书籍还是什么,我都愿意花点时间去学习去读书,自我学习的过程中,就发现别的人也是这么干的,创业过程中,大家都在自我提升。”老肖认为虽然看书是是很笨的办法,但却是最有效的。最后,让我们以老肖同志的傲娇结束这篇文章: 呃……好吧,貌似还是听到了改造历史什么的……
|