京东商城的云计算优先的技术战略简要总结
自主研发的京东云
京东作为国内最大的电商之一,也在搭建自己的云平台,而且大部分的技术都是自主研发。为什么不选择现有的资源而要自己研发?
京东云大数据平台技术负责人廖晓辉说:“京东全产业链的电商模式,在国内是独一无二的,没有成熟产品可以借鉴,很多技术问题都需要创新的方式去解决。只有自主研发才能打造出最适合京东的信息系统。第二,“技术驱动”一直是京东的发展战略,我们自主研发的信息系统和积累技术,是京东的核心竞争力之一。但是事实上京东并没有完全自主研发所有的系统,也应用了一些开源的的技术。再结合京东自身的业务,去解决京东遇到的问题,从而更好地为我们业务去服务,为用户去服务。”
京东的云平台却包含很多分支包括宙斯、云鼎,移动平台等,是什么原因让京东打算做这么复杂的云平台?
廖晓辉认为,京东云对外所推出的公有云服务,都是基于私有云技术的产品。京东自身业务发展非常需要有一个稳定,完善的私有云做基础。在私有云技术产品稳定后我们就对京东生态内的合作伙伴、对社会开放。云平台是京东技术产业化的先锋,要以云技术和云模式,构建一个电商云生态,让京东生态内的卖家和合作伙伴以及让全社会做电商的企业都能在京东云上享受到京东的电商服务。
随着京东的发展,京东的卖家越来越多,所有的电商平台都存在这样一个问题:多个租户共享同一数据库实例必然需要一个有效的隔离方案,防止一个用户的慢查询请求或恶意请求影响其他用户访问。
廖晓辉说:“就做云数据库来讲,在京东云里面提供的服务既有共享型的数据库,也有独享型的数据库。一些用户特别关注的资源隔离对于这个问题,我们的做法是用独立的虚机方式去做部署,或者基于容器技术—Docker去实现不同级别的资源隔离。”
大数据环境下的Spark
毫无疑问京东的数据量一定大的惊人,那么在大数据环境下进行数据分析,更多人都会选择Spark,因为大家都知道它是基于内存上面进行运算,这样的话可能处理的数据会有限。
廖晓辉告诉记者:“就spark来讲,它出现时间不长发展的却很快,它的RDD分布式内存结构概念和容错性支持,以及利用DAG做执行优化,即性能和可靠性的表现,使得它非常有吸引力。但在内存受限的情况下,确实会影响它的性能表现。对于内存等资源限制的情况下,还需要对大量数据做低延迟处理,,这种场景我们可能需要考虑采取近似计算方式,但 如果计算结果的精度要求不能降低,可能我们要走增量计算的方式:持续性地对一些增量数据做一些累进式的实时计算,来得到实时地计算结果来满足业务或用户的需求,相当于把全量数据的离线计算,转变成一种持续性的增量的计算方式。”
在数据存储上大致有几类,像通常的key-value数据库,文档型的数据库mongodb,列式分布式数据库HBase等等,京东是如何考量和选择的HBase的?
廖晓辉书:其实各种不同的数据库类型我们都有用到,包括HBase和mongodb。选择哪一种需要结合我们的业务需求,考虑数据存取的计算方式以及开发效率。mongodb它对各种语言都非常友好并提供相对丰富的API,它数据在数据量不是非常大的情况下,会有非常好的性能表现。而对于HBase来说,它属于Hadoop生态里面的一款产品,它适合random access场景或少数据量scan,随着数据增长易于扩容同时维持高的读写性能;列存储对于稀疏矩阵数据存储,加上压缩,能提高存储的效率。我们还是根据业务需要,以及数据量的规模,考虑以后的扩容以及项目研发效率来选择。
传统上,若是使用Hadoop MapReduce框架,虽然可以容易地实现较为复杂的统计需求,但实时性却无法得到保证;反之若是采用Storm这样的流式框架,实时性虽可以得到保 证,但需求的实现复杂度也大大提高了我们。Spark Streaming在两者之间找到了一个平衡点?
廖晓辉解答 :“Hadoop MapReduce计算模式实际上降低了做并行计算、大数据处理的门槛,适合于高吞吐量的批处理场景。而Storm和Spark-Streaming,它们都是流式计算的框架。Storm以其低延迟、易扩展性和容错机制等特点发展至今已经非常成熟,也非常优秀,为许多互联网公司所青睐。Spark-Streaming它基于spark将流式数据拆分为mini-batch做持续计算,从目前来看,它的处理延迟可能稍高,但也基本满足实时计算地要求,且它有丰富的计算和转换类API,并易于使用。虽然内部使用Scala去实现但是也支持JAVA的开发,在开发效率方面还是非常高的,此外,我们自己的经验是在生产环境验证了它的稳定性和可靠性。如果对两者进行比较,个人认为,storm适合对实时性要求更高的场合,因为它可以把延迟控制在亚秒级或者更低。而Spark-Streaming作为Spark Stack中的一员,如果熟悉了Spark下的开发方式,对Spark-streaming的开发非常容易上手;大部分的大数据处理需求,不同的workload,Spark Stack中有相应的技术产品可供选择,可避免维护不同的计算框架。选择Spark-Streaming就要考虑这个生态系统里的其他产品以及开发效率。Spark社区很火,在今年出现1.0版本之后,很快就出现了1.1版本,有非常好的势头,也在实际应用中用它的优异表现在赢得越来越多的用户。”
双十一过去不久京东作为国内首屈一指的电商平台在双十一期间如何保证服务器在大量请求、访问的的正常运转而不宕机的?
廖晓辉说:“双十一保障是一项有组织有计划地工作。在双十一之前会有一个比较长的筹备时间,会对双十一的流量和业务的增长做一个预估,有计划的去做线上的系统扩容以及完善监控,并对可能的异常做好演练并制定预案。双十一期间近一周左右时间,京东的研发部包括云平台的研发人员会安排人员24小时值班,来解决任何可能出现的线上问题。双十一之后对双十一的情况做一个总结,积累经验,从而提升系统的稳定性。
另外,从服务系统架构层面,要有HA, Loadbalance 设计,有故障只降服不停服,可弹性扩容;要有非常及时和完善的监控,保障异常情况下,第一时间处理,缩短故障时间。再有就是防攻击系统和灾备方案进一步提供保障。”
介绍一下京东云中大数据的云服务,你们的技术实现,对Spark的应用,以及产品路线和遇到的挑战。
廖晓辉说:“云海是京东云提供的大数据开放服务,是商家驱动的数据开发平台,商家授权数据,ISV来开发相关数据产品,服务于商家的数据驱动、精细化运营的需求。同时用户也可以上传自己的数据,作为京东平台电商数据的补充。
云海中的Spark
云海不仅提供大数据存储和计算资源,同时还有云端的数据挖掘和开发工作台,这背后所涉及到的交互查询分析,批处理计算,实时计算,机器学习算法工具,在线OLAP分析,都涉及到Spark相关技术的应用。我们在依托Spark来搭建高效的计算平台和工具集,目的是使挖掘数据价值的过程变得更敏捷,而且是一套全云端的解决方案。
京东有大数据平台建设的丰富经验,同时数据驱动业务,数据驱动决策,基于大数据的精细化运营上也有成熟的经验,这些个经验也能帮助在京东上做生意的商家,可以借鉴用于改善运营效率,提高用户满意度。这个价值输出,通过云海,做的方式就是团结在电商领域期望结合大数据提供数字化运营解决方案的软件商这个群体,搭建一个平台以数据为核心,连接商家需求和ISV数据产品服务,同时对ISV的数据产品做一些引导,在解决商家的实际问题中产生价值。
在云海的建设过程中我们碰到很多挑战,有大数据处理的技术方面的,对于这类问题,我们也结合业务,基于Spark做自主地研发工作或改进框架本身。同时数据开放的有效和可行方式,我们也在探索中。近些年大数据概念的“热”以及大数据在一些互联网公司,电商企业,以及金融等领域的应用的示范作用,让各组织越来越重视数据资产,现阶段,由于数据的敏感性,对数据收集、处理、挖掘大多限于组织内部。但从另一方面,相信很多人都同。在数据的网络里,数据连接数据,汇聚各领域的数据,数据开放共享、供给不断,让更多人、个体有机会及时、便捷地分析和挖掘其中的价值,势必能让数据发挥更大的作用,甚至把社会信息化带入一个更高的层次。因为这两面性,即在数据资产保护和开放之间求得一种平衡,建立数据交换可行、可信的平台,同时是可持续的,值得更多的组织和个人来探索,合作。
京东在云上的新战略
京东集团技术副总裁兼首席科学家何刚说道:京东云不止是云计算,是全产业链云服务。
在何刚看来:京东在十二年的发展中,构筑了全产业链的互联网电商能力,从供货商到采购、仓库、销售、配送和售后服务,都有了一套成熟的解决方案。京东希望把这些技术能力对外进行输出,包括互联网经验的咨询服务、互联网基础技术的云计算、大数据服务,产品设计、后端核心服务、开发实施等业务信息系统升级建设。并从营销、物流、金融、运营人才等业务资源上结成深度长期的合作关系,做到企业间数据互通,伴随企业共同成长,形成互联网企业生态,做到风险共担、收益共享。
战略层面,京东云包含“全产业链能力输出、结成深度合作关系纽带、共享云计算大数据技术、发展互联网企业生态”四个方面,全面帮助中国企业实现“互联网+”的升级。
产业链层面,在京东营销、交易、采购、仓储、配送、客服、职能、金融等服务基础上,汇聚信息流、物流和资金流,提供互联网基础技术(云计算和大数据),互联网经验输出(战略咨询、商业模式、管理咨询)、电商业务资源合作(营销、商品 、物流、金融、运营等),业务信息系统建设升级(系统设计、核心功能模块、开发实施)。
产品层面:面向云平台的工具运维服务,如自动编译、统一监控、统一日志、自动部署;面向行业的云计算服务,自动扩展部署、离线/在线数据分析、开放API;面向云托管服务,如云数据库、缓存、VPC、数据复制、灾备、负载均衡、消息队列、云安全;面向资源服务:云存储、云主机、云网络、计量计费等。
目标锁定:农业、制造业、服务业、金融、政务、物流。
创新联盟启动:京东云与嘉宝集团、锋创科技、福建茶博汇就电商云的合作完成签约;与首农集团、亚信数据、百度就数据云的合作完成签约。未来还有更多传统企业、生态伙伴达成长期稳定合作。
何刚表示:“企业的互联网化已经不能仅仅停留在业务电商化的层面上,而是需要将互联网思维和技术结合起来,对外、对内都深度互联网化。”从外部看,在商业模式上,应该采取什么样的电商模式?是委托代运营?官网电商化?还是经销商自建模式?营销推广上,如何获取客户流量?如何实现多个平台、多种渠道的交叉引流?如何做到在不同渠道的统一展现?从企业的内部出发,产品与服务的互联网也是标配,如产品的APP化、智能化等,从而建立互联网化的平台与企业生态。在这些问题上,京东云都能够推出行之有效的解决方案。对于生态联盟,他补充道:京东已经向政府建言献策,希望可以从更高层面构建互联网+联盟,京东云也会积极加入,真正帮助更多企业走向“互联网+”。
“京东将以公有云、私有云和混合云的形式,把这些成熟的云计算、大数据和基础技术将对外开放,为企业、政府、科研机构提供云服务。” 京东云电商云事业部总经理任成元认为这是京东云的互联网+战略的实际意义和价值所在。
值得注意的是,京东基础云由私有云和公有云两部分组成,而“京东私有云和公有云是同一套技术同一个平台同一班人马做的。”京东私有云支撑京东集团各个信息系统。云存储系统稳定支持了主站商品图片、订单、物流等200多个系统的运行,京东私有云可以实现对流控、CPU、I/O等资源细粒度的精准控制和自动伸缩。在系统运行方面,利用弹性计算云,服务器总体使用率提高十倍,网络访问量平均成本同比下降60%,运维自动化率也达到了90%以上。京东公有云服务中的云主机服务、对象存储服务(云存储)通过了云服务可信性的权威认证体系,并获得了可信云年度电商云服务奖。
而从京东云产业链服务中可以看出,京东云在IaaS、PaaS和部分SaaS已经完成布局。举例来看,京东云可以从销售信息、用户行为、供应链效率、客户满意度和财务数据上进行数据采集、挖掘以及可视化分析,为用户提供京东级数据分析服务能力,一站式满足企业数据分析的诉求。“”
对于近期业内所关注的安全问题,京东云首席架构师杨海明表示:“京东网站、京东金融、京东到家等每天受到很多攻多,所以也积累了各个方面的安全防护经验。比如网络二层、三层、应用层的安全防护。这些经验的都会逐步通过京东基础云安全服务产品来输出。未来,我们是开放的生态系统,也欢迎更多SaaS安全的来合作”。京东云首席数据架构师杜宇甫也表示:“数据服务有不同安全机制,包括授权、身份认证、各方向上安全使用等级划分等,而后续,还会随着需求的变化,提供更多数据防护。”
而由于绝大多数京东集团的业务都已在京东云平台上,面临即将到来的电商双十一大考,何刚感到压力很大。“自营式电商,决定了我们采购、销售、交易、物流、服务等都是自己来做,上千套系统在京东云上,业务极为复杂。所以我们备战压力很大,但相信自己不会出一点事,也必须如此。”
下一篇:剖析网易运用OpenStack部署云计算平台的案例