一个可供创业公司参考的移动一个可供创业公司参考的移动APP服务端架构演进方案服务端架构演进方案
随着智能设备普及和移动互联网发展,移动端应用逐渐成为用户的新入口,重要性越来越突出。但企业一般是先有PC端应
用,再推APP,APP 1.0版的功能大多从现有PC应用平移过来,没有针对移动自身特点考虑APP的架构。随着APP越来越复
杂,功能和非功能要求越来越高,架构的先天不足逐渐成为大型APP升级的瓶颈。
本文作者结合大型移动应用的落地实践,从服务端架构设计角度,阐述如何进行升级优化,为后续APP做大做强奠定架构基
础,供大家参考。
本文主要内容包括:
1.V1架构
2..问题分析
3..V2架构
4..智能升降级
5..总结
V1架构
APP可以分为手机端和服务端,手机端负责UI,相对简单,服务端负责提供数据和业务逻辑,相对更为关键。APP 1.0版的服
务端架构比较简单,一般在原有PC端web应用的基础上增加无线接口,供APP调用,如图一所示。
服务端系统一方面以web应用的方式提供给PC端浏览器访问,另一方面为支持移动,在web应用基础上增加一些REST接口直
接供APP访问。相应地,无线接口和web应用作为同一工程开发,作为同一个应用部署,这种设计思路是很直接和自然的,可
以快速把PC端功能复制到APP。
问题分析
上述设计是在现有web应用上打补丁,体现的是PC思维无线化,把APP简单作为PC端应用的翻版,并把两者物理上捆绑在一
起,带来一系列的问题:
1、紧密耦合
无线接口和web应用紧耦合,web端的修改会影响无线接口,web端的发布导致无线接口被动连带发布,web端的bug影响无线
接口的可用性,反过来也一样,无线接口的任何变化会影响web应用。
2、重复开发
无线接口除了给APP提供业务数据,还需要考虑一系列非功能性因素,如通讯协议和数据格式封装、安全控制、日志记录,性
能监控等,这些对每个无线接口都适用。如果APP和后端系统直连,意味着每个后端系统都需要单独支持这些通用功能,导致
重复开发。一旦这些通用需求有变化(如对数据传输进行加密增强),所有后端系统都要强制同步修改和上线,给项目管理带
来很大挑战。
3、稳定性
APP和多个后端系统直连,只要一个系统出问题,就会影响APP的可用性,缺乏故障隔离机制,导致APP非常脆弱。