云化中间件时代已经到来

| February 15, 2018

中间件,是一个不太被人知晓的技术词汇,即使是软件开发者,很多人也并不完全能说出中间件的准确定义。

通俗的说,中间件就是软件领域的中间层,用于屏蔽如操作系统,数据库,网络等基础设施层的异构性和复杂性,并帮助开发者快捷构建应用。另外在一些特定技术领域,也有中间件的技术定义,如:前端中间件,语音识别中间件等等。

Java语言是中间件产品主要的编程语言,这时因为Java本身就具备中间件的一些特质,比如:支持多种操作系统,完备的动态加载特性,高效率的内存管理和线程调度机制等等。在之前主机操作系统Unix向Linux进化时期,中间件作为关键软件技术,和操作系统,数据库一起被称为软件的三大核心技术。

近年来随着软件技术的演进和云计算高速发展,软件的基础设施和开发方式产生了很大的变化和更新。

  • 互联网和企业新购操作系统已基本都是Linux;
  • 软件服务面向海量互联网用户,企业需要数以万计的服务器来部署应用;
  • 云计算已经被广泛采用,混合云成为大型“传统”企业首选的;基于浏览器和移动app的应用,早已在绝大多数应用领域替代了胖客户端;
  • 企业应用开发还会由Java语言占据主导,但其他编程语言会在擅长的方向成为云端应用的首选;
  • 企业级的中间件重要的特性,如“安全,事务,容错,集群”等,都依然会保持重要性,只是表现形式会变化,比如强事务的需求可限定在最重要的业务范畴,其余部分可容忍最终一致性;
  • 消息层成为信息流转总线,各个应用高效地获取和提交数据信息。

也就是说,原有的中间件预先假设的企业运行环境发生了很大的变化。出现的新型的编程语言和新的技术,使应用系统在各个操作系统运行环境间很容易进行迁移。而企业中信息系统面临的最大改变,是企业应用的原来主要是内部用户,转而直接面对海量的互联网用户,信息访问量和应用复杂度成几何级的增长。而这个趋势在国内更加明显,因为国内的用户已经充分接受了互联网信息获取的方便快捷,移动终端,支付手段,社交网络等非常普及。

可以预见,会有更多的企业把其掌握的信息,通过互联网直接以服务的方式提供给用户使用。企业应用的架构会变的更复杂,也对安全性,集群能力有更高的要求。

大多数企业(包含部分互联网企业)之前的通用的软件系统架构是在硬件基础上安装操作系统,再在其之上开发企业应用,访问数据库。为了提升开发效率和屏蔽异构系统的复杂性,中间件处于在操作系统,数据库等基础设施层之上。即使后来为了提高系统管理能力和更充分的发挥硬件性能,引入了虚拟化能力,但操作系统+应用这样的部署结构还是主流模式。

但如今云计算已经得到充分的应用,企业不但使用云计算最核心的计算,存储和网络能力,也直接使用公有云提供的各种服务,如数据库服务,函数式开发部署,消息服务,安全认证等。用户无需安装配置服务,而可以直接使用,这就是PAAS云计算能力。

可以看出,企业应用在云计算环境中,可以直接使用各种服务,而不必关心底层使用的是何种操作系统或者是用哪种语言实现的,这种能力也是原来中间件软件所提供的。那么,中间件是否会不再是应用开发核心软件了呢?正如企业级中间件市场不断萎缩一样?

我们的观点是:中间件软件面向的市场,正在从主要面对企业级,逐步转化为面对云计算环境的场景。也就是说,中间件的产品形态,功能特性,支持的语言能力,都会发生很大的变化。

而中间件软件是会继续存在的,主要原因有两点:

  1. 尽管云计算得到广泛的接纳使用,但企业用户最熟悉的还是通用的操作系统环境,无论是公有云上申请的主机实例,还是企业内部采购的实体机器,IT管理员还是会在很长时间使用传统方式安装和运维管理。新型中间件不但提供原有企业级中间件的功能,更会提供更多的功能,来起到统一传统操作系统级中间件和云计算开发环境的作用。
  2. 企业无论是使用混合云还是只使用私有云,都希望面对一致的开发环境,而目前的主流公有云,几乎所有的服务都使用私有的API来调用Rest服务,而且服务的元数据定义也并不一致。这样企业在一个公有云上开发的应用,是没有办法直接迁移到其他公有云上进行部署的。所以企业会需要一个中间件层,来帮助应用可以在不同的公有云快速迁移,来避免绑定在某一家公有云之上。(这个需求是不是非常熟悉,和过去避免绑定在一家软件基础供应商是一模一样的)

新型的中间件产品,我们称之为“云化中间件”,也就是适应云计算环境的中间件软件产品。是在现有企业级中间件基础之上,将各个中间件服务能力通过互联网对外暴露出,并进行整体集成,适应当前主流公有云的服务能力。云化中间件既可以在通用操作系统上运行,又可以部署在主流公有云之上。企业基于云化中间件进行应用开发,就可以做到快速的迁移,同时获得中间件的其他功能优势,如提高开发效率,更容易进行性能的提升。

我们目前规划的云化中间件产品架构图

云化中间件产品架构图

架构体系分为13大部分,有云计算基础能力,容器服务和注册,应用部署容器,应用开发技术(JavaEE,微服务,批处理,流式处理,异步框架,函数式),中间件核心服务,企业核心服务,微服务重要相关功能,集群和可扩展关键技术,安全和身份认证,移动应用相关服务,和企业信息和资源相关服务

新的一个中国年即将来临,我们会全面转向新的云化中间件方向,包括产品,集成,软件开发,技术咨询和培训,欢迎看好这个方向的各方朋友和我们合作。预祝各位新春快乐!