在云原生架构下,中间件管理方式和传统方式有较大差别。首先在 K8s 上如何管理中间件集群,其次云原生架构将运维能力下沉,如何高效利用云原生能力并实现中间件跨可用区高可用?在 10 月 18-19 日举办的 QCon 全球软件开发大会上,网易云信资深架构师裴明明为我们带来了精彩的专题演讲“云原生架构下中间件联邦高可用架构实践”,重点介绍了网易云信基于 K8s 的集群联邦能力实现中间件有状态应用跨可用区高可用的最佳实践,分享了网易云信在 K8s 中管理中间件遇到的难题和解决方案,并且会分享最终的落地效果和上云收益。
内容亮点
-
利用云原生技术栈实现中间件集群的自动化管理,提升集群管理运维效率和自愈能力,增加中间件集群的弹性。
-
利用 K8s 的集群联邦能力实现中间件这类有状态应用的跨可用高可用。
以下是演讲实录(经 InfoQ 进行不改变原意的编辑整理)。
本次演讲我与大家探讨的主题是“云原生架构下中间件联邦高可用架构实践”。首先,我会简要介绍中间件在云原生平台上的运维管理方式。接着,我们将深入探讨在云原生环境下实现中间件高可用性的实践方法。特别是联邦高可用性,这是中间件高可用性中的一个特殊场景。整个讨论将分为四个部分。
-
概述云原生中间件的基本概念。
-
探讨云原生中间件的管理策略,以寻求最佳实践。
-
介绍如何在云原生架构中实现中间件的跨可用区高可用性,这是技术领域的一个热点话题。
-
展望未来,探讨云原生中间件的发展方向。
云原生中间件
在传统的架构中,部署中间件可能需要编写大量脚本和应用管理,以确保其健康运行和故障恢复。例如,我们可能需要使用特定的命令或系统服务来重启失败的服务。如果需要更高级的健康检查和状态管理,传统架构下这些工作可能会变得相当复杂。
在云原生架构中,这些任务变得简单许多。通过利用 Kubernetes(K8S)等技术,我们可以更容易地实现服务的自动恢复、健康检测和优雅退出。云原生架构的核心在于将应用层的运维特性与底层基础设施的运维能力分离,并将它们整合到一个中间层,从而封装运维的复杂性,让专业人员来处理。
云原生生态主要包括几个部分:首先是容器技术,如 Kubernetes 和 Docker;其次是微服务领域的技术,如 Istio 和 HELM 等;此外,还有 Karmada 和 Operator Framework,这些技术共同构成了云原生生态的基础,使得我们可以更高效地部署和管理中间件,同时保持系统的高可用性和灵活性。

中间件的发展经历了几个阶段。最初,人们接触中间件时,通常是通过开源社区获取相关的软件包和部署方法,这是实现中间件的最基础方式。虽然这种方法能够实现中间件的基本功能,但其复杂度高,使用起来并不方便。
随后,许多厂商开始提供基于虚拟机的中间件解决方案,这种方式已经能够满足大多数人的需求。用户可以通过图形界面轻松创建中间件集群,例如 Redis 等。这种模式虽然方便,但也存在一些弊端,比如数据安全性无法得到保证,以及对于特定功能的定制需求难以在短时间内得到满足。
现在,随着云原生技术的发展,中间件的实现方式也在发生变化。我们更倾向于在云原生环境中,以私有化的方式交付中间件。这种方式能够充分利用云原生的运维特性,快速实现基础能力的部署,同时保证了资源的低消耗,提高了中间件的灵活性和安全性。
云原生中间件的实现依赖于 Kubernetes 的核心特性。这些特性包括:
-
声明式定义,基础设施即代码,标准统一,易于编排;
-
构建于标准 Kubernetes 之上,利用其灵活调度、故障自愈、弹性伸缩等内置能力简化中间件的运维;
-
自动化管控,资源统一调度,有效提升资源利用率,降低基础设施成本;
-
更适合构建私有化部署的 PaaS 中间件服务。
云原生中间件管理
云原生中间件的管理涉及到将中间件有效地部署到云环境中,并确保其高

最低0.47元/天 解锁文章
300

被折叠的 条评论
为什么被折叠?



