趋势一:中间件从传统集中式到分布式的转型已经成为共识
在目前的传统企业中,集中式架构被广泛使用,其中以 IOE 架构为其中显著的代表。在传统集中式架构中,通常会由计算能力强大,单点可靠性高的小型机,配套稳定而昂贵的存储,结合集中式的数据库,形成集中式架构的三驾马车。而大量业务逻辑的执行,则要依赖如重量级的 J2EE 容器(如 Websphere)或交易中间件 CISC 等,作为业务应用的 Runtime 支撑着业务的运行。 但是随着业务模式的变化和企业数字化转型的需求,传统集中式架构的不足之处逐渐浮现,主要体现在以下几个方面:
单体逻辑复杂——所有模块都在一个程序包里,一个程序包可能达到上 GB 的体积,导致编译慢,启动慢,代码冲突,发布困难。
可扩展性差——整体架构存在明显的瓶颈无法扩展,导致无法满足业务量日益增长的需求。
成本高昂——使用专用的高端设备,成本高昂
随着技术的发展,分布式架构的出现很好解决了以上痛点,而中间件迈向分布式架构的方向已经被广泛认同。国内的互联网公司普遍已经使用了分布式架构技术,而且有大量成功案例;同时在传统行业中,特别是金融行业,转型分布式已经成为共识——以工商银行为例,早在 2014 年就启动 IT 架构转型,从传统集中式为主的架构体系向集中式和分布式架构有机融合架构体系进行转型。
趋势二:云原生理念的出现促进了产品的创新
云原生是一种专门针对云上应用而设计的方法,用于构建和部署应用,以充分发挥云计算的优势。云原生应用的特点是可以实现快速和频繁的构建、发布、部署,结合云计算的特点实现与底层硬件和操作系统的解辑,方便地满足在扩展性、可用性、可移植性等方面的要求,并提供更好的经济性。同时在人员结构上,通过拆解为多个小型功能团队使组织更敏捷,人员、流程和工具更好的结合,开发、测试、运维之间能进行更密切协作。
云原生概念于 2015 年被提出来,到了 2018 年 6 月,由 Google 发起的 CNCF 正式对外公布了云原生定义的 1.0 版本: “云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。”
我们可以看到,云原生为整个应用在开发、测试、运维的全生命周期提供了全链路的价值,因此引发中间件在这个驱动力下进行了很多创新,如容器化、微服务化、服务网格、无服务器化等,这些创新都能帮助构建容错性好,易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。
趋势三:开源中间件被认可,但生产压力巨大
目前很多的开源中间件,如 Dubbo 等,已经被广泛应用,但开源产品的使用方大多是互联网公司,在面向企业级和金融级的需求进行落地生产时,开源产品往往有点力不从心,主要体现在以下几个方面:
没有 SLA 承诺,无兜底措施。
缺乏专业的服务力量。
难以满足企业级所需的高可用/容灾的基本要求。
产品化程度较低,缺乏相应的企业级管控能力。
传统企业在开源的分布式架构技术上人才储备较少。
因此,目前不少的传统企业都会尝试开源与商业化结合的方案,在保持自主可控的基础上,进行分布式架构的落地探索。
趋势四:中国力量与全球玩家同场竞技
由于我们有极其庞大的人口基数和世界领先的互联网产业,因此我国的互联网公司从实践中将应对海量用户突发流量的经验以及各种的应用场景,沉淀成了产品,并且历经多年的打磨,在国际上已经初具影响力。
早在 2012 年,阿里巴巴就开源了 Dubbo,现在在互联网已经成为广为流行的微服务框架,并贡献给了 Apache 基金。
蚂蚁集团开源的 SOFAStack 多个项目已经加入了 CNCF 云原生全景图中,如采用 GoLang 开发的 Service Mesh 数据平面代理项目“Mosn”,引起了广泛的关注。
由阿里巴巴和蚂蚁集团联合开源的 Seata,已经成为了 Github 上关注人数和活跃度最高的分布式事务框架。
因此,中国企业在中间件领域的升级转型中,技术领先、生态丰富的国产分布式中间件将是一个非常不错和现实的选择。