大数跨境

移动金融应用的微服务化架构

移动金融应用的微服务化架构 天旦Netis
2015-10-09
2
导读:手机支付、移动金融逐渐深入人心,越来越多的金融机构都参与到手机App的开发大潮中来。在这个移动应用的大建设周期里,我们必须仔细审视移动App和上一代传统Web应用在交付环节中的显著差别。
点击上方上海天旦 Netis ”可以订阅哦!


手机支付、移动金融逐渐深入人心,越来越多的金融机构都参与到手机App的开发大潮中来。在这个移动应用的大建设周期里,我们必须仔细审视移动App和上一代传统Web应用在交付环节中的显著差别。
在传统的网银应用中,一旦完成新Web版本的交付,所有的web用户都会立即访问到最新的版本,后台系统也只需要为最新的版本的网站提供服务,数据的一致性可靠性比较容易得到保障。但在移动应用世界里,规则变化了,例如一个iPhone上运行的移动应用在能够被下载之前,首先必须上传到苹果应用商店上进行审核申请,审核周期受到Apple公司的审核团队的影响,时间是不确定的。即便通过审核并发布完毕,用户更新App的时间也是不确定的,往往需要数周甚至数月的时间,大多数的活跃用户才会逐步迁移到最新的版本上来。

而移动、互联网领域最大的特点就是快速变化,有可能是bug、新的安全问题的修复,有可能是新的业务需求的更新或者是收到人民银行合规性的要求的影响,新的应用版本需要频繁的更新。不需要很长时间,用户访问的版本就会呈现碎片化趋势。特定情况下也许不得不在登录手机应用时检测版本并强制旧版本用户升级,但如果经常使用这种策略一定会显著降低用户体验、带来用户抱怨甚至是逃逸。

因此在移动金融的App开发交付过程中,不得不解决以下几组“频繁”和“缓慢”之间的矛盾:

  • 频繁的软件更新 vs. 缓慢的用户软件更新速度
  • 频繁的业务更动 vs. 缓慢的合规性审核过程
  • 频繁的功能新增 vs. 缓慢的系统维护经验的积累

因此,移动金融应用的开发和交付比传统应用要困难许多,尤其是移动业务24小时全天候的不定数量的客户访问的特点又让后台系统的更新维护的时间窗口变得越来越短暂,这就带来了显著的运维压力。如何化解这些矛盾?当前业界最主要手段就是采用微服务(MicroService)架构。

微服务架构可以说成是敏捷的SOA架构。SOA(Service Oriented Architecture) 即传统的单体式应用通过解耦,把各个功能部件都转变为可以动态调用的服务。而微服务的特点是业务服务单元切分更加细,减少依赖ESB, WebSphere等重型组件,并广泛应用REST API和消息组件作为服务通讯方式。运用微服务架构可以为金融移动应用开发交付带来显著改善。

01
API Gateway微服务开发范式
通过采用许多互联网行业应用已经广泛试验过的应用架构范式,微服务架构下的应用可以避免许多经验不足带来的设计局限性。例如图示的API网关范式,通过把API网关抽象为一个微服务,这个微服务可以按照不同的前台应用版本、类型转发API请求给相关的业务微服务。利用这个范式,不但可以统一提供历史版本的后台服务,还可以让后台系统把手机web应用和手机原生应用等不同的客户前端通过一致的方式接管下来。

02
生产运维故障诊断简化
微服务推崇进程级服务,大多数的微服务甚至仅仅只有几十到几百行代码组成。单个服务背后的代码行数越少,出现故障以后的定位越容易,同时也降低了出现问题的概率。每一个微服务都会有调用的成功率、返回码、响应率、响应时间等指标可以测量,而且还可以按照交易类型和交易渠道区分分派不同的微服务,如果出现潜在问题,可以瞬间定位到具体的问题源。

03
更好应用后台性能弹性调整
微服务实现之后,可以对每个微服务都进行性能测量和监控,每一个微服务组件都可以按照实际性能需要进行扩展。由于弹性调整的颗粒度更细,整个架构的弹性调整可以非常灵活,如果结合了容器技术,还可以在有限的资源内实现这种灵活的性能调度。例如在新版本发布时,一些新增加的业务功能和登录服务的微服务数量可以显著增加,以便适应尝鲜性质的使用者的大量涌入。在双十一等购物节日时,还可以减少部分当时不重要的汇率查询等微服务,把更多资源集中给转账支付等。

微服务架构的引入不仅仅是纯粹技术上的应用交付的好处,同时还符合了这个时代的人员组织管理的特点:

  • 开发团队小型化趋势
和过去一个应用软件动辄几十人的开发团队不同,越来越多的互联网和手机应用实际上都是10人以下的团队开发(甚至主要的代码编写只有一两个人)。微服务可以更好地在开发团队内分配和执行工作任务,也更容易进行功能和质量测试验收。

  • 人员变动频繁
五到十年前进入到银行业的工作人员可能还想着是从一而终,在一个银行工作几十年到退休,但短短几年之后,整个金融业的技术与业务变革让每个组织都面对着激烈的竞争,也拥有更多发展机会。工作的快速变动已经逐渐成为生活的一个组成部分,微服务本身是对组织和个人都更好的实践方式。代码和应用的改造可以按照以微服务为单位进行,不会产生人员变动而造成整个应用进入到无法维护的状态。

  • 多种技术组合
在过去,由于业务上线慢,通常开发语言都选择可靠安全的J2EE等重型架构。而现在互联网行业里,node.js , Ruby On Rails, Golang等各种开发语言或框架层出不穷。采用新技术可以显著加快需求的响应速度,但如果不采用微服务架构的话,实践中运用这些新技术是非常困难。如果实现了微服务,一些急迫的新功能就可以用node.js、Django等框架快速实现,立即满足业务需求。然后逐步用可靠的工程方法去改造这些临时性的微服务,改造的优先级不再需要凭空预估,可以根据实际的业务使用频度来衡量。

微服务架构对于移动金融领域的业务创新带来了显著的好处,当然也会带来新的挑战。由于把传统的大型单体服务/应用拆解为更多的微服务,对于运维配置管理、服务部署、服务通讯效率的要求也显著提高了。但对于移动金融应用而言,微服务化的好处远胜于带来的新的维护成本,值得尽早运用到实际系统中去。

上海天旦即刻落地的业务性能管理软件BPC,能够有效监控移动互联网时代的微服务性能,保障移动应用的快速上线和稳定运行。

我是上海天旦的一名成员
我是上海天旦的产品代言人
我的中文名字叫旦旦
我的英文名字叫Danny
初次见面
请多关照
哟~
长按二维码,关注上海天旦的微信号吧!



本文发表在《金融电子化》2015年9月刊



【声明】内容源于网络
0
0
天旦Netis
上海天旦网络科技发展有限公司是国际领先的业务与网络性能管理领域的软件产品企业,针对关键业务保障、交易分析、大数据采集和挖掘等方面提供专业的产品和解决方案。
内容 236
粉丝 0
天旦Netis 上海天旦网络科技发展有限公司是国际领先的业务与网络性能管理领域的软件产品企业,针对关键业务保障、交易分析、大数据采集和挖掘等方面提供专业的产品和解决方案。
总阅读0
粉丝0
内容236