阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

【QCon 北京 2016】美丽说&蘑菇街专场重点回顾

  • 2016-04-27
  • 本文字数:1625 字

    阅读完需:约 5 分钟

QCon 北京 2016 全球软件开发大会的美丽说 & 蘑菇街专场顺利结束了,本专场以『复杂环境下美丽说&蘑菇街电商的升级之道』为主题,分享了社会化电商的技术架构和最佳实践。

美丽说大促平台的架构演化与挑战

对于社会化电商来说,各种促销活动是活动推广的重要手段。同时因为事件营销的不可预测性,对电商平台的弹性和稳定性提出重大考验。美丽说大促平台就是为了应 对此类活动而专设的平台。在本次专场上,大促团队的技术负责人陈晓冲为参会者分享了大促平台从无到有的架构设计与思考,同时以跑男和双十一为例,介绍了大 促平台的最佳实践。

促销活动因为其特性,在技术上面临如下挑战:任务多时间紧、功能复杂、协 同繁杂、性能要求高。在最开始,美丽说的需求都是单独开发,有许多重复开发的部分,同时初期架构较为简单,在应对复杂需求和快速迭代时也力不从心,在这种 情况下,美丽说成立了大促团队,进行了架构改造,开始了平台化之路。

在平台化的从无到有的过程中,美丽说大促团队经历了组件化和服务拆分,然后将之前各业务的数据打通,在前端方面实现了模块化和异步加载,最终形成的架构如下图:

该架构在跑男和双十一促销活动中经受了考验,实现了快速迭代和应对峰值请求的 99.9% 服务平稳运行。

蘑菇街电商算法演化:从爆款模型到个性化模型

蘑菇街从 2015 年从一个导购平台转型为社会化电商,这两种模式的巨大差异也体现在电商算法上,也经历了从爆款模型到个性化模型的转变。数据搜索技术团队负责人灵素(陈春丽)向参会者分享了随着蘑菇街电商场景变迁中的算法变化,以及模型变迁中的问题。

蘑菇街电商模型包括初排层、业务层和个性化层。初排层的排序模型经历了三代的变迁,在 2014 年以前是根据规则,到 2015 年是根据爆款模型,2015 年之 后是加入个性化因素的线性预估模型。业务层在 2016 年之后开始根据业务特征加入模型。个性化层在 2016 年之前是单一场景个性化,之后开始根据标签个性 化偏好。

加入个性化后的架构如图:

但是,算法模型的切换并不是一帆风顺,蘑菇街在切换过程中也遇到不少问题。在演讲后半部分主要分享了蘑菇街在实施过程中遇到的问题和决策。

蘑菇街混合云架构实践

混 合云在今年成为云计算中非常火热的话题,蘑菇街实施混合云的背景主要是在类似双十一这种场景中,会发生瞬时的峰值请求,混合云就是将应对峰值请求的资源采 用公有云,而平时的业务放在私有云里。蘑菇街平台技术运维架构师无锋(敖斌)向大家分享了蘑菇街实施混合云架构过程中的问题和经验。

电商平台常规化的大促面临的主要挑战包括:快速扩容和缩容、提升资源利用率以及成本问题。蘑菇街通过将私有云的资源虚拟化,加上通过设置流量调度、二级 CDN 和专线的公有云来应对。

混合云要做到的目标是要实现整个服务的发布、管理、云资源调度。无锋分享了蘑菇街的混合云无缝接入策略、流量调度和二级 CDN 的实践,成功支持了蘑菇街在大促中的表现。

移动端全链路跟踪保障体系

最后一场演讲由蘑菇街无线基础和 IM 技术团队负责人七米(杨剑锋)带来,他给大家分享的是蘑菇街在服务链路跟踪和保障方面的探索和实践。

在 演讲中,七米将请求链路分为古代、近代和现代三种,同时也体现了三种架构的差异。古代是指简单的 LNMP 架构,发现和定位问题通常只能用外部手段;近代则 在古代的基础上增加了流量调度和负载均衡,以及 log agent、kakfa、Hadoop 等,这种模式能够进行少量试试监控,同时能够定位 crash 上报的地方和原因;现代则指在客户端增加服务监控和用户 行为监控,在服务端增加流处理模块增强日志分析能力。不过在现代的架构下面,我们有时仍然难以定位到问题,用户下单需要经历数十个系统,每个系统都可能发 生问题,因此需要对整个交易链路进行跟踪和监控。

蘑菇街通过一个 MWP 全链路跟踪系统进行链路标记,从而实现了全链路跟踪:

由于篇幅限制,我们不能完整描述讲师分享的精彩之处,欲知更多信息,可下载 QCon 大会美丽说 & 蘑菇街专场 PPT,稍后我们会将演讲的视频发布在 InfoQ 网站上,敬请关注。

2016-04-27 03:411996
用户头像

发布了 164 篇内容, 共 103.3 次阅读, 收获喜欢 391 次。

关注

评论

发布
暂无评论
发现更多内容

Vue进阶(十四):config/index.js 配置文件详解

No Silver Bullet

Vue 8月日更 配置文件

Go并发之CSP并发模型、协程并发

Regan Yue

协程 CSP Go 语言 8月日更

🏆【Java技术之旅】「编译器专题」重塑认识Java编译器的执行过程(消除数组边界检查+公共子表达式)!

洛神灬殇

Java 编译器 8月日更 JIT编译器

SpringCloud微服务日志经kafka缓冲写入到ELK

Rubble

kafka Spring Cloud ELK 8月日更

oeasy教您玩转vim - 9 - # 换行插入

o

Druid 使用 Kafka 将数据载入到 Kafka

HoneyMoose

模块4作业

青鸟飞鱼

软通动力 OpenHarmony 师资培训班隆重开启,聚焦高校教师赋能

开放原子开源基金会

FastApi-07-查询参数校验

Python研究所

FastApi 8月日更

超全激活函数学习总结!!!

Shirakawa

神经网络 机器学习 算法 激活函数

数据探索

南湖职业技术学院机械狗

netty系列之:Event、Handler和Pipeline

程序那些事

Java Netty nio 程序那些事

十大排序算法--堆排序

Ayue、

排序算法 8月日更

学习总结

青鸟飞鱼

阿里云-云开发平台存储篇——给应用接上后端存储能力

若尘

阿里云 云开发 8月日更

Druid 加载 Kafka 数据时直接提交一个 supervisor

HoneyMoose

番外2. OpenCV 中摄像头捕获与视频处理与常见问题解决方案

梦想橡皮擦

8月日更

oeasy教您玩转vim - 8 - # 追加文本

o

Java 操作 Office:POI之word图片处理

程序员架构进阶

Java 架构 自我提升 实战问题 8月日更

架构训练营 模块4作业

sophiahuxh

Druid 加载 Kafka 数据后查询和清理数据

HoneyMoose

oeasy教您玩转vim - 7 - # 从头插入

o

如何从 0 到 1 设计 B 端产品?

蒋川

后台开发 产品开发 后台 后台管理系统 tob产品

kubernetes入门:harbor个人私有仓库傻瓜式搭建

小鲍侃java

8月日更

Druid 使用 Kafka 数据加载教程——下载和启动 Kafka

HoneyMoose

两个小女孩

箭上有毒

8月日更

Druid 加载 Kafka 数据时通过控制台来提交一个 supervisor

HoneyMoose

【Flutter 专题】75 图解基本 TabBar 标签导航栏 (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

Vue进阶(十三):MOCK

No Silver Bullet

Vue Mock 8月日更

花几天时间肝了一个在线制作词云图网站

Python研究者

Python 可视化 词云图 Python JSON 8月日更

元数据管理服务分析报告

漫长的白日梦

数据湖 AWS 元数据

【QCon北京2016】美丽说&蘑菇街专场重点回顾_服务革新_徐川_InfoQ精选文章