重构:在新底座之上让应用重生

应用重构正在开启一条云原生时代的新赛道。

数字化发展到今天,企业面临的挑战不仅来自技术层面,更来自认知层面。新架构、新应用正在重新定义数字生产力,重塑商业模式与市场核心竞争力。对金融行业来说,也是如此,一场关于“应用重构”的蜕变与新生正在悄然发生。

是时候应用重构了

公元前6世纪希腊寺庙提供的货币保管和收取利息的放款业务,带来了金融业的起源。2600年后的今天,古老的金融业逐渐披上了科技的“外衣”,而技术的更迭也越来越融入这一古老行业血液中,让其焕发出时代的生命力。

经历了ATM、POS机、计算机处理系统、银行间业务联网处理的金融电子化时代,网上银行、互联网理财、移动支付的互联网金融时代,如今,是刷脸支付、智能投顾、大数据征信、供应链金融为代表的金融科技时代。基于人工智能(AI)、区块链(Blockchain)、云计算(Cloud)和大数据(Data)技术,ABCD架构改变了传统的金融信息采集来源、风险定价模型、投资决策过程和信用中介角色。

计算架构升级正在从打通单点走向体系,从芯片到操作系统、数据库,再到容器、虚拟化和云,一直到上层的中间件和应用,面向行业场景,通过系统工程方法,打造贯通上下、经济持续的数字基础设施平台,才能全面提升整个系统的性能。

以银行业为例,数字化转型的终点是打造数字原生银行,然而,银行在重塑自身业务流程和运营模式的过程中却困难重重。

从应用层面来看,1980年代的金融电子化萌芽至今,不同时期的应用系统技术标准差异大,运行机制各自独立,烟囱式系统林立,重复“造轮子”普遍。直接结果就是成百上千的应用之间已经产生了大量的数据孤岛,导致数据无法流畅地共享和交互,跨部门业务协作、提供个性化服务更是难上加难。

从建设方法层面来看,银行系统架构几经更迭,从最早的单机和集中式架构,到后来的分布式架构,不同历史时期、不同架构理念,由于原有架构和技术体系的限制,往往敏捷性不足,难以快速调整和创新业务模式,更无法适应市场和业务需求的变化。很多银行的系统都是基于传统的硬件和软件架构构建,需要大量物理设备和人力资源来运营和维护,效率不高,难以应对不断增长的数据、用户需求和安全威胁。传统的系统构建方式已经无法满足数字原生时代的快速迭代、快速发展、快速演化要求。

“企业必须思考未来需要什么样的关键能力,不断进化这种能力,才能持续为客户创造价值。”核心竞争力概念的提出者、伦敦商学院客座教授加里·哈默如是说。不难理解,为了适应变化的时代,企业的核心竞争力也需要顺时而变。

数字原生的世界将是一个极致互联的时代,人和设备、人与人、物与物之间会变成多模的交互形态,具备快速迭代、快速发展、快速演化的特点,我们将面对更多的数据和连接。

传统的技术元件、应用元件和工艺无法支撑未来全新的业务形态。“技术创新的根本目标是让数字化转型产生业务价值。”中电金信副总经理、研究院院长况文川表示,“我们需要搭建一个以业务能力中心、数据协同平台和公共技术平台为基础能力的,能实现各个渠道与场景应用打通的应用架构。”

中电金信认为,在云原生时代,金融机构的数字化转型进程中将会产生约60%的应用重构需求。应用重构不仅能够解决应用打通问题,更能让数据真正的跨部门流动起来;而在应用重构过程中产生的数据,通过将这些数据赋能业务,将会对企业数字生产力带来革命性的变化。通过行业侧、产业侧的不断迭代、持续努力,国内数字化转型将迎来一个新的高度,助力培育出新的增长极。

从解构到重构

数字原生时代,企业IT系统需要在新的技术底座之上进行统一的应用规划和设计。由于金融产品受金融基本原理和监管规则明确限制,在大多数情况下,业务需求的变化来自对流程的调整或产品参数的变化,而不是对基础业务逻辑的改变。因此,当业务需求发生变化时,只需要通过产品的定义和交易的编排,调用相应的微服务,而不需要对整个应用进行大规模修改。

“应用重构要从‘第一性原理’出发。也就是说,通过业务战略贯彻和业务梳理,采用‘业技一体化’的原则,进行自上而下的设计,重新构建应用系统的架构和模块。”况文川表示,“要将企业级业务和技术能力沉淀到一个公共平台上,使不同业务线之间共享和复用业务能力,支撑全行的产品和服务,从而达到提高效率、降低成本并促进创新的目的。”

这意味着,走向数字原生,企业需要从业务层,应用架构层和数字底座层三层重新系统化地考虑应用架构。这一过程,中电金信总结为应用重构的“五步法”。

第一步

企业架构方法引领。企业架构是用结构化的方法进行战略目标解读和战略能力分析,让业务、技术体系和企业战略引领能够结合起来。实现应用重构,最关键就是通过业务建模驱动IT架构和IT服务设计。中电金信以基于业务建模驱动的“既企业级、又敏捷化、又精益化”的新研发工艺,构建一套架构,一套工艺模版,一套研发工具链,推动银行业技数的升级融合。

第二步

采用分层设计方式。中电金信建议把应用系统分为基础支撑层、业务能力层、业务服务层和客户接触层四层。用业务流程构建和基础标准业务能力分离的方式,可以让企业投入更多精力去建立能力中心,满足各种变化的业务需求,这对于简化复杂的系统来说非常重要。

第三步

用领域驱动方式完成底层落地。如今,很多大型机构都采用领域驱动方式进行系统最后的构建,这个过程需要应用架构和IT架构以云原生的方式搭建,通过微服务的方式将系统之间的业务结合,API复用来和业务设计对应起来。

第四步

让应用与数据结合。不仅要有统一的实体建模,加上全企业的治理、管控,数据治理不再区分业务系统和分析系统,还要有数据自动汇聚等方式,让数据能够在更多环境更方便地为营销、风控、运营等应用所用。这是平衡以应用为中心和以数据为中心的重要方法。

第五步

数字化质量工程。除了功能测试、性能测试,还要进行混沌工程这样攻击性、破坏性的测试。在基础测试之外,质量工程要贯穿整个基础支撑层、业务能力层、业务服务层和客户接触层,在不同层面用不同的KPI去考量数字原生业务的价值。这是从分散方式变成体系方式的完整过程。

然而,应用架构的重构并不是一件简单的事,从顶层设计看需要企业架构的整体规划,从底层支撑看需要基于数字底座的统一工具链开发,而在中间需要各个应用架构之间的“高内聚松耦合”,才能够根据整体规划很好地衔接,并且与业务相匹配。“这是一个系统工程。”况文川指出,“‘五步法’是基于工具平台去支撑平台工程、软件工厂这样的能力,这个工具平台就是‘源启’,它从业务建模平台开始,到系统设计、统一多模态开发,再到测试,可以全部拉通在一起。”

源启2.0,以战略定力焕发发展活力

去年8月,中电金信发布了金融级数字底座“源启”,它是用系统工程方法打造、具备金融级技术能力的新型数字基础设施。时至今日,一年有余,中电金信在北京举办了“数字原生·向新而行——数字金融开放创新与架构转型发展论坛”,循“新”问道,推出金融级数字底座——源启2.0,进一步围绕新型数字基础设施建设和应用重构话题,论道新发展格局下行业自主创新与数字化转型新路径。

“源启”2.0由基础运行支撑平台、数据资产平台、数字构建平台和行业AI平台四大平台组成,通过基础运行支撑平台把底层的基础计算能力集聚起来,为上层各种的数字化应用提供统一、简洁的支撑;在此基础上,通过数字构建平台提供一体化开发工具链,助力传统架构向云原生分布式架构的迁移;源启的数据资产平台承担数据产品的生产和服务,助力数据资产化、资产价值化;行业AI平台针对人工智能技术研发门槛高、周期长、落地难等问题,采用全新前沿技术,打造全链路端到端AI算法开发套件和工具,实现复杂模型的低门槛开发。

源启2.0为应用重构提供平台支撑,为用户将传统的单体应用迁移到云原生微服务集群技术架构,为应对超大型、超复杂架构和新一代数字化应用集群,打造企业级架构和企业级技术平台。

其实,在中电金信看来,“源启” 不仅是产品,也是底座、平台、工具和经营理念融合的一套工程方法论。“这是中电金信在经营战略和业务战略上的表达。中电金信不是只提供底层平台的公司,还提供底层、中间层和应用构建的咨询规划和实施落地,也就是我们所说的‘源启+应用’的解决方案”况文川说。

中电金信副总经理、研究院院长况文川

从源启2.0对外发布的定位来看,它不仅是通过系统工程的方法,对全栈技术产品进行垂直适配、调优和定制,开展软硬件一体化设计的行业产品,更是依托于中国电子全栈产业链和开放合作生态,面向金融、能源、制造等多个重点行业场景,这也就解释了“源启”的金融级定位,既面向金融行业的高并发关键交易和实时海量数据分析,也面向电力行业的低时延响应和低频边缘计算,更面向不同领域的行业客户、同业伙伴提供金融级数字底座“源启”,并探索合作共建行业数字基础设施的全新模式。

随着数字化转型的深入,我们将进入数字原生时代,数字化应用的创新迭代速度继续加快,客户对体验和服务的需求更加极致。今天,在新的底座之上,重构应用将会让企业焕发更多活力。

变局中,企业需要的是真正拥有穿越周期的定力和面向未来的增长。透过“源启+”,中电金信正在向新技术要答案,向新应用要发展。

#中电金信#
全部评论

相关推荐

11-08 09:02
已编辑
北京邮电大学 C++
1. C++中的“虚继承”是什么?它解决了什么问题?2. 解释一下C++中的“类型擦除”(type erasure)。3. C++中的“命名空间别名”有什么用?如何定义?4. C++中的“std::variant”是什么?它与“std::any”有何区别?5. C++中的“范围for循环”是如何工作的?它的优缺点是什么?6. C++中的“智能指针”和原始指针相比,有哪些优势和劣势?7. 解释一下C++中的“模板元编程”。8. C++中的“强制类型转换”与“隐式类型转换”有什么区别?9. C++中的“异常安全”如何实现?有哪些等级?10. C++中的“基于范围的for循环”如何使用?11. C++中的“nullptr”是什么?它与“NULL”有什么区别?12. C++中的“聚合类”是什么?它有什么特点?13. C++中的“std::deque”与“std::vector”有什么区别?14. 解释一下C++中的“函数对象”(functor)。15. C++中的“引用折叠”是什么?如何工作?16. 如何在C++中实现“单例模式”?17. C++中的“多态”是如何实现的?有什么类型?18. 解释一下C++中的“constexpr”关键字及其用途。19. C++中的“友元类”和“友元函数”有什么区别?20. C++中的“内存对齐”是什么?为什么重要?21. C++中的“静态成员变量”如何使用?有什么特点?22. 解释一下C++中的“动态多态”和“静态多态”。23. C++中的“模板参数推导”是如何工作的?24. C++中的“std::list”与“std::vector”在性能上的区别是什么?25. C++中的“析构函数”何时被调用?有什么注意事项?26. C++中的“std::optional”是什么?它的应用场景有哪些?27. C++中的“内联命名空间”有什么作用?28. 解释一下C++中的“自定义类型转换”。29. C++中的“constexpr函数”有什么限制?30. C++中的“多重模板参数”如何定义和使用?更多嵌入式面经题目,可以看下边大佬总结的面  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务