容器解决方案可以解决什么?
- 来源:计算机世界
- 关键字:容器解决方案,Docker,互联网金融
- 发布时间:2016-05-07 10:54
一款开源软件能否在商业上成功,很大程度上依赖于三件事:成功的用户案例、活跃的社区和商业模式的可复制性。
过度宣传Docker技术的先进性其实并不能帮助企业快速落地应用容器化难题。”作为国内第一批Docker代码的贡献者之一,肖德时在自己的微信公众号“老肖语录”中写道。
Docker到底是什么?
在了解Docker是什么之前,不妨先来看看现代国际贸易中通用的运输方式——海上集装箱的诞生。
20世纪50年代中叶,运输行业亟需找到采用大批量运输的生产方式,来提高劳动生产率并降低运输成本。虽然二战后出现了超级油船和大型散货船,石油运输采用了高效率的自动泵,散货(煤炭、散矿粉、长石沙等无包装的散货)运输条用了自卸设备等,这使得石油和散货的海上运输成本大幅降低,效率大大提高。
而在运输业中所占比例更多的件杂货(一般是有包装的货物,如箱装或桶装的货物)装卸、运输的“瓶颈”多年来一直没有被突破。由于件杂货本身具有的外形不一、体积不一、比重不一这些特点,导致了沉重与低效的人力装卸状况长期存在。而要提高效率,摆脱依赖人力的装卸,首先就要着眼于“货件”的标准化与扩大“装卸单元”,也就是要使外形、大小不一的件杂货,利用各种不同的“成组要具”,组成一个个定型化、标准化的“货件”,并使其在铁路、公路、水路等不同的运输方式间,可以不拆组快速转移,从而促进件杂货运输的机械化和自动化。
于是,为了解决各种型号规格尺寸的货物在各种运输工具上进行运输的问题,人们发明了集装箱。
集装箱与Docker又有什么关系?
Docker是一个开源的应用容器引擎,可以把任何应用及相关依赖项打包成一个轻量、可移植的容器,这个容器拥有标准的操作,从而能够实现自动化。与此同时,所有的应用都可以运行在任何Linux服务上。相同的容器,开发者可以在笔记本上有规模地运行、生产,也可以在虚拟机、逻辑服务器、OpenStack集群、公共实例、或以上所有结合的方式上运行。
Docker的LOGO最直观地体现了这种关系。如果把操作系统比喻成一条货轮,不同的基础软件就如同一件件“杂货”,最终交付的是一系列标准组件的集合,也就是一个个“集装箱”。Docker技术通过编程语言把这一件件“杂货”打包成可在任何语言、框架和系统上运行的“集装箱”,即容器,而提供标准化接驳“码头”的就是各类云服务商。
这有点像乐高积木,用户只需要选择合适的积木组合,并且在最顶端署上自己的名字,最后这个标准化组件是用户的App。这也就是基于Docker的PaaS产品的原型。
Docker、Mesos和下一代DCOS
每隔几年,就会出现一种革命性的新技术来改变IT世界的运行方式。十年前,虚拟化技术的出现铺平了通往云服务和云计算的道路。而硅谷创业公司dotCloud在2013年提出Docker技术后,便迎来了当今如火如荼的Docker。
Docker正在试图强力改变PaaS的世界。这跟半个多世纪前,海上船运业的集装箱风潮产生的渊源,以及在经济效益方面的改善异曲同工。有数据显示,采用容器有望每年为数据中心或云计算服务提供商节省数千万美元的电力和硬件成本。
Docker技术不仅仅是红帽、Canonical等Linux巨头眼里的宠儿,微软等专有软件公司也在热烈拥抱Docker,AWS、阿里这样的互联网巨头开始杀入这片蓝海,国内还有灵雀云、时速云、道客云和数人云等初创公司涌入。
企业用户越来越关注基于云计算的下一代IT架构变革,而软件定义数据中心的理念也逐渐被接收,Mesos技术便在这样的大环境下应运而生。
Docker技术就是用谷歌的Go语言编写的,这是谷歌2009发布的第二款开源编程语言。谷歌每周发布2亿多的容器,这让谷歌有能力发明很多关键性的容器技术。其中包括容器管理系统,这个管理系统的第一个版本被称为Borg,后续又发布了名为Omega的版本。通过这个管理系统,可以在谷歌的大规模集群资源上使用容器技术。后来业界根据谷歌的相关学术论文,模仿Borg开发出来了Mesos。
在硅谷,云计算初创企业中的Mesosphere和Docker是最热门的两家公司,他们专注的分别是时下热门的两种开源技术Mesos和Docker。
近日,有媒体爆出美国中央情报局(CIA)旗下的高科技风险投资公司In-Q-Tel秘密投资的高科技企业中,这两家名列榜单。这两家总部都位于旧金山的公司,估值都已经超过10亿美元。长期以来,Mesosphere与Docker公司通过双方工程师的密切合作,优化用Mesos和在DCOS(数据中心操作系统)大规模编排、调度Docker容器的工作。
Mesos是阿帕奇(Apache)基金会下的开源分布式资源管理框架,它是一个分布式系统内核,编织不同类型的主机放在一起当一台逻辑计算电脑,它的出现是基于拥有大量的物理机资源能够使用,来创建大型的静态计算集群。
“更重要的一点是,Hadoop、Kafka和Spark这些现在流行的可扩展的计算处理应用都能很好地运行在Mesos集群之上,并且可以在同样的基础资源环境里同时运行这些计算处理应用。”肖德时说。他拥有15年计算机行业从业经验,曾为红帽Engineering Service部门内部工具组Team Leader,也是Docker和Mesos社区的代码贡献者,现任数人云CTO,负责研发及架构设计工作。
众所周知的公司中,Twitter、Airbnb、Apple,国内的爱奇艺、360、小米、去哪儿等都在使用Mesos技术。
正是Mesosphere提出了基于Mesos的DCOS,希望企业能像使用一台计算机一样使用整个数据中心。
没有商业模式的技术创新
都是纸上谈兵
随着互联网产业的影响力越来越庞大,互联网对于传统行业的入侵越来越剧烈。在这样一个全面互联网化的商业环境中,未来的企业除了要将业务部分或全面架构在互联网上,企业为用户提供个性化服务也有赖于这种能力。
技术为业务服务,每种技术都有适用的业务场景。业务场景发生变化,必然要求技术随之演化。
一款开源软件能否在商业上成功,很大程度上依赖于三件事:成功的用户案例、活跃的社区和商业模式的可复制性。
从前文所述的企业追捧、创投追捧,足见Mesos的Docker这两项开源技术的活跃度。而成功的用户案例就不能不提到浙江移动在去年“双11”的秒杀活动。
凭借基于Mesos和Docker的DCOS,“双11”期间,浙江移动手机营业厅系统承受的并发数最高峰值接近6万次/秒,后台服务调用成功率均在99.95%以上,成为浙江移动首个在单日实现10亿级PV的业务系统。据Verizon的公开数据显示,活动期间浙江移动手机营业厅的主机利用率从平均10~15%提升到了50%以上。
“对于秒杀业务,大家都会把关注点集中在性能上。但是如果没有一个分布式的架构,怎么可能发挥应用的完整性能呢?这个时候Mesos提供的分布式核心框架就是一个很好的参考。秒杀场景下,实现了将应用做成无状态的水平扩展来支撑流量。”肖德时说。
也就是说,将数据中心的集群打成一个资源池,当做一台超级电脑来使用。资源的划分可以精确到0.1个CPU和1K内存,远超虚拟机的粒度;其次不同工具的任务可以在同一台主机运行,避免闲置——白天主要用来跑业务,晚上则自动变成跑报表为主。
“分布式框架下,程序的组织方式会被迫做一些改变,慢慢往微服务架构方向转变。秒杀业务本身可以有很多种解决方法,但是你可以选择Mesos来构建这个池化的环境,让业务流量被支撑。”肖德时补充道,“用了Docker之后,同一台机器可以安装多份实例,这个好处就是应用本身是一个单体模型的程序,通过Docker来动态的创建多实例。多个实例设计成无状态,并且交互也通过RESTAPI来限制接口,这个时候,这个微服务模型就出来了。当然,秒杀系统包含了队列、数据库、过滤规则引擎等模块,如何合理的解构出微服务模块又是另一个应用开发的话题。”数人云为浙江移动这次秒杀活动提供了全程技术咨询,
综合来看,Mesos+Docker的技术引进确实提高了秒杀系统的资源利用率,业务结构也变得更模块化。
面对互联网金融对传统银行的融资、理财和金融业务带来的冲击,以及零售商、电信公司和各类科技公司这些非传统竞争对手不断崛起,传统银行的存贷款业务市场被进一步侵蚀。与此同时,银行的自身业务日益互联网化,要求银行拥有处理高并发金融交易、海量大数据和弹性扩容的能力,以及自主可控的管理能力。
虽然云计算技术正在逐步受到银行业的青睐,但出于稳定性的考虑,目前大部分银行都没有把核心系统等最关键的业务系统放到云计算平台上。核心系统做为银行最重要的业务系统,承担了银行大部分交易数据的处理工作。通常情况,银行的核心系统都是运行在大型机上。
数人云利用Docker容器的特性,把高阳金信基于大型机研发的核心银行系统成功移植到以Docker和Mesos为核心的数人云DCOS上。基于数人云,可以在几分钟内部署或升级一个IBS节点,在一小时内完成整个IBS系统的部署。同时,基于数人云可以让IBS系统在几分钟内完成扩容,也可以让IBS系统在硬件故障的时候具有容错恢复能力。此外,通过数人云的应用管理界面,IBS系统的运维也变的非常简单高效。
“在与银行业客户接触中我们发现,不同银行间IT架构出奇地一致。在一家银行实施完,其他家他就马上知道了,他就马上找我们。”肖德时说。“企业需要真正懂Docker领域的专家来帮助他们解决复杂场景下的Docker应用。”
文/宋辰
