当前,全球的数字化浪潮逐步加深,云计算成为当今信息化发展的重要基础设施,云原生技术在数字化浪潮中的角色逐步提升,成为各大互联网公司实现敏捷开发和高效运营的重要驱动力。就在 10 月 18 日,由极客邦科技旗下 InfoQ 中国主办的 QCon 全球软件开发大会在上海盛大召开,大会分论坛聚焦于云原生战略与实践,深入探讨如何通过云原生技术加速业务迭代、优化成本以及应对安全挑战。
网易数智作为网易旗下专注于企业服务的部门,应邀出席云原生工程实践专题论坛,在现场,网易云信资深架构师裴明明发表了题为《云原生架构下中间件联邦高可用架构实践》的精彩演讲,向与会者展示了网易云信在“云原生中间件”领域的产品技术创新以及应用实践成果。
本文将跟大家分享演讲的核心内容,深入探讨网易云信云原生中间件的发展、管理策略,以及构建跨可用区的高可用性架构实践。
随着云计算技术的持续进步,云原生生态已从传统的单一架构演变至现今的云原生技术栈。这一转变中,中间件技术也经历了显著的进化,从高门槛的社区开源中间件转变为如今高效易用的云原生中间件。在当今快节奏的商业环境中,业务的高速增长,IT 系统的压力与日俱增,企业需要快速响应市场变化,灵活地开发和部署应用。
云原生 K8s、Docker 等技术的飞速发展,让云原生中间件能够更好地与基础设施结合,实现自动化管控,资源统一调度,有效提升资源利用率,降低基础设施成本,实现商业化快速交付。而云原生中间件以其低资源消耗、高性能、以及天生的弹性、自愈和易编排等特性,已成为现代应用架构中不可或缺的一部分,并在商业环境中备受青睐,它不仅能够支持快速交付,还能够满足当下市场对敏捷开发和持续集成的需求。
近些年来,网易云信一直在持续打磨一站式云原生软件生产力平台,网易轻舟中间件是基于云原生架构打造的易用性高、自愈能力强、具备高可用能力的企业级中间件运维平台,提供基于容器的数据库、缓存、消息等分布式中间件,让客户可以将等同于公有云的 PaaS 服务能力交付到任何能够安装 Kubernetes 的环境,具有高 SLA、高性能、低成本的特点,目前网易云信云原生中间件平台已经实现了数据冷备、集群主备、同城双活、异地多活等多种中间件高阶功能,并已在多个客户方实现落地。
会上,裴明明强调,网易云信轻舟中间件基于云原生时代的事实标准 Kubernetes 的通用接口打造,帮助中间件平滑、稳定地运行在多种基础设施之上,同时基于 Kubernetes Operator 的高可用调度能力,保障中间件集群具备高可用、故障容忍、弹性扩展等能力,为用户提供中间件集群的可视化生命周期管理能力,支持用户一键创建、启动、停止、删除集群,以及一键扩缩容节点和变更资源规格,极大地简化了中间件运维操作的复杂性。
在构建云原生应用时,实现对多云多集群的统一管理是至关重要的。网易云信云原生中间件为企业用户提供了全面、高性能、高可靠、自动化的一站式中间件集群管理平台,提供主流消息、缓存等中间件服务,具备自动化运维能力以及弹性扩缩容能力,助力业务在多云多集群的环境中实现最佳性能和最高可靠性。
通过计算集群管控面,实现对中间件集群生命周期和路由访问的统一管控。这意味着,无论您的应用部署在哪个云平台或集群,我们都能提供一致的管理体验,简化运维工作,提高效率。另外,我们采用基于CRD Operator的架构,实现了中间件的自动化运维和故障自愈,系统将自动检测问题并采取相应的修复措施,减少了人为干预,提升系统的稳定性与可靠性。此外,基于监控指标的自动弹性伸缩功能以及业务高峰期的定时扩缩容,确保在流量高峰时能够及时扩展资源,满足业务需求。
一方面,网易云信轻舟中间件大大降低了技术栈选型开发以及运维等人力成本,能有效提升计算、存储等资源的利用率。另一方面,轻舟中间件基于云原生特性可支持秒级扩缩容和业务流量的快速接入,面对业务洪峰可实现快速扩容,当洪峰退去也可快速缩容,节省资源占用。在有效提高基础资源利用率的同时,降低基础设施的建设投入,从而大幅提升应用交付效率,提升企业级应用大规模扩展能力和资源利用率。
在云原生中间件性能方面,网易云信基于LoadBalancer和NodePort模式的外部访问能力,负载均衡多主模式提升性能,基于 LVM 的本地磁盘管理服务实现本地磁盘生命周期动态管理,能够显著提升中间件性能。此外,基于Prometheus 技术体系建设的监控告警系统,能够实现事件监控告警。中间件管理能力和运维中心,则能够提供风险巡检、根因分析、自主诊断等能力以增强运维能力并提升集群的稳定性。
会上,裴明明分享了构建高可用中间件平台的成功经验方法,分别列举了多集群数据同步和单集群跨可用区两大中间件集群高可用方式。在实践应用中,为解决有状态服务、中间件调度以及故障自愈等挑战,网易云信采用了开源社区标准集群联邦组件 Karmada,来实现对多云和多集群进行联合管理,确保服务的连续性和稳定性。
裴明明指出,在使用 Karmada 进行中间件集群联邦时遇到诸多挑战,例如 Karmada 部署的时候要求使用独立的 ECTD 和 APIServer 存放 K8s 资源,并基于管控集群的资源进行资源传播,这不仅增加了额外的资源成本,同时也提高了部署的复杂性。另外,Karmada 本身对有状态服务的支持相对有限,这对于需要有序节点部署的中间件集群来说是一个难题。在实际应用中,后续节点的部署往往依赖于前一个节点的部署状态,这要求 Karmada 能够提供更精细的控制和管理能力来满足实际需求。
针对中间件有状态服务的特性,网易云信云原生团队基于中间件实际的需求,自研了集群联邦组件 Pythia,Pythia 相对 karmada 做了大量增强,尤其是针对中间件联邦场景,因为中间件部署实际上主要集中在对中间件联邦类型 CRD 的管控,所以能够实现管控集群共用。另外,Karmada 的设计遵循K8s 原生 API 兼容原则,可以无侵入式地接入多集群环境,降低了多集群接入成本。在管控集群中,Karmada 负责联邦资源的分发和状态汇聚管理,并提供了面向用户的查询接口,让资源管理和监控变得更加便捷。
在构建云原生环境下的中间件集群联邦时,网易云信采用了一套综合解决方案,以确保跨集群的高可用性和资源的最优化管理。以下是我们实现中间件集群联邦的关键组件和流程:
上图描述了中间件集群联邦的架构,整个架构分成了两个部分:联邦管控端和计算端。其中联邦管控端包含了中间件联邦控制器、联邦调度器和联邦组件,计算端包含了中间件计算控制器。整体架构的核心逻辑就是通过管控端统一管控各计算集群的中间件子部分的生命周期,并基于联邦组件的状态汇聚和资源下发能力实现对计算集群中间件节点的状态驱动,最终达到中间件跨多 K8s 集群部署。
通过联邦管控面以及计算集群,我们能够实现中间件集群联邦的高效管理和运营,同时确保服务的高可用性和性能,不仅提高了资源的利用率,还简化了跨集群的运维工作。
在构建云原生架构中的有状态服务联邦管控体系时,我们采取了一系列创新措施以确保服务的高可用性和一致性。例如,我们部署了管控计算分级控制器,它们协同工作来管理中间件集群,实现全局资源的统一视图和调度;管控控制器负责监控和维护集群的全局状态,确保所有集群在任何时刻都保持一致性;计算子控制器根据管控控制器下发的指令,确保资源生命周期的高效管理,并将实时状态反馈至管控层。
通过构建联邦管控架构,我们不仅提高了资源的利用率和运维效率,还确保了服务在面对各种挑战时的弹性和稳定性。这种架构使我们能够在云原生环境中,为有状态服务提供更加可靠和高效的管理。
网易云信的云原生中间件平台通过深度整合云原生技术与中间件服务,构建了一个既先进又高稳定性的技术架构。平台充分吸取了传统基础设施架构的丰富经验,并在此基础上进行了创新和提升,不仅支持中间件的集群联邦,还提供了备份恢复、集群主备、同城双活以及异地多活等高可用能力,以满足不同业务场景的需求。
在多年来的实战中,网易云信的云原生中间件平台已经在金融行业的多个核心业务场景中得到了成功验证。为进一步提升云原生中间件的稳定性和可维护性,网易云信也在不断探索和实践,致力为客户提供更加稳定和高效的服务。
未来,网易云信将继续基于云原生底座,不断深化云原生中间件平台的能力,通过不断的技术创新来适应复杂架构下多样化的业务场景。此外,平台将融合 AI 技术到云原生中间件的运维之中,利用 AI 来增强在故障检测、根因分析和故障恢复方面的能力,来更好地适应不同业务场景的需求,提供更智能化和自动化的运维服务,助力客户实现降本增效。
干货资料 免费领取
【扫描二维码】即可免费领取!
热门跟贴