重构是延续软件生命力的必经之路——浅析MobileMarket平台架构重构

2022-09-11

一、背景分析

重构设计的过程可以理解为具体到抽象, 抽象再到具体的过程。从具体到抽象是指根据业务诉求和各类问题现象进行归纳总结, 直至建立合适的解决模型;解决模型是高度抽象的产物。然后通过解决模型去评估各类具体诉求的临界条件, 异常条件等的满足情况或根据需要约定取舍事项, 就是抽象再到具体的过程。这个过程也不是一蹴而就的, 期间面临各类局部验证和反复修订。

MM重构的总体思路就是基于以上原则, 先分析目前面临的问题并探讨合适的解决方案;再按TOGAF架构设计指导, 把各类解决方案分为四个架构维度进行阐述。架构本身是个有机的整体, 分维度进行梳理一是便于阐述和理解方便, 也是为了软件分工不同角色关注的重点不一样。

MM重构前面临的各类主要问题诉求, 整理如下表:

除了以上比较全局代表性的问题之外, 还有其他各类问题;如客户端与平台的交互问题;一些架构上单点问题;自动部署及运维工具问题;运营数据分析支撑问题等等。这些问题有些在重构中一并解决, 有些专项解决。重构更关注解决主要矛盾, 次要矛盾优先级可适当放低, 便于集中力量进行攻坚。

接下来对问题解决方按进行探讨和分类总结各维度架构目标;

通过以上分析, 基本可以明确各类架构主要职责和基本目标, 归纳如下:

以上分析过程就从具体到抽象, 再从抽象到具体的过程, 下面分别说明各维度架构的演变及过程和重要实现。

二、水到渠成—应用架构

重构前MM平台包含35个子系统, 在MM高速发展中已经初步划分了域和中心;并通过各网元内部的水平扩容支撑了前期快速发展。重构目标应用架构分为四个功能域, 重新梳理业务逻辑, 分别进行了解耦、归并和功能增加。二期重构涉及的模块主要为黄色背景的模块, 本次涉及20个模块。主要的变化点如下:

(一) 业务功能域重新划分

将MM平台原来五个功能域, 按照功能内聚原则, 整合划分为消费者门户域、开发者门户域、管理域和支撑域, 便于集中管理和统一服务

(二) 明确建立四大业务支撑中心

重新组合支撑域业务模块, 建立商品中心、用户中心和计费中心 (含订单管理) , 对MM业务运行提供基础的服务支撑。

(三) 加强商品管理和活动管理

重新定义商品定价模型, 将商品管理从产品管理中解耦出来, 提供灵活的商品定价及组合商品供应;增加MM内部各类产品的活动管理, 支持打折、定时抢购、品牌套餐等常规化活动。

(四) 增加和优化一些关键的业务逻辑

面向AP开放运营的渠道管理、面向合作伙伴管理的合作管理、用于统一维护管理的监控模块, 产品管理流程化改造。

重构后应用架构视图如下:

从上图可以看出, 重构后的应用架构更清晰, 划分原则更突出。确定了应用架构的总体视图。当然, 实际重构中的应用调整功能远比以上描述要多, 这里只是挑选代表性的问题进行论证, 重点分析重构的一些过程, 用于启发思路, 寻找共鸣。应用架构的重构一般来说都是目的明确, 方法清晰的改造, 整个过程可以用水到渠成来形容。

三、化简为繁—数据架构

如果说功能是一个系统的外在表现的话, 那数据就是系统内部基石;掌握了一个系统数据的关系, 分布, 变化过程就可以对该系统做到了如指掌。

MM的核心数据是以商品信息模型为中心, 包含应用的基本信息;适配信息;计价信息等。这些数据由管理域系统写入;门户域系统读取展示;支撑域系统进行业务使用。重构前读写数据共用多套Oracle集群, 但数据库已成为系统扩展的重要瓶颈, 急需多数据架构进行底层重构。重构的基础原则就是读写分离。

(一) 写库选型

MM商品的生成属于典型的OLTP事务, 因此针对目前的商品写库, 复用目前的写库, 即采用Oracle RAC的方式。采用Oracle RAC主要优点包括:

(1) 对目前的业务系统变动和更改较小;

(2) 可以确保商品库生成的高性能、高可靠、稳定;

(3) Oracle数据库更适合OLTP事物。

(二) 读库选型

读库的选择有多种, 比较典型的是Oracle和My SQL。

数据架构的演变从原来的集中单一, 发展到异构模式的读写分离, 从简单到复杂;但正是由于数据架构复杂基础, 才能支撑上层应用的灵活多变。

四、引人入胜—技术架构

其实无论是应用架构还是数据架构或是部署架构都是技术的范畴, 这里说技术架构是聚焦实现应用级别的技术选型, 技术构成等。

MM平台在建设初期采用了许多积累系统进行研发, 选用技术栈涵盖从JAVA到C体系, 系统之间的交互主要是基于HTTP/HTTPS的RPC调用;但对服务的管理比较缺乏, 导致整体架构的弹性不足。要想增加整体架构的弹性, 必须增加可控可管理的中间层。随着业界开源技术的蓬勃发展, 尤其分布式技术的广泛应用;对于搭建高并发, 高可用, 高弹性, 自动化的平台可以选择的技术越来越多。MM重构中针对各类问题, 选用了以下技术栈:

(1) 分布式调用框架|分布式缓存|分布式消息中间件。

(2) 分布式调用跟踪框架|分布式配置管理。

(3) 正是基于各类激动人心的开源技术框架使用, 所以技术重构是最吸引研发人员发挥激情的工作。

(4) 三足鼎立—部署架构。

部署架构的总体重构目标是建立多站点的格局, 在架构完成之后要完成两个站点的部署。从软件数学理论上来看, 从0到1的演变是从无到有;这个基础性的一步;从1到2这个迈出发展性的异步;有了从1到2之后, 然后再到3就可以采用类推方式了。多站点的架构基础还是围绕着数据来进行和定位, 保持数据的读写一致性是多站点首要考虑的功能, 多站点也有对等多活模式和单中心的星型模式。

五、重构上线后的数据回顾

整个MM平台重构从启动到上线完毕, 历时一年多;其中各类投入巨大, 最终各类方案都在现网的得到了落实。现网的数据变化是重构过程最好的检验。MM平台最重要的数据如下:

六、后记

MM平台通过本次重构, 整体业务支撑能力得到极大提高, 并具备了类线性扩展业务支撑的能力。但也还是面临很多困难, 做了许多妥协。但随着业务的发展和技术的进步, 这些问题也终将的到处理。最新随着云化技术, 容器技术的快速发展, 各类新的架构理论也纷纷与时俱进, 如微服务架构的提出, 就成为软件研发各类角色关注的焦点。虽然MM平台的架构优化持续不断, 但仿佛看见在不久的将来, MM架构必将经历新一次的整体重构之旅。

注解

注1:开放组体系结构框架 (TOGAF) (The Open Group Architecture Framework) 是一个行业标准的体系架构框架, 它能被任何希望开发一个信息系统体系架构在组织内部使用的组织自由使用.TOGAF企业版是为开发企业架构的一个详细的方法和相关支持资源的集合.

注2:DSMP (Data Service Management Platform) 数据业务管理平台, 是数据业务的管理核心平台, 完成数据业务的业务管理和控制功能。数据业务管理平台主要负责用户管理、业务管理和SP管理, 并对外提供开放接口并为各个业务网关、SP提供代计费功能.该平台还应提供数据业务相关的各种统计、查询功能, 例如用户统计、SP及业务统计、计费统计等.它定义数据业务的基础规范.

摘要:Mobile Market (移动应用商场, 简称MM) 是聚合各类手机应用开发者及其优秀应用 (应用类型包括软件、游戏、音乐、主题、视频、电子书等) , 能满足所有类型的手机用户实时体验、下载和订购需求的综合商场。MM移动应用商场上线运营五年后;业务经历了多次跳跃式发展, 初始的架构逐渐显得不堪重负;MM团队意识到必须进行重构, 否则无法继续支撑业务的高速发展。团队设计人员以TOGAF (The Open Group Architecture Framework) (注1) 架构设计方法为指导, 结合先进技术思路和工具, 对Mobile Market架构进行全面重构。本文是对架构重构过程进行分析探讨。

关键词:重构,Mobile Market平台架构,软件

上一篇:从大学生的心理健康问题浅谈高校心理教育下一篇:广电有线电视网络整合趋势下如何做好财务管理工作