新一代云原生应用开发平台建设成果

  • 2022-04-26

  • 来源:金融电子化

项目背景

招商银行定位自身为金融科技银行,以科技敏捷带动业务敏捷,快速迭代、持续交付产品和服务。金融科技银行战略要求科技队伍打造有效支撑开放融合的数字化设施。打造该设施,需要解决以下几个挑战。

 

一要安全可靠处理内部生态、外部生态的开放连接,并提供数字化的运营支持;二要低门槛实现应用的灵活弹性,交付高性能、高可靠弹性应用以快速响应业务需求;三要解决安全合规问题,让开发人员可以复用最佳实践,快速构建合规、安全的应用,守住金融安全底线;四要兼顾科技成本效率问题,技术平台应能通过多租户化、按需消费的方式实现资源的集约管理。

 

然而,如图1所示,传统云托管模式下简单将应用搬上云的方式无法很好地解决这些问题,因为它只是简化了计算资源获取和管理的方式。具体来讲,在传统云托管模式下,IaaS层将虚拟机或其他资源作为服务提供给PaaS层,PaaS层将容器等第三方服务提供给开发人员。在这种模式下,应用构建的抽象层次比较低,依然有大量必要的非业务功能依赖于开发人员自行整合不同组件实现,可用性差。例如,一个1000行代码的工程,其中业务代码可能不到300行,剩下的都是为了应对高并发、高稳定性而编写的非功能性代码(如兜底、灰度逻辑等)。业务代码和非业务代码混杂的情况给后续维护人员带来了巨大困扰。该问题的主要原因有四个:一是云基础设施的抽象层次较低;二是应用架构不规范;三是配套工具不完善不智能,极易出现不合规不安全的应用漏洞;四是庞大的科技组织内部缺乏生态,团队间各自独立作战。为解决上述问题,新一代云原生应用开发平台应运而生。

图片

图1  传统云托管模式

 

平台价值和愿景

平台的核心价值和顶层目标是要实现业务创新又快又稳(即迭代快、运行稳)。这个顶层目标需要依赖于两个基础目标的双轮驱动。

 

第一个是具有生命力的内部生态。内部生态的意义在于沉淀大型科技团队的技术实践,通过高效复用有价值的技术,让每个员工都可以站在别人肩膀上,快速实现业务需求。同时,员工也可以反哺生态,输出价值,获得认同。

 

第二个是外部生态。内部生态的最佳实践和科技能力,通过API赋能输出给外部企业,通过连接创造价值,普惠千行百业。API正在取代软件,成为更快更小更敏捷的银行服务渠道和业务价值载体。外部生态同时也是业务创新的重要推手,内部生态演进的催化剂。

 

在内部生态和外部生态的双飞轮驱动下,驱动业务创新。如图2所示,平台生态体系的进化和价值血液的循环,需要依赖于强大的云基建心脏和开发体系提供有力支撑,这正是平台的核心价值和使命。

图片

图2  平台要构建的生态和价值链

 

系统架构

平台旨在为开发人员提供更好的应用构建体验,让“复用已有轮子,快速实现业务需求,在任何规模下可靠运行”成为开发者感知云的第一界面。系统整体架构如图3所示。

图片

图3  新平台的应用构建抽象层次更高

 

在PaaS层,平台提供行内自研的极致弹性函数计算引擎(FaaS)、无服务器化的负载均衡服务(ALB),以支撑应用在任何规模下可靠运行。

 

在SaaS层,自研API市场构建的同时支持对内、对外安全、合规开放接口的生态圈,实现内外通、业务通、数据通,进而支撑应用高效复用已有的轮子。

 

在“开发服务层”,自研智能开发工具“云效”、API编排云服务、代码模板和框架中心,赋能开发人员高效构建合规、安全的应用,加速业务创新。平台让开发人员可以搭积木式构建面向API的无服务器应用,真正让开发人员只关心业务功能,非功能需求委托给云和工具。平台目前承载的应用相比传统研发模式,同样功能模块代码量减少60%以上。

 

通过以上三个层次的多种自研创新产品的有机结合,开发人员的研发旅程产生了巨大的变化。

 

如图4所示,左边是传统研发旅程的一个项目案例。开发人员在实现业务功能需求之外,还需要花费大量时间进行架构决策、资源申请、环境配置和非功能需求实现。同时,因为缺乏生态,业务功能需求的实现基本也只能独立作战,项目上线后,日常的运维工作量也很大。

图片

图4  某样本项目的新旧研发旅程对比

 

右边是新旅程的一个项目案例。开发人员可以从代码模板和框架中心选择合适的模板,通过“云效”智能开发工具自动完成代码仓库、流水线等资源的准备和环境配置;“云效”智能开发工具还提供本地函数编辑、调试和一键发布等功能,可快速实现基于事件驱动的应用架构,并支持自动弹性伸缩和高可用,大大降低开发人员在流量管理、高可用和容灾等非功能需求上的心智负担。

 

在具体开发业务功能时,开发人员可以在API市场搜索已有的能力,快速添加到自己项目中,做到站在别人肩膀上,复用全行力量。这样不仅可以启发新的业务模式,带来新的客户体验,也加快了创新的速度。例如,大量的AI类API让所有系统都可以在短时间内完成智能问答、人脸识别、票据识别等能力的接入,让应用更智能化,带来新的业务模式和更好的客户体验;丰富的金融类和数据类API,让业务系统之间实现互联互通,不再是一个个孤立的竖井。应用上线后,运维量也可大幅减少,开发人员也可以将开发过程中沉淀的能力以API的形式共享到API市场,通过贡献价值,获得认同。

 

创新特点

本项目在多个关键技术上进行了创新,具体有以下几点。

 

1.自主研发业界领先的企业级无服务器计算平台。PaaS层的函数计算引擎是招行自主研发的业界领先的企业级分布式无服务器计算平台,支持NodeJS/Python/Java多语言环境,支持Kafka、ALB、定时任务、HTTP等多种触发器,可以帮助开发人员快速构建EDA(Event-DrivenArchitecture,事件驱动)架构、极致弹性免运维的无服务器应用。

 

招行函数计算引擎在函数冷启动、Java语言动态编译、本地IDE支持等方面做了领先行业的技术创新,也是金融业第一个通过可信云函数即服务能力认证的产品。

 

通过招行函数计算引擎,工程师只需编写业务代码即可快速搭建云原生应用,可以大幅缩短项目交付时间和人力成本;招行函数计算引擎还支持预留实例、局部、全局环境变量等功能,同时提供完备的日志查询、性能监控等可观测性能力,帮助开发者快速排查故障。函数计算免运维特性大幅提高了开发人员上线迭代的效率,有效降低运维成本。

 

2.开放的内外生态圈,支撑更快更安全合规的科技能力开放。招行自主研发同时支持内部共享、外部输出API的API市场。API市场提供API全生命周期管理、安全和流量控制等完备的开箱即用的SaaS化能力。平台已支撑近万API日均4亿次/天的调用、连接7000+外部企业(截至2022年3月中旬)。通过构建海量API生态圈,实现内外通、业务通、数据通。API市场以开箱即用的形式提供API全生命周期管理、安全策略、流量管理、运营监控等全栈能力,是行业领先的完全自研的系统。API市场底层依赖于自主研发的ALB(应用负载均衡)网关,支撑不限量API高性能互联互通。

 

3.无服务器化、生态化、智能化的开发体验。平台实现了无服务器化、生态化、智能化的开发运行一体的研发体验。

 

首先是“无服务器化”。平台自研函数计算引擎以支持高效构建无服务器应用,大幅提升敏捷性,实现了项目的初心和愿景:让“复用已有轮子,快速实现业务逻辑,在任何规模下可靠运行”成为开发者感知云的第一界面。

 

其次是“生态化”。平台打造了繁荣的内外生态圈。新一代云原生应用开发平台全面面向API编程,构建起了同时支持内部共享、对外开放的API市场,营造API生态圈,实现内外通、业务通、数据通,也为应用开发提供海量优质API原材料。

 

最后是“智能化”。通过新增“开发服务层”,提供“云效”智能开发工具、代码模板和框架中心,赋能开发人员更快构建合规、安全的应用。同时,在API流量层刚性落地《商业银行应用程序接口安全管理规范》(JR/T 0185—2020)和《招商银行API企业标准》。

 

实施成果

1.全面提升研发效能。平台目前承载的应用相比传统研发模式,同样功能模块代码量减少60%以上。借助完备的开发工具链,开发人员可以快速开发规范、安全的应用,并且在投产前由工具完成本地检查。

 

2.繁荣的内外API生态圈。截止到2022年3月中旬,平台已在总分行全面推广,发布内外部API近万个,连接外部企业和政府机构超7000家,平均API调用超120亿次/月,繁荣的内外生态圈初步形成。

 

结束语

新一代云原生应用开发平台目前已在总分行大规模推广,为广大开发人员交付了无服务器化、生态化、智能化的全新研发体验。

 

未来,我们将坚持科技赋能科技人员的理念,充分利用云原生技术、智能开发工具和技术中台的能力赋能一线开发人员高效构建高质量应用,助推业务创新,提升招行服务品质。

  • 案例
  • 金融
  • 银行
  • CIO
  • 财务
  • 招商银行
  • 金融SaaS

推荐

我要评论