加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_阳江站长网 (https://www.0662zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

老史聊架构:当当网架构优化的几点心得

发布时间:2016-03-15 22:07:22 所属栏目:优化 来源:聊聊架构
导读:随着移动互联网的进一步普及,网上消费购物比例不断提高,电商网站的系统规模随业务快速增长,承载每天数以万计的交易已经是主流电商网站的常态。

老史聊架构:当当网架构优化的几点心得

我想这两天大家或多或少有在看李克强总理的政府工作报告,我也在电视旁愣着算是看完了全程,看完有个感受想反馈,要是总理的报告能和PPT搭配着讲就更好了:)政府工作报告里大篇幅回顾了2015年的工作,当时恰好在策划聊聊架构下周的内容,突然灵感一现,为何我们本期的内容不以去年的变化和趋势为切入点,谈谈架构的优化了?于是乎,便和当当网的史海锋老师策划了本期内容。

欢迎关注聊聊架构微信号,获取更多精彩架构内容,下周我们将会发布《架构漫谈》系列文章的电子书,敬请期待!

随着移动互联网的进一步普及,网上消费购物比例不断提高,电商网站的系统规模随业务快速增长,承载每天数以万计的交易已经是主流电商网站的常态。

几年前618、双十一、双十二标志着电商进入促销常态化和大规模活动化阶段,前两年则是主打无线APP购物,那么2015年,电商行业在业务模式上呈现出了哪些特征?我觉得可以简单总结为4点。

渠道拓展

移动互联网时代,流量入口愈加分散,催生出诸多导购引流的APP,电商公司需要具备对接多种渠道的能力,还要结合技术趋势,开通微信公众号,甚至是入驻其他零售平台、分销平台,打造更多的垂直频道,充分吸引流量。

实时交互

随着大数据实时计算技术的成熟,当用户在线时,根据用户画像和行为进行实时交互,结合业务活动提供精准的个性化即时服务,不浪费每一毫秒,提升客户体验,提高客户粘性。

功能聚合

在每一个用户打开的界面提供尽可能多的功能和信息,典型的是单品页,现在堆满了各种链接,显示能够使用哪些礼券、有哪些种促销和服务,甚至商品副标题也会嵌入活动链接。竭尽所能利用流量,提高转化。

精细运营

营销越来越复杂,对运营的要求相应提高,运营人员必须了解每一个操作之后的效果是否符合预期,摸索对于不同的季节、地区、时段、客户群体、商品品类最有效的营销手段。

架构优化实践

在这样的背景下,当当网通过以下几个方面来适应变化,并推进架构优化。

第一,对技术部组织架构进行调整。

将原来的职能化组织中的产品、研发和测试部门按照产品线进行整合,转型为Unit化,以加强同一产品线不同职能团队之间的配合协作,沟通更高效,团队更为聚焦。

这样的组织结构更易于应用敏捷,与实施敏捷的前提同理,产品线拆分建立在系统架构解耦基础之上,在这一点上,系统架构与组织架构异曲同工且相辅相成。解耦越充分,系统边界越清晰,模块越小,越适合敏捷团队,能够快速响应业务需求。

业务相近的产品线组成一个产品研发部,这样多数的小型需求在部门内就可以解决,面对紧急项目还可以灵活使用人力资源,并为员工创造接触更多类型业务需求的机会。

第二,系统分层依赖。

随着业务逻辑越来越复杂,系统越来越多,相互依赖也越来越多。比如我的当当中就聚合了安全中心、用户、账户、订单、收藏夹、推荐等多维度的信息,需要调用多个系统服务。经过讨论,决定将用户交互层面的前端页面与原有的后端系统拆分,并入前端的产品线,以便为用户提供更好的服务。

而后端系统之间的依赖关系也需要更为精细的分层定义,对于促销系统,需要会员系统、订单系统、价格系统提供基础数据;对于运费系统需要商品信息和配货数据,而在精准定位销售区域的前提下,库存只是配货的基础数据,配货系统负责判断是否有货,Promise则根据配货结果计算预计送达时间。

调整系统之间的关系是很难的,牵一发而动全身,但重构是契机,2015年,对于电商的核心系统交易和促销进行了重构,同时价格、配货、运费等系统也进行了较大调整,从而使系统间依赖问题得到了明显改善。

第三,服务化。

微服务为互联网行业的服务化指明了方向,也坚定了我们进行服务拆分和解耦的决心。

原有的架构以系统为维度,服务归属于明确的系统,而系统的划分一般以业务功能为聚合,随着业务的发展,新的业务功能层出不穷,总会有一些打破原有的系统边界,给架构提出难题。

服务化,不仅是指系统将能力通过服务对外提供,更重要的是服务本身就是承载业务功能的单元,如果有组合了多个逻辑难以归入某系统的服务,不必纠结,作为独立的业务模块开发就是了,以服务为单元,系统架构更加扁平,简单清晰。

微服务架构中,服务粒度会更小,服务治理的需求更加迫切,更需要技术手段解决,比如分布式服务框架,当当使用的是基于Dubbo二次研发的DubboX,以及结合ddframe实现的服务调用监控。

去年的容器技术爆发,为微服务架构实施提供了有力工具,当当内部也在部分系统使用了Docker。

微服务大势所趋,秉承SOA理念,在服务治理中心的基础上,将系统弱化,提供更多的基础服务,提高了系统的复用性和灵活性。

第四,平台化。

平台化包括两个维度,技术平台化和系统平台化。

技术平台化是指在技术层面建立统一的体系,包括根据行业特点进行技术选型,使用稳定可靠的技术组件。

当当从2012年开始将原有的.net平台向Java平台迁移,从封闭到开源,应用电商行业的主流技术栈,到2015年,基本完成了技术转型,主要后端业务系统都转移到Java平台。

经过数年的积累,2015年当当架构部研发了Java应用开发框架ddframe,目的是分离技术和业务,封装技术细节,将应用开发人员的精力集中在业务开发上。

随后再接再厉,当当架构部又推出了用来替代TBSchedule的分布式作业调度框架Elastic-Job。并将之开源,基于JDBC的分布式数据库中间件Sharding-JDBC也在开发中。

统一的技术栈,能够复用技术资源,持续积累整体的研发能力,为做精做专提供更好的基础条件。

系统平台化是指搭建基础平台,包括测试平台、分布式服务平台、自动化运维平台、监控平台、缓存集群、消息中间件平台、大数据处理平台、项目管理系统、日志平台、问题跟踪系统等。

基础平台是各业务系统有机协作的基础,保证了整个技术架构的全面可控,能够降低系统运维复杂度,是大型电商系统不可或缺的组成部分,良好的基础平台是技术实力和管理能力的双重体现,而多数公司更注重业务,会在基础平台建设方面欠下许多技术债务。

2015年,当当搭建了自动化运维平台Pangu、监控平台Radar,重构了项目管理系统,Redis集群管理平台也在搭建中。

第五,核心系统重构。

在电商业务发展的快节奏之下,核心系统持续迭代是常态,而且基本两、三年以上,就需要考虑重构,否则难以支撑业务的快速变化。

另外,系统重构集中梳理业务逻辑和系统依赖,整理统一的文档,剔除无用功能,归并多个版本,甩掉历史包袱重新设计架构,适度的前瞻性设计使系统在一定周期内具备业务扩展性。

2015年,当当完成了交易系统和促销系统进行了重构。

交易系统在2015年10月底完成新老版本切换。重构耗费约1500人天,重构代码17万行,全部切换至Java开源技术架构,为公司节约大量成本,并进行了架构优化,整体性能平均提升25%,经受住了双十一和双十二的考验。

(编辑:应用网_阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!