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

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

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会是赛道中的选项。

相关文章
|
26天前
|
Cloud Native 安全 物联网
云原生技术在现代软件开发中的应用与挑战####
云原生,这一词汇如同一股强劲的科技风暴,席卷了整个信息技术领域,它不仅重塑了软件的开发模式,还引领了一场关于效率、可扩展性和弹性的深刻变革。本文旨在深入探讨云原生技术的核心概念,分析其在现代软件开发中的广泛应用,并直面伴随其发展而来的挑战,为读者勾勒出一幅既充满机遇又不乏考验的云原生技术图景。 ####
|
25天前
|
运维 供应链 安全
SD-WAN分布式组网:构建高效、灵活的企业网络架构
本文介绍了SD-WAN(软件定义广域网)在企业分布式组网中的应用,强调其智能化流量管理、简化的网络部署、弹性扩展能力和增强的安全性等核心优势,以及在跨国企业、多云环境、零售连锁和制造业中的典型应用场景。通过合理设计网络架构、选择合适的网络连接类型、优化应用流量优先级和定期评估网络性能等最佳实践,SD-WAN助力企业实现高效、稳定的业务连接,加速数字化转型。
SD-WAN分布式组网:构建高效、灵活的企业网络架构
|
7天前
|
Kubernetes Cloud Native 持续交付
云原生技术在现代软件开发中的应用与挑战
【10月更文挑战第37天】随着云计算技术的不断演进,云原生技术已经成为推动软件开发现代化的重要力量。本文将深入探讨云原生技术的核心概念、优势以及面临的挑战,并通过一个实际的代码示例,展示如何在云原生环境中部署一个简单的应用。我们将从云原生的基础架构出发,逐步引导读者理解其在现代软件开发中的关键作用。
18 1
|
10天前
|
Kubernetes Cloud Native 云计算
云原生技术深度解析:重塑企业IT架构的未来####
本文深入探讨了云原生技术的核心理念、关键技术组件及其对企业IT架构转型的深远影响。通过剖析Kubernetes、微服务、容器化等核心技术,本文揭示了云原生如何提升应用的灵活性、可扩展性和可维护性,助力企业在数字化转型中保持领先地位。 ####
|
10天前
|
运维 Cloud Native Devops
云原生架构:重塑企业IT的未来####
随着数字化转型浪潮的汹涌,云原生架构凭借其高度灵活、可扩展和高效的特性,正逐步成为企业IT系统的核心。本文将深入探讨云原生架构的核心要素、技术优势以及如何引领企业实现业务创新与敏捷交付。 ####
|
20天前
|
敏捷开发 Cloud Native 持续交付
云原生技术在现代企业中的应用与实践
【10月更文挑战第23天】本文将深入探讨云原生技术在现代企业中的广泛应用,并结合具体案例分析其对企业数字化转型的推动作用。我们将从云原生技术的基本原理出发,逐步揭示其在提高业务敏捷性、降低成本和增强系统可靠性方面的优势。同时,文章还将分享一系列成功实施云原生技术的企业案例,为读者提供实践中的参考和启示。最后,我们将讨论云原生技术面临的挑战及未来的发展趋势,为企业在这一领域的进一步探索提供指导。
|
21天前
|
监控 API 调度
开放源代码平台Flynn的架构与实现原理
【10月更文挑战第21天】应用程序的生命周期涉及从开发到运行的复杂过程,包括源代码、构建、部署和运行阶段。
|
21天前
|
Cloud Native 持续交付 云计算
云原生技术深度探索:构建现代化应用的基石####
【10月更文挑战第21天】 本文将深入探讨云原生技术的核心概念、关键技术及其在现代软件开发中的应用。我们将从容器化、微服务架构、持续集成/持续部署(CI/CD)、无服务器架构等关键方面展开,揭示这些技术如何共同作用,帮助企业实现高效、弹性且易于维护的应用部署与管理。通过实例分析,展现云原生技术在实际项目中的显著优势,为读者提供一套全面理解并应用云原生技术的指南。 ####
31 2
|
27天前
|
运维 Cloud Native 持续交付
云原生技术在现代IT架构中的深度应用与挑战####
【10月更文挑战第17天】 本文深入剖析了云原生技术的精髓,探讨其在现代IT架构转型中的核心作用与面临的挑战。云原生不仅是一种技术实现,更是企业数字化转型的重要推手,通过容器化、微服务、持续集成/持续部署(CI/CD)等关键要素,重塑软件开发、部署与运维模式。文章首先概述了云原生的基本原则与核心组件,随后分析了其如何促进企业敏捷性、可扩展性和资源利用率的提升,同时也指出了在安全性、复杂性管理及人才技能匹配等方面存在的挑战,并提出了相应的对策建议。 ####
66 6
|
25天前
|
Cloud Native Devops 持续交付
云原生架构:重塑企业IT的无形之手####
本文旨在探讨云原生架构如何成为推动企业数字化转型的核心动力,它不仅是一种技术升级,更是业务与开发模式的深刻变革。通过剖析云原生的核心要素——微服务、容器化、持续集成/持续部署(CI/CD)、以及DevOps文化,本文揭示了这一架构如何提升系统的弹性、可扩展性和敏捷性,为企业在竞争激烈的市场环境中赋予快速响应和创新的能力。不同于传统综述,本文将以一个虚构案例贯穿始终,直观展示云原生架构从理论到实践的转化过程,为读者提供一幅生动的技术蓝图。 --- ###

热门文章

最新文章