维梧全球商城:建筑进化之路
浏览:600 次

本文描述了vivo官方商城从单一app向具有综合能力的电子商务平台的演变,以及系统架构向面向服务和基于平台的演变。
1、 前言
vivo官方商城是vivo官方在线电商平台,主要销售vivo手机和专属配件。经过几年的发展,已经完成了从单一app到具有综合能力的电子商务平台的演变,整体系统架构逐渐向面向服务和基于平台的转变。在这种系统架构升级的方式中,我们实践了一些系统架构经验。
通过这篇文章,我们可以让对电子商务感兴趣的合作伙伴更全面地了解最基本的电子商务商业模式、电子商务系统的技术和架构,以及不同时期系统的架构演变。
2、 架构变更历史
“罗马不是一天建成的。”。任何电子商务系统的架构升级都不是一蹴而就的。它需要一个稳定的发展过程。不同阶段业务开发的形式和数量决定了系统架构。让我们从一张图片开始描述近年来商场结构变化的历史。
图1.1维梧官方商城结构演变
2015年之前,vivo的官方商城是一个外包项目,采用了一个相对成熟的电子商务产品(企业级开源在线电子商务系统)作为系统基础,其主要语言为PHP。
项目版本是基于此的第二次开发迭代。
与大多数电子商务平台的早期发展一样,它满足了快速部署和快速启动的要求。
同时,缺点显而易见:

性能非常差,无法支持稍大的操作活动。当有新产品和促销活动时,系统负载较高,业务基本不可用,无法满足运营活动的需要。
需求沟通效率低、研发效率低、外包研发和产品异地办公使需求沟通困难。
核心项目受他人控制,Vivo官方商城必须掌握在自己手中。
为了解决这些问题,架构迫切需要升级,系统需要重建。
2.1商城v1.0单体期
2015年5月,vivo官方商城改造计划正式启动。维梧使用自己的研发团队,目标明确。它开发了自己的官方Vivo商城,为用户提供更好的购物体验。
2016年1月,我们自己的官方vivo商城正式上线。
使用主流Java作为开发语言和经典MVC框架,Mall v1.0开发了一个包含所有业务模块的单一app。整体业务模块如下图所示:
图2.1 Mall v1.0系统架构
这种重建最重要的指导思想是“分层”。
在业务中,每个模块都是逻辑分层的。对商品模块、订单模块、营销模块、结算模块等进行了划分,使代码逻辑更加清晰。

体系结构也分层分离:
[表示层]–最接近用户的层,主要用于处理数据表示逻辑和渲染数据;
[服务层]——负责表示层和数据层之间的业务逻辑;
【数据层】——负责数据的落地存储,使用常用的MySQL和Redis存储介质;
在单一应用时期,vivo官方商城的业务发展仍处于早期阶段,业务复杂度不高。主页、业务详细信息页面和结算页面简单轻巧。
v1.0架构可以完全支持新产品和活动的日常运营,版本迭代更快。与ECStore相比,Mall的性能至少提高了两个数量级,因此v1.0的重建非常成功。
2.2商城v2.0服务
在官方商城的v1.0架构升级之后,一段时间平稳度过。近两年,vivo手机产品越来越多,线上业务开始快速发展。
随着用户规模的快速增长,Mall v1.0单一架构的弊端逐渐暴露出来:
用户访问流量的快速增长再次造成性能瓶颈,单数据库和Redis难以抵抗。
v1.0架构对业务模块进行了分层。分层仅限于代码模块级别的拆分,没有物理隔离