金融应用新方向-云原生
Posted 核心系统业务与技术
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了金融应用新方向-云原生相关的知识,希望对你有一定的参考价值。
近些年,国内的银行纷纷发力建设分布式核心、金融云平台,金融服务上云逐渐成为趋势。随着金融企业的用户量和业务量不断增长,金融科技的交付效率和服务能力就变得越来越重要。为了提高这些能力,工程师们将目光瞄准了云原生架构。
1 概述
云计算可以认为是一种服务。它屏蔽了底层的硬件细节,它把底层海量的计算机硬件和计算能力都封装起来通过云服务的形式提供给用户。通过它,用户可以轻松地拥有强大的计算能力和海量的硬件资源。
云计算可以认为是基础设施,在其上开发的软件应用拥有强大的服务能力。那么,应用开发人员应该如何开发云计算平台上的应用呢?这就涉及到云原生的理念。
云原生是指导云计算平台上应用的设计、开发和部署的方法论。云原生是一种行为方式和设计理念,凡是能够提高云上资源利用率和应用交付效率的行为或方式都是云原生的。云原生应用从设计、开发,到部署都是基于云的理念,并通过一套自动化的开发流程CI/CD来实现。
从本质上讲,云原生是随着虚拟化技术和分布式架构的成熟与普及,以及应用上云的大趋势下,让应用更高效的融合云技术优势的一种理念。与其说云原生是一门技术或者一个产品,不如说云原生一套技术方法体系,它可以让企业快速部署新业务,提供新的应用环境。
云原生技术的出现,可以帮助金融行业将其传统的金融应用转向云计算架构,从而提升金融应用的服务能力和交付能力。
2 解决什么问题
在日常的产品研发过程中,科技人员经常遇到如下问题:
面对快速变化的市场环境,科技系统如何快速响应业务需求,缩短交付周期,迅速发布新的产品和服务?
面对海量的应用服务器,如何高效部署、更新、发布和管理应用?如何解决应用和服务的在线监控、问题诊断和高可用运维问题?
面对大量的用户请求,系统如何保证稳定可靠?如何对用户交易行为进行实时监控,如何进行实时的数据分析和告警?系统该如何水平扩展,才能满足市场快速变化的需求?
随着分布式架构的上线,如何全方位关注业务、交易链路、应用监控状况等指标,形成立体化监控体系?
在云计算时代,系统变得越来越复杂,用户对于响应速度的要求越来越高,对系统运行稳定性的需求变得越来越高,这使得科技人员面临着巨大的压力。
云原生架构的出现为上述问题的解决提供了方案。
云原生应用最大的特点就是可以迅速部署新业务。以往,科技人员发布新的应用程序环境及软件版本通常需要花费较长的时间。而一旦部署出现问题,修复问题及重新部署又会花费大量时间。通过云原生应用快速部署新业务,即提高了效率,又提高了系统部署的可靠性。
云原生可以帮助企业的开发人员提高开发效率,发挥云技术优势,提供更高效的工作方式,助力技术赋能业务创新。
3 技术框架
根据云原生应用的提出者Pivotal的定义,云原生拥有DevOps、持续交付、微服务和容器这四大特征。
1、 DevOps
DevOps是开发加运维的意思。它是一组关于软件开发运维的方法论,核心理念是强调开发、运维和测试需三者合一。
DevOps强调开发和运维团队,通过自动化工具,进行高效的沟通和协作来完成软件的生命周期管理,从而实现更快更可靠的交付。
2、 持续交付
持续交付是一种技术和理念,保证软件可以稳定、持续的保持在随时可以发布的状况。它的目标在于让软件的构建、测试与发布变得更快更高效,减少软件开发的成本与时间,减少风险。
例如,银行某个业务需求不能很快确定,需要业务人员反复讨论。到最后,等需求确定时留给开发人员的时间只剩预计时间的一半了。接下来,开发人员加班加点开发、交付到上线运营时,市场环境变了,需求又得随之变化,怎么办?
这种情况下,需要科技人员把交付的周期缩短一点,实现快速交付。这样每次交付都可以重新确认方向,尽量避免产品与未来需求的差距太大。因此,持续交付的优势在于,它可以缩小开发者认知差异,重新确认方向。
3、 微服务
微服务通过松耦合方式,提升应用程序的整体敏捷性和可维护性。微服务架构解决了软件开发工作中的低耦合和高内聚的目标,将系统的服务按照组织架构的功能来进行划分,防止不同功能单元间发生互相影响。也即是单个服务能独立地更新,扩展和启动而不影响其他服务,因此单个服务的开发团队更小,也更加独立。
例如,在传统架构中,银行存取款、开销户都是作为服务部署在一个叫做银行核心系统的应用中,当银行核心系统这个应用出现问题时,客户的存取款、开销户服务都用不了了。
而在微服务架构下,存款、取款、开户销户都是单独的服务,独立部署成一个应用,这样即使存款服务发生问题,也不影响取款、开户和销户服务的正常运行。整个银行服务的可用性大大提高,客户体验也会更好。
4、 容器化
容器的意思就像是用一个集装箱把需要发布的软件产品打包好。当需要启动该软件时,直接拿起箱子,启动就行了,而不需要再去检查和准备里面的内容。
容器化的出现,一定程度上带动了微服务架构发展。架构从单体式演化到了分布式,又从分布式演化到了云原生架构,微服务在其中不可或缺。
使用容器,微服务可以将其所需的配置、依赖关系和环境变量,以标准化打包的方式迁移到全新的服务器节点上,而无需重新配置环境,提供了真正的应用可移植性。由于其支持进程被隔离和限制,并且不依赖于特定的基础架构,又不影响主机的安全,使得容器技术深受开发人员的欢迎,极大的简化了开发和运维工作。
如今随着容器化的发展,基于容器的编排平台,可以充分利用、发挥云计算基础设施的优势,使得复杂的软件部署策略变得简单。容器为云原生应用程序增加了更多优势。使用容器,你可以将微服务及其所需的所有配置、依赖关系和环境变量移动到全新的服务器节点上,而无需重新配置环境,这样就实现了强大的可移植性。
云原生的代表技术里需要重点提一下容器技术和Kubernetes。
容器技术是一种轻量级的虚拟化技术,主要致力于提供一种可移植、可重用且自动化的方式来打包和运行应用。其典型应用就是Docker。
Docker 是一个开源的、轻量级的容器引擎,它可以创建、管理、监控和编排容器。
Kubernetes是一套容器集群管理系统,是一个开源平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能,充分发挥容器技术的潜力,给企业带来真正的便利。Kubernetes拥有自动包装、自我修复、横向伸缩、服务发现、负载均衡、自动部署、升级回滚、存储编排等特性。此外,容器集群管理系统还有Swarm等产品。
4 应用上云
现阶段的银行系统中,大部分都不是云原生应用。现有业务系统向云平台迁移时需要考虑很多因素,应尽量避免迁移对业务带来影响。系统迁移上云还需要根据系统类型和重要性选择合适的迁移方式,而对于复杂系统的迁移上云,需要根据实际情况采用定制化的迁移技术及方法。
一般来说,应用系统在向云原生架构的迁移过程中,需要结合云原生的特征进行一些升级改造。例如,常见的应用上云改造需考虑的点如下:
服务的无状态化改造。使得应用可以适应分布式环境。
弹性扩容
多租户,数据隔离
持续集成能力
应用容器化的封装适配,如底层Dockerfile的构建
配置和应用的分离等
以上是关于金融应用新方向-云原生的主要内容,如果未能解决你的问题,请参考以下文章