中间件自身架构和运行时的云原生化
众所周知中件间基本上都是有状态的应用,在整 个 IT 架构中承担了非常核心的作用,对于 IO、性能、稳定性的要求都非常高,所以一直以来 中间件的容量管理、交付、运维、容灾都是业界的难题,但是随着云原生技术体系的逐渐成熟, 现在的中间件都在云原生化,借助云原生技术,首先解决了自身的弹性和韧性问题,其次基于 以 K8s +容器的运行底座,解决了中间件的运维、交付问题。
开发者使用中间件方式的云原生化
现在的云原生中间件,通常以 BaaS 或 SaaS 的形 态出现,帮助使用者屏蔽了底层的运行环境差异和运维复杂度,使用者通过标准化的 API 就可 以完成对中间件的调用,这种形态的好处在于让中间件逐渐基础设施化,开发者可以更关注业 务的开发,从而提升企业整体的开发和运维效率。
云原生中间件和本地 PaaS 中间件之间是否有本质上的不同?
- 要谈这个问题,我们只需要理解云计算和云原生的本质是什么。现在业界对于云原生的定义基 本上达成了共识,在这里就不展开谈了,结合中间件的特性,云原生中间件和本地 PaaS 中间 件的本质区别主要在于弹性、稳定性、高可用、安全性、使用成本等。
- 弹性:云原生技术体系为中间件带来了良好的扩展机制和弹性架构,再借助云上的海量资源实 现中间件的按需弹性扩缩容的能力,让使用者既不需要提前准备相关资源,也不需再为容量是 否满足业务需求担忧。
- 稳定性:在稳定性方面,需要先分析一下影响中间件稳定性的因素,主要包括硬件、操作系统、 网络、存储、运维等,利用云上完备的 IaaS 和 PaaS 能力,可以很高效地为各领域中间件构 建出高质量的稳定性保障体系,这是本地中间件无法实现的。
- 高可用:在高可用方面,这是云计算和云原生的先天优势了,多机房的异地容灾、多链路网络 保障、完备的可观测体系和诊断能力等,可以说云原生中间件能提供的高可用能力,已经可以 让使用者无需再担心因为中间件导致的业务连续性受影响的问题。
- 安全性:大家都知道去年在 Java 领域发现了一个非常重大的漏洞,但其实这只是其中一个案 例,我们使用的软件、系统,包括中间件,无法避免出现漏洞或 bug,对于云原生中间件来说, 我们对漏洞的修复效率的要求,是最高优先级的,使用者无需承担漏洞带来的潜在数据和系统风险。
- 使用成本:这里的成本是广义的成本,包含资源成本、人力成本、时间成本等,借助云原生中 间件,使用者不再需要关注中间件的发布、升级、运维等一系列高人员投入的事务,也不需要 为资源的空置率支付成本,就拿消息中间件来举个例子,我们经常可以看到,很多企业用户的 消息推送量,在业务高峰和低谷期的消息量可以相差数百甚至上千倍,借助云的弹性能力,客户不需要再为业务低谷期的资源浪费担忧,节约了大量的成本。
2021之后中间件领域有哪些重要的进展?
借助云原生技术底座加速中间件在不同的环境输出:云原生技术生态的覆盖面越来越广了,在 分布式云和无边界计算的大趋势下,中间件也在加速向不同的环境输出,比如不同的 CPU 架 构平台,过去中间件主要运行于 X86 架构上,但是随着 ARM 架构的快速发展,现在大量中间件已经可以支持运行 ARM 架构之上。另外,中间件也开始适用于不同的计算场所,比如边缘计算,尤其在更细分的现场和区域边缘领域。
中间件逐渐服务化、透明化:中间件通过 BaaS 和 SaaS 形态把基础能力下沉,赋能轻量、敏 捷的云原生应用,解决用户使用效率和成本问题,这同时也符合开发者对于云和云原生发展的期望。
开源和商业结合更紧密:云原生技术内核是围绕开源展开的,随着中间件云原生化进程的不断 推进,开源中间件的发展也越来越活跃,这一方面可以加速中间件和云原生生态的结合,另一 方面也看到在这样的趋势下,中间件越来越开放,在各细分领域会逐渐基于开源推出标准,开 源标准的推进会反推云服务更加标准化,最终受益的是广大的中间件开发者和使用者。