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

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

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

相关文章
|
17小时前
|
Kubernetes Cloud Native 持续交付
构建高效稳定的云原生应用:容器编排与微服务治理实践
【5月更文挑战第14天】 随着企业数字化转型的深入,云原生技术以其弹性、敏捷和可扩展的特性成为现代应用开发的首选模式。本文将探讨如何通过容器编排工具如Kubernetes以及微服务架构的有效治理,构建和维护高效且稳定的云原生应用。我们将分析容器化技术的优势,并结合案例讨论在多云环境下实现持续集成、持续部署(CI/CD)的最佳实践,同时解决微服务带来的分布式复杂性问题。通过本文的阐述,读者将获得一套提升系统可靠性和业务连续性的策略框架。
4 0
|
1天前
|
机器人 Unix C++
ROS机器人编程技术架构命令应用
ROS机器人编程技术架构命令应用
5 1
|
2天前
|
Cloud Native 安全 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【5月更文挑战第12天】 随着数字化转型的浪潮不断冲击传统IT架构,企业亟需灵活、高效且可扩展的技术解决方案以保持竞争力。云原生技术作为一种新兴的系统构建方式,以其独特的弹性、微服务和持续交付等特性,成为推动企业快速响应市场变化的关键因素。本文将深入探讨云原生架构的核心组件,分析其如何促进企业的敏捷性,以及在实施过程中可能遇到的挑战和解决策略,为企业采纳云原生技术提供参考。
|
3天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【5月更文挑战第11天】 随着数字化转型的深入,企业对技术的敏捷性、可扩展性和成本效益提出了更高的要求。云原生架构作为一种新兴的设计理念和实践方法,正逐渐成为推动企业技术革新的关键力量。本文将深入探讨云原生架构的核心组件,包括容器化、微服务、持续集成/持续交付(CI/CD)以及DevOps文化,并分析它们如何共同作用于企业的IT基础设施,实现灵活、高效的运营模式。同时,我们也将识别在采纳云原生技术时面临的主要挑战,并提出相应的解决策略,以帮助企业顺利过渡到云原生时代。
|
4天前
|
弹性计算 负载均衡 容灾
应用阿里云弹性计算:打造高可用性云服务器ECS架构
阿里云弹性计算助力构建高可用云服务器ECS架构,通过实例分布、负载均衡、弹性IP、数据备份及多可用区部署,确保业务连续稳定。自动容错和迁移功能进一步增强容灾能力,提供全方位高可用保障。
16 0
|
5天前
|
运维 Cloud Native 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【5月更文挑战第9天】 随着数字化转型的浪潮席卷全球,企业正迅速采纳云原生技术以实现敏捷性、可扩展性和弹性。本文深入探讨了云原生架构的关键组件,包括容器化、微服务、持续集成/持续部署(CI/CD)和DevOps文化,并分析了这些技术如何帮助企业加速产品上市时间,提高运营效率,并最终实现业务目标。同时,文章也识别了企业在采纳云原生实践中可能面临的挑战,如安全性考量、团队技能提升和复杂的网络管理,并提出了相应的解决方案和最佳实践。
|
7天前
|
弹性计算 Cloud Native 安全
云原生架构的未来展望:如何引领企业转型与创新
【5月更文挑战第7天】随着云计算技术的不断发展,云原生架构已经成为企业数字化转型的关键驱动力。本文将深入探讨云原生架构的优势、挑战以及未来发展趋势,为企业提供一种全新的技术视角,以实现更高效、灵活和可扩展的业务运营。
|
8天前
|
监控 负载均衡 API
微服务架构在现代企业中的应用与挑战
微服务架构已成为现代企业构建灵活且可扩展软件系统的首选。然而,随着其应用的普及,企业也面临着一系列新的挑战。本篇文章将探讨微服务架构的优势、实施时遇到的问题以及解决这些问题的策略。
|
6天前
|
存储 Cloud Native 对象存储
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
AutoMQ[1] 是新一代基于共享存储架构实现的云原生 Kafka。得益于其存算分离的共享存储架构,通过和阿里云合作,深度使用阿里云可靠、先进的云服务如对象存储OSS、块存储 ESSD、弹性伸缩ESS以及抢占式实例实现了相比 Apache Kafka 10倍的成本优势并且提供了自动弹性的能力。
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
|
7天前
|
消息中间件 人工智能 监控

热门文章

最新文章