《云计算加速开源创新》——开放应用架构助力金融企业云原生治理

简介: 《云计算加速开源创新》——开放应用架构助力金融企业云原生治理

image.png

 目前,招商银行的云原生应用已经完成了大规模私有云建设,所有基础设施已经全面云化。经过三年的发展后,即将在今年完成应用全面上云。后续所有应用的开发、运维、交付将在私有云上进行,因此,我们也在进行云原生应用的全面转型。

image.png 

 

而转型过程中,我们也面临了巨大的挑战。

 

首先,企业基础设施复杂,包括计算、存储、网络、安全,特别是网络基础设施极具复杂度。运行时经过私有云建设后实现了全覆盖,包括虚拟化、容器类、函数式、大型机、小型机等,属于行业特有。

 

其次,高要求。行业性质导致对应用交付和运维的要求较高,很多应用需要 24*7 的可用性。

 

最后,稳定安全。云原生应用转型是必经之路。因此,技术选型上也倾向于成熟、可用、合规、开源的技术,期望能够稳定、安全地完成云原生转型。

image.png 

 

从应用设计开发视角来看,会有各种应用设计方式对业务应用进行划分,业务应用按照微服务方式又会被拆解为微服务以及组成依赖。以点餐系统为例,可划分为交互类、订餐类、门店类、后厨、配送、结算以及外部消息通知业务,每业务都可由多个微服务组成。以结算业务为例,可能由付款、对账以及退款等微服务组成。

 

应用完成设计开发后需进行部署,而部署时也会面临诸多问题。比如付款服务需要提供HTTP访问,需要进行部署然后对外访问,平台侧会要求开发人员申请网络资源,比如路由、f5、SOP,如果没有资源则无法满足服务。而应用开发人员更倾向于平台提供符合其应用认知的一套概念或模型,彻底屏蔽底层的复杂性,并提供发布保障能力,保证微服务化应用能够平稳发布,避免造成安全事件。

 

另外,运维阶段出现问题后需要能够快速修复,否则会产生经济损失或其他事件。但如果平台侧没有做抽象天然,应用和运行时耦合,则复杂度难以被屏蔽,因为应用团队和平台团队的关注点并不相同。

image.png 

 

针对关注点不同,最好的解决方式是分离,而实现分离最好的方式是进行抽象。

 

社区提供了OAM应用开放模型来进行抽象。所有云上的资源对象会被归类为两类,一类是工作负载,一类是应用具备的能力,比如弹性能力、灰度能力、被访问的能力等。资源属性变为了工作负载的一种属性,而非独立的资源对象。从而实现多云以及复杂基础设施概念上关注点的分离。

 

而仅有分离依然不够,必须要有对应的framework进行支撑,因此我们选择了KubeVela。云原生应用的治理和管理是长期性的,有丰富的未来,也会演进出更多丰富形态或功能。因此,framework必须高度可扩展、插件化,方能满足长期演进的诉求。

image.png 

 

有了内核,还需要有一套业务能够附着在该套体系上。

 

业务被定义为企业云原生应用交付和运维的一种范式,重点包括以下几个方面:

 

按业务scope来交付应用。应用已经被微服务化,意味着要交付一个肯定不止交付一个微服务,而是交付业务相关的微服务,需要按应用来交付。

应用易部署。

应用易观测。

兼容非云原生的工作负载

最佳实践能力平台化。平台要可扩展,范式要可扩展,支持其他更丰富的能力,将实践平台化、能力化,而不是作为一种布道或方法论停留在平台工具链以外。

image.png

 

技术实践一:面向OAM实现了7种工作负载,提供面向业务应用的交付。

 

以点餐应用为例,系统划分为应用后按照多个业务被拆解为多个微服务,比如结算业务由三个微服务组成,三个微服务有对应的SQL。后端微服务需要提供HTTP、RestAPI、web后端等微服务,有对应的DB。

 

因此在云原生应用管理平台里能找到与之匹配的应用工作负载,像搭乐高一样将其聚合在一起。完成面向OAM的描述后,将描述传递至业务管理平台,OAM Engine会在基础设施和运行时里创建合适、匹配的资源对象,并使运维能力自动化生效。

 

此时,平台开发团队管理的依然是资源,但应用开发团队管理的已不再是资源,而是应用对象。

 

image.png

 

技术实践二:应用全链路灰度发布。

 

易部署指部署不出问题,安全可靠、稳定可控、可观测。

 

如上图所示,A为前端服务,调用了C网关,然后网关分发到B并且操作DB。需要上线A和B的V2灰度版本。此时,应用平台需要提供三个方面的能力:

 

帮助应用开发人员创建与之匹配的灰度环境,但是流量不进入。

 

使流量可以平滑、端到端地进入对应的微服务灰度版本,中间经过的节点能够实现透传,意味着流量控制在需要经过的部分,其他部分不受影响,即可以进行安全切流。

 

流量能够识别。按照比例或流量特征,通过 header、cookie或body过滤出需要的流量。

 

比如要验证某测试用户的一笔银行交易经过某链路,它不应该影响全局的其他链路。最终灰度完成后,系统要自动化地回收相关资源,清理现场是一项繁重的工作,尤其是复杂的微服务应用。如果验证成功,则将V2作为正式版本,将V1回收;如果不达标,则会回退,将V2回收,流量切回V1,过程安全可控。

 

微服务作为一种运维特征被描述进OAM Spec,并由controller实现成体系的灰度发布能力,通过OAM和KubeVela进行扩展。

 

image.png

 

技术实践三:应用可观测体系

 

应用被部署后,云原生应用面临的最大问题是微服务化后分布式数据更碎片化,运维人员的运维难度更大。

 

因此,需要将面向业务视角的微服务log、trace、metrics按照OpenTelemetry的方式归拢到存储里,用于分析排障。比如控制哪些服务应该被采集、面向微服务应该如何做SLA、SRE等服务能力的标定度量,以上能力均可以插件化的方式描述进OAM于KubeVela。

 

OTel采集服务实例时,metrics的trade会打在对应服务实例应用的annotation上,使得采集器确认应该采集哪些服务。其次,可将对于服务的可用性、性能的要求内置入平台,平台基于可观测数据进行动态计算,没有达到标准则会触发告警,使得云原生应用的排障或运营更数字化。

 

image.png

 

技术实践四:VMService兼容非云原生负载

 

上云过程中,很多企业会有虚机应用的工作负载,针对大部分工作负载,可以采用容器化改造的方案。而对于一些较为重要的应用,企业无法承受改造带来的风险,应如何解决?

 

虚机的应用分为两个阶段

 

首先,创建虚机控制流

其次,部署虚机应用的控制流,上图绿色为流量。

 

如上图左侧,我们将虚机VMService做成模型实现工作负载标准化后,内置了路由和负载均衡相关描述,将描述交给OAM Engine后,由其负责路由controller的逻辑、创建VMService的虚机逻辑、启动应用等,使虚拟从资源申请到应用的发布实现完全的自动化。

 

OAM Engine可以完全复用到非云原生的工作负载。比如希望将工作负载迁到K8S上,可直接复用OAM Engine,只有对接的运行时发生变化,模型不变。对于上层应用开发者而言,只有配置上的轻微差别,可以实现无感地从虚拟化到容器、云原生的管理方式。

 

image.png 

 

上图为应用架构,整体分为三层、四个部分。

 

最上层为交互层,中间是OAM和KubeVela留给企业的可高度扩展层,可以定义自己的工作负载,定义自己需要的运维特性与之绑定。底层OAM Engine可交给社区,企业和开源社区之间存在一条清晰的分界线,利于软件的合规管理。若企业发现某个通用功能非常有意义,可以将功能贡献到Vela库,完成企业对开源社区的反哺。同时,外部生态也可被轻易扩展。

 

image.png

如果要在多云环境、基础设施极其复杂的环境做云原生应用的转型,首先需要做应用抽象,通过应用抽象实现关注点的分离。同时,还需建立一套属于自己企业的云原生应用交付运维范式,并能够兼容历史,实现平滑过渡。最后,技术路线需要满足高度插件化,架构才能长期演进,才能助力企业的云原生转型。

 

未来云原生应用的一个阶段可能是云原生化的SaaS,SaaS企业不一定会构建自己的PaaS,但肯定会构建自己的应用管理平台。因为公有云或云厂商提供的应用管理平台无法端到端地、无缝贴合 SaaS服务企业应用管理的诉求。

 

如果SaaS生态异常开放,SaaS企业发展蓬勃,则意味着云原生应用管理平台有着宽广的技术赛道,相信OAM与KubeVela会是赛道中的选项。

相关文章
|
1月前
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
|
1月前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
7天前
|
开发框架 前端开发 .NET
一个适用于 .NET 的开源整洁架构项目模板
一个适用于 .NET 的开源整洁架构项目模板
49 26
|
30天前
|
人工智能 自然语言处理
RWKV-7:RWKV系列开源最新的大模型架构,具有强大的上下文学习能力,超越传统的Attention范式
RWKV-7是RWKV系列的最新大模型架构版本,具有强大的上下文学习能力,超越了传统的attention和linear attention范式。本文详细介绍了RWKV-7的主要功能、技术原理及其在多语言处理、文本生成等领域的应用场景。
139 7
RWKV-7:RWKV系列开源最新的大模型架构,具有强大的上下文学习能力,超越传统的Attention范式
|
1月前
|
监控 数据可视化 架构师
为什么企业需要开展架构治理?
随着数字化转型加速,企业面临的技术和业务环境日益复杂,传统架构难以应对快速变化的需求。企业架构治理成为数字化转型的关键,通过确保技术与战略对接、优化资源利用、降低风险和复杂性,提升企业灵活性、效率和创新能力,支持快速响应市场变化,推动数字化转型成功。
113 7
为什么企业需要开展架构治理?
|
1月前
|
监控 数据可视化
如何通过建模工具实现企业架构治理全流程管理
企业架构治理工具通过构建统一的架构语言、可视化建模、流程管理、资源整合和多场景分析,实现企业架构的全生命周期管理。该工具赋能企业数字化转型,确保业务、平台、数据及技术相互耦合闭环,提供从规划到决策的一站式服务,助力提升业务运营、优化组织管理和加速数字化建设。
48 2
如何通过建模工具实现企业架构治理全流程管理
|
18天前
|
容灾 网络协议 数据库
云卓越架构:云上网络稳定性建设和应用稳定性治理最佳实践
本文介绍了云上网络稳定性体系建设的关键内容,包括面向失败的架构设计、可观测性与应急恢复、客户案例及阿里巴巴的核心电商架构演进。首先强调了网络稳定性的挑战及其应对策略,如责任共担模型和冗余设计。接着详细探讨了多可用区部署、弹性架构规划及跨地域容灾设计的最佳实践,特别是阿里云的产品和技术如何助力实现高可用性和快速故障恢复。最后通过具体案例展示了秒级故障转移的效果,以及同城多活架构下的实际应用。这些措施共同确保了业务在面对网络故障时的持续稳定运行。
|
18天前
|
人工智能 运维 监控
云卓越架构:企业稳定性架构体系和AI业务场景探秘
本次分享由阿里云智能集团公共云技术服务部上海零售技术服务高级经理路志华主讲,主题为“云卓越架构:企业稳定性架构体系和AI业务场景探秘”。内容涵盖四个部分:1) 稳定性架构设计,强调高可用、可扩展性、安全性和可维护性;2) 稳定性保障体系和应急体系的建立,确保快速响应和恢复;3) 重大活动时的稳定重宝策略,如大促或新业务上线;4) AI在企业中的应用场景,包括智能编码、知识库问答、创意广告生成等。通过这些内容,帮助企业在云计算环境中构建更加稳定和高效的架构,并探索AI技术带来的创新机会。
|
21天前
|
运维 监控 安全
天财商龙:云上卓越架构治理实践
天财商龙成立于1998年,专注于为餐饮企业提供信息化解决方案,涵盖点餐、收银、供应链和会员系统等。自2013年起逐步实现业务上云,与阿里云合作至今已十年。通过采用阿里云的WA体系,公司在账号管理、安全保障、监控体系和成本管控等方面进行了全面优化,提升了业务稳定性与安全性,并实现了显著的成本节约。未来,公司将持续探索智能化和全球化发展,进一步提升餐饮行业的数字化水平。
|
19天前
|
监控 架构师 安全
企业架构(EA)项目开发综合指南
企业架构(EA)是一种全面的方法,用于对齐企业的业务目标与其 IT 战略和资源。EA 涵盖了企业的各个层面,包括业务流程、信息流、应用系统和技术基础设施。本指南将详细探讨 EA 项目开发的关键步骤、[EA](https://www.visual-paradigm.com/features/enterprise-architecture-diagram-tool/) 与 TOGAF、ArchiMate 以及其他建模图(如 BPMN 和 UML)之间的关系,以及推荐 Visual Paradigm 作为 EA 团队的最佳解决方案。
49 3

热门文章

最新文章