QCon北京2016 全球软件开发大会的美丽说&蘑菇街专场顺利结束了,本专场以『复杂环境下美丽说&蘑菇街电商的升级之道』为主题,分享了社会化电商的技术架构和最佳实践。
对于社会化电商来说,各种促销活动是活动推广的重要手段。同时因为事件营销的不可预测性,对电商平台的弹性和稳定性提出重大考验。美丽说大促平台就是为了应 对此类活动而专设的平台。在本次专场上,大促团队的技术负责人陈晓冲为参会者分享了大促平台从无到有的架构设计与思考,同时以跑男和双十一为例,介绍了大 促平台的最佳实践。
促销活动因为其特性,在技术上面临如下挑战:任务多时间紧、功能复杂、协 同繁杂、性能要求高。在最开始,美丽说的需求都是单独开发,有许多重复开发的部分,同时初期架构较为简单,在应对复杂需求和快速迭代时也力不从心,在这种 情况下,美丽说成立了大促团队,进行了架构改造,开始了平台化之路。
在平台化的从无到有的过程中,美丽说大促团队经历了组件化和服务拆分,然后将之前各业务的数据打通,在前端方面实现了模块化和异步加载,最终形成的架构如下图:
该架构在跑男和双十一促销活动中经受了考验,实现了快速迭代和应对峰值请求的99.9%服务平稳运行。
蘑菇街从2015年从一个导购平台转型为社会化电商,这两种模式的巨大差异也体现在电商算法上,也经历了从爆款模型到个性化模型的转变。数据搜索技术团队负责人灵素(陈春丽)向参会者分享了随着蘑菇街电商场景变迁中的算法变化,以及模型变迁中的问题。
蘑菇街电商模型包括初排层、业务层和个性化层。初排层的排序模型经历了三代的变迁,在2014年以前是根据规则,到2015年是根据爆款模型,2015年之 后是加入个性化因素的线性预估模型。业务层在2016年之后开始根据业务特征加入模型。个性化层在2016年之前是单一场景个性化,之后开始根据标签个性 化偏好。
加入个性化后的架构如图:
但是,算法模型的切换并不是一帆风顺,蘑菇街在切换过程中也遇到不少问题。在演讲后半部分主要分享了蘑菇街在实施过程中遇到的问题和决策。
混 合云在今年成为云计算中非常火热的话题,蘑菇街实施混合云的背景主要是在类似双十一这种场景中,会发生瞬时的峰值请求,混合云就是将应对峰值请求的资源采 用公有云,而平时的业务放在私有云里。蘑菇街平台技术运维架构师无锋(敖斌)向大家分享了蘑菇街实施混合云架构过程中的问题和经验。
电商平台常规化的大促面临的主要挑战包括:快速扩容和缩容、提升资源利用率以及成本问题。蘑菇街通过将私有云的资源虚拟化,加上通过设置流量调度、二级CDN和专线的公有云来应对。
混合云要做到的目标是要实现整个服务的发布、管理、云资源调度。无锋分享了蘑菇街的混合云无缝接入策略、流量调度和二级CDN的实践,成功支持了蘑菇街在大促中的表现。
最后一场演讲由蘑菇街无线基础和IM技术团队负责人七米(杨剑锋)带来,他给大家分享的是蘑菇街在服务链路跟踪和保障方面的探索和实践。
在 演讲中,七米将请求链路分为古代、近代和现代三种,同时也体现了三种架构的差异。古代是指简单的LNMP架构,发现和定位问题通常只能用外部手段;近代则 在古代的基础上增加了流量调度和负载均衡,以及log agent、kakfa、Hadoop等,这种模式能够进行少量试试监控,同时能够定位crash上报的地方和原因;现代则指在客户端增加服务监控和用户 行为监控,在服务端增加流处理模块增强日志分析能力。不过在现代的架构下面,我们有时仍然难以定位到问题,用户下单需要经历数十个系统,每个系统都可能发 生问题,因此需要对整个交易链路进行跟踪和监控。
蘑菇街通过一个MWP全链路跟踪系统进行链路标记,从而实现了全链路跟踪:
由于篇幅限制,我们不能完整描述讲师分享的精彩之处,欲知更多信息,可下载QCon大会美丽说&蘑菇街专场PPT,稍后我们会将演讲的视频发布在InfoQ网站上,敬请关注。