云原生中间件技术白皮书
前言
随着云原生技术在各个行业快速落地基于云计算基础设施的应用开发架构已经发生了巨大的变革。中间件作为云平台业务上云的关键组件起到重要支撑作用。然而 目前云原生时代中间件范畴尚未明确定义 云原生中间件的生态现状并不清晰普及推广云原生中间件对加速云原生技术落地有着积极作用。
本白皮书首先阐述了云原生和中间件的基本概念 回顾了中间件从电子信息时代到云原生时代的发展历程 总结了当前云原生时代应用的开发特点 同时开创性地提出了设计云原生中间件的十个关键要素最后梳理了目前典型的云原生中间件服务 并预测了未来云原生中间件的发展趋势。
目 录
一、 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
一 云原生概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
二 中间件定义. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
二、 中间件发展历程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
一 中间件的起源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
二 互联网时代的中间件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
三 云计算为中间件提供了平台. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
四 开源推动中间件技术发展. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
亓 云原生赋予中间件新的内涵. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
三、 云原生应用开发特点. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
一 容器与编排. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
二 微服务化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
三 计算存储分离. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
四 服务网关. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
亓 分布式事务模式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
六 业务服务无状态化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
四、 云原生中间件十要素. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
一 容器原生. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
二 服务状态. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
三 组件模块化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
四 事件驱动. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
亓 可观测. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
六 韧性设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
七 弹性伸缩. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
八 动态部署. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
九 统一响应式与声明式的API.........................................................................22
十 平台化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
五、 云原生中间件典型服务. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
一 分布式消息队列. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
二 分布式事务系统. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
三 分布式配置服务. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
四 API网关. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
亓 分布式缓存. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
六 链路跟踪服务. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
六、 云原生中间件发展趋势. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
一 技术架构上趋于统一. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
二 深度融合云原生热点技术. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
三 云原生中间件领域标准化进程持续深入. . . . . . . . . . . . . . . . . . . . . . . .32
一、 概述
一 云原生概述
云原生是一系列云计算技术体系和企业管理方法的集合既包含了实现应用云原生化的方法论也包含了落地实践的关键技术。云原生应用利用容器、服务网格、微服务、不可变基础设施和声明式API等代表性技术来构建容错性好、易于管理和便于观察的松耦合系统。云原生通过利用可靠的自动化手段对系统做出频繁、可预测的重大变更让应用随时处于待发布状态。云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中构建和运行可弹性扩展的应用 借助平台的全面自动化能力跨多云构建微服务持续交付部署业务生产系统。
1
经过几年的发展云原生的理念不断丰富和落地。中国信息通信研究院经过多方面研究 总结云原生的概念为“适合云的应用”和“好用的云架构” 2。基于云原生的技术和管理方法 用户能够更好地把业务生于云或迁移到云平台从而享受云的高效和持续的服务能力。
二 中间件定义
中间件是指网络环境下处于操作系统、数据库等系统软件和应用软件之间的一种起连接作用的分布式软件。中间件主要解决异构网络环境下分布式应用软件的互连与互操作问题。提供标准接口、协议
1引自CNCF对云原生的定义
2引自 《云原生技术实践白皮书2019年 》
屏蔽实现细节提高应用系统易移植性为其主要技术优势。它使用户能使用一种脚本语言来选择和连接已有的服务从而生成简单程序的软件开发工具。中间件涉及软件的各个领域是供公用应用程序编程接口的软件。中间件在操作系统、网络和数据库之上应用软件的下层 总的作用是为处于自己上层的应用软件提供运行与开发的环境 帮助用户灵活、高效地开发和集成复杂的应用软件。中间件是一种独立的系统软件或服务程序分布式应用软件借助这种软件在不同的技术之间共享资源。
二、 中间件发展历程
一 中间件的起源
1946年世界上第一台电子计算机ENIAC的诞生标志着人类进入了电子信息时代。上世纪六十年代最早的程序语言F o rtran出现标志着现代意义上的软件诞生。为了更好地支撑应用软件系统 中间件随之登上历史舞台。作为连接应用和底层资源的桥梁 中间件能够屏蔽基础硬件、操作系统和通讯协议的异构性 为应用开发者提供统一标准的交互界面。
随着软件的不断发展及其规模的不断增大分布式系统应运而生。随之出现的还有异构分布网络环境下软件系统的通信、互操作、协同、事务、安全等共性难题。不断出现的新业务需求驱动应用架构和信息系统持续演进进而要求中间件不断地凝练共性问题提供标准化的
支撑机制。 B ELL实验室于1990年开发的T uxedo系统标准化了分布式交易事务的控制方式。 IBM在1994年发布了消息队列服务MQ标准化了不同应用程序间异步通信的方式解决了分布式系统中通讯服务问题。
中间件作为解决共性问题的标准化工具大大降低了系统的复杂度和协作成本逐渐成为网络应用的基础设施。
二 互联网时代的中间件
到了互联网时代 用户数量爆发增长导致了互联网业务的快速增长越来越多的应用程序开始部署在分布式的网络环境里运行。传统中间件以类库和框架的形式来加强应用能力标准化程度和交互性能亟待提升。由于中间件构件模型类库和架构没有统一的标准不同节点下的中间件自身在构件描述、发布、调用、互操作协议及数据传输等方面呈现出巨大的差异性。另外以类库和框架的形式提供能力必然使得中间件与业务应用有极强的耦合度存在可移植性差、适应性低等问题进而使得应用在不同分布式节点上的交互变得困难重重。
另一方面爆发增长的用户带的巨大流量和数据也冲击互联网应用耦合度高的传统中间件难以适配动态多变的流量的互联网环境。在设计之初仅考虑支撑当前应用的能力也使得中间件在技术上具有较大的局限性在复杂的分布式互联场景下无法很好的支撑上层应用系统。与此同时 多变的互联网流量对基础资源的灵活配置的需求也史无前例的增大快速增长的业务与僵化的IT基础设施之间的矛盾
日益严重。中间件需要在存在多种硬件系统的分布式异构环境中去支撑各种各样的系统软件以及风格各异的网络协议和网络体系结构。这些痛点驱动着软件与中间件的技术革新 如何使用中间件技术更好的复用业务提升IT基础设施的业务敏捷性是互联网时代中间件服务应该考虑的关键问题。
三 云计算为中间件提供了平台
云计算时代的到来为企业灵活多变的业务和僵化的IT基础设施之间的尖锐矛盾提供了完美的解决方案。弹性的云计算资源根据业务流量进行扩缩提高资源利用率平台化的资源托管解决了传统集群的运维繁琐问题云计算重构了企业IT基础设施在业务系统逐渐迁移到云上的过程中 中间件起到了至关重要的作用。
业务上云的过程往往不是一蹴而就企业在云计算构建及落地过程中 出于对新兴技术未知的顾虑以及对核心数据资产的保护往往是共有云、私有云的混合部署这样对企业业务不会造成太大的影响 同时提高了资源调度的灵活性。在原有IT资源、共有云、私有云等不同的平台之间以及部署其上的不同应用之间进行数据传递和消息互通至关重要云计算时代的中间件就扮演了实现不同平台上的应用互联互通标准化的重要角色。同时云计算也为中间件技术的发展提供了更广阔的空间和舞台 中间件逐渐成为云基础构建中的一部分企业用户能够使用云中间件将业务流程逐步迁移到云集成服务上最终实现灵活扩展和降本增效。
四 开源推动中间件技术发展
作为软件代码标准化的方式开源在云计算兴起过程中发挥了至关重要的作用开源打破了技术垄断 为企业提供了一个共同制订事实标准的平等机会。蓬勃发展的云计算与快速前行的开源发挥了相互促进的作用。 目前在与云计算相关的虚拟化、容器、分布式存储、 自动化运维等领域开源已经成为技术主流深刻影响着云计算的发展方向。
在开源技术开放协作的理念下传统中间件之间相互孤立的鸿沟将不复存在。随着开源的价值逐渐获得国内外公司的认同越来越多中间件领域的优质项目涌现出来如阿里开源的分布式服务框架Dubbo、分布式消息队列Roc ketMQ腾讯开源的微服务框架T ARS等 已经被国内外众多企业用于生产。
亓 云原生赋予中间件新的内涵
在容器及编排技术、开源、微服务等云原生理念的带动下将应用部署到云端已经是不可逆转的趋势。在现有业务代码不变的情况下 想要让分布式系统无缝入云 如何设计云原生中间件以支撑应用的云上变迁成为关键问题。云原生时代的应用更加轻量化在对外提供功能保持一致的前提下将与核心业务无关的能力剥离出去。这些能力将以中间件的形式下沉到基础设施中成为云的一部分从而加强和改善应用的运行环境实现应用轻量化。
哪里购买香港云服务器便宜?众所周知,国内购买云服务器大多数用户会选择阿里云或腾讯云,但是阿里云香港云服务器不仅平时没有优惠,就连双十一、618、开年采购节这些活动也很少给出优惠。那么,腾讯云虽然海外云有优惠活动,但仅限新用户,购买过腾讯云服务器的用户就不会有优惠了。那么,我们如果想买香港云服务器,怎么样购买香港云服务器便宜和优惠呢?下面,云服务器网(yuntue.com)小编就介绍一下!我们都知道...
数脉科技(shuhost)8月促销:香港独立服务器,自营BGP、CN2+BGP、阿里云线路,新客立减400港币/月,老用户按照优惠码减免!香港服务器带宽可选10Mbps、30Mbps、50Mbps、100Mbps带宽,支持中文本Windows、Linux等系统。数脉香港特价阿里云10MbpsCN2,e3-1230v2,16G内存,1T HDD 或 240G SSD,10Mbps带宽,IPv41个,...
【双十二】兆赫云:全场vps季付六折优惠,低至50元/季,1H/1G/30M/20G数据盘/500G流量/洛杉矶联通9929商家简介:兆赫云是一家国人商家,成立2020年,主要业务是美西洛杉矶联通9929线路VPS,提供虚拟主机、VPS和独立服务器。VPS采用KVM虚拟架构,线路优质,延迟低,稳定性强。是不是觉得黑五折扣力度不够大?还在犹豫徘徊中?这次为了提前庆祝双十二,特价推出全场季付六折优惠。...