云原生中间件
在云原生的时代,传统中间件技术也演化升级为云原生中间件,云原生中间件主要包括网格化的服务架构、事件驱动
技术、Serverless 等技术的广泛应用,其中网格化(Service Mesh)、微服务和 Serverless 前面都讲过了,这
里主要讲云原生技术带来的不同点。
云原生中间件最大的技术特点是中间件技术从业务进程中分离,变成与开发语言无关的普惠技术,只与应用自身架构
和采用的技术标准有关,比如一个 PHP 开发的 REST 应用也会自动具备流量灰度发布能力、可观测能力,即使这
个应用并没有采用任何服务化编程框架。
微服务架构一般包含下列组件:服务注册发现中心、配置中心、服务治理、服务网格、API 管理、运行时监控、链路
跟踪等。随着 Kubernetes 的流行,Kubernetes 提供的基础部署运维和弹性伸缩能力已经可以满足多数中小企业
的微服务运维要求。微服务与 Kubernetes 集成会是一个大趋势。
服务注册发现和配置中心的功能主要致力于解决微服务在分布式场景下的服务发现和分布式配置管理两个核心问题。
随着云原生技术的发展,服务发现领域出现了两个趋势,一个是服务发现标准化(Istio),一个是服务下沉 (CoreDNS);
配置管理领域也有两个趋势,一个是标准化(ConfigMap),一个是安全 (Secret)。
提到事件驱动就必须先讲消息服务,消息服务是云计算 PaaS 领域的基础设施之一,主要用于解决分布式应用的异
步通信、解耦、削峰填谷等场景。消息服务提供一种 BaaS 化的消息使用模式,用户无需预先购买服务器和自行
搭建消息队列,也无需预先评估消息使用容量,只需要在云平台开通即用,按消息使用量收费。例如阿里云 MaaS
(Messaging as a Service)提供的是一站式消息平台,提供业界最主流的开源消息队列托管服务,包括 Kafka、
RabbitMQ、RocketMQ 等;也支持多种主流标准协议规范,包括 AMQP、MQTT、JMS、STOMP 等,以满足
微服务、IoT、EDA、Streaming 等各种细分领域的需求。
事件驱动架构:由于 IoT、云计算技术的快速发展,事件驱动架构在未来将会被越来越多的企业采纳,通过事件
的抽象、异步化,来提供业务解耦、加快业务迭代。在过去事件驱动架构往往是通过消息中间件来实现,事件用
消息来传递。进入云计算时代,云厂商提供更加贴近业务的封装,比如 Azure 提供了事件网格,把所有云资源的
一些运维操作内置事件,用户可以自行编写事件处理程序实现运维自动化;AWS 则把所有云资源的操作事件都用
SNS 的 Topic 来承载,通过消息做事件分发,用户类似实现 WebHook 来处理事件。由于事件是异步触发的,天
然适合 Serverless,所以现在很多云厂商都采用自身的 Serverless 服务来运行事件负载,包括阿里云 Function
Compute、Azure Function、AWS Lambda 都和事件处理集成。今年阿里云也发布了最新产品 EventBridge,
作为事件驱动和无服务器架构的核心承载产品。