最近关于大数据的实践多是基于裸机的,这意味着Hadoop已经在非虚拟服务器上被广为实现。随着容器和微服务在应用服务界越来越受欢迎,这个现状也可能会发生改变。
容器和微服务都可将单层应用(monolithic application)的代码拆分为更为精细的部件,简化了开发和测试,也是部署复杂应用和代码重用的关键。
虽然刚开始将这种技术应用于大数据,但在数据流方面,微服务已经显示出良好的潜力。欧洲电商公司一位技术经理表示,微服务可以简化部署和代码重用。
Otto GmbH是德国汉堡一家多渠道零售商,它的商业智能系统的首席平台架构师Rupert Steffner表示,使用微服务,“可以精简当前的工作”,进一步说,对于某些类型的应用,如果不使用微服务,“是不明智的做法,因为你是在不停重复同样的功能。”
Steffner所说的应用类型即对在线零售网站进行实时分析工作的多功能人工智能(AI)机器人程序。Otto融合了微服务、Docker容器和流处理技术来支持这些AI机器人程序。
容器和微服务,厉害了
云计算是将Hadoop、Spark和其他大数据技术推向虚拟化、容器和微服务的动力之一。还有许多基础设施需要构建,但目前已经有公司开始用技术简化这个过程。“以前Hadoop多运行在裸机上,后来在虚拟机上也可以了;比如亚马逊云、Azure云和OpenStack。而现在,又要转移到容器上去。”Tom Phelan,BlueData软件公司的联合创始人和首席架构师,该公司是Hadoop或Spark集群自动生成平台制造商。
“以前,Hadoop集群在裸机上的表现更好,但这种情况正在改变,”Tom Phelan说。他承认容器还需要进一步成熟,并提到Hadoop最初的设计并不是微服务类型的架构。位于加州圣克拉拉的BlueData最近更新了软件以增强容器支持,推出Hadoop集群Kerberos自动设置和Linux特权访问管理工具。
微服务的另两个驱动因素是敏捷性和流,Hadoop发行版厂商MapR Technologies公司的MapR数据和应用方面的高级副总裁,JackNorris表示,使用机器人程序的顾客需要快速适应数据和机器学习模型。
对“事件驱动”型构架的应用来说尤为如此,因为这样的构架包含越来越多的数据流组件。Norris说,随着Hadoop和Spark应用流变得越来越复杂,更新也变得越来越难了。但是,由于微服务专注于数据管道事件,这会给发展带来更多的灵活性。这也改变了之前 Hadoop的发展方式。
“我们认为有必要开启更多更广的应用,”Norris说。同时,他承诺MapR会继续支持当前的单层应用。
上个月,MapR试图进一步在大数据方面推动微服务的进展,即尝试用微服务对应用做版本管理,并将微服务用于机器学习模型的A/B测试。另外,据Norris说,有新的参考构架可以用来指导开发者通过微服务融合流数据和实时分析应用。
AI机器人程序盯着空空的购物车
随着大数据处理工作成为数据流组件更加复杂的集合,微服务拓宽了应用的广度。Otto公司的Steffner表示,微服务提供了典型的“分而治之”的思路来满足构架上的需要。Steffner曾在上个月于纽约举办的Strata +Hadoop2016世界大会上发言,他说,Otto公司的数据构架中,每个AI机器人程序都处理一个特定的任务。例如,某个AI机器人程序专门寻找欺诈性交易,另一个则使用分析模型来投放实时广告,还有一个AI机器人程序专门检查空购物车,并在用户没有购买任何商品就要离开网站时放出优惠。
Steffner说,这些工作是通过基于Docker的微服务架构完成的,当时是2015年的十月份,而在两年之前,在常规的大数据平台上是做不到这一点的。
Steffner还说,Docker容器十分契合机器人程序的概念。Otto公司在后端安装了一系列的开源的流处理引擎,包括Storm、Spark Streaming、Flink 和Ignite。在目前的环境下,Ignite(由GridGain 系统公司原创的内存数据结构技术)承担了大部分的实施处理工作。
原文链接:Containers and microservices find home in Hadoop ecosystem(翻译:马远征)
原文发布时间为:2016-11-09
本文作者:马远征
本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。
原文标题:容器和微服务在Hadoop生态系统中找到一席之地