Serverless与微服务(中)

本文涉及的产品
简介: 微服务架构的主要目标是提供高度响应的 API,这也是服务间主要的交互机制。Serverless 架构的主要目标是对发生的事件做出响应,API 是生成事件的唯一机制。在 AWS 生态系统(最为成熟的 Serverless 生态系统)中,API 并不是主要的接口,事件变得更为重要。

Serverless、事件和触发器

Serverless 系统本质上就是事件驱动的系统,采用了事件驱动的架构。这种架构改变了 Serverless 系统的开发和管理方式。

微服务架构的主要目标是提供高度响应的 API,这也是服务间主要的交互机制。

Serverless 架构的主要目标是对发生的事件做出响应,API 是生成事件的唯一机制。

在 AWS 生态系统(最为成熟的 Serverless 生态系统)中,API 并不是主要的接口,事件变得更为重要。

这也就是为什么会有将近 50 个事件来触发一个 Lambda 函数。

如果可以不通过 API 网关来触发 Lambda 函数,就会更快、更高效,特别是在从其他 AWS 接口触发事件的时候。

其中最重要的是函数的单向性。大多数微服务采用的是请求 / 响应式的架构,这也是大多数 Web 应用程序的运行模式。Serverless 应用程序里的函数通常是单向的,并使用队列充当回路断路器,所以请求 / 响应式的架构就变得不那么常见了。

数据层的管理方式也不太一样。最好是可以使用多个函数,而不是使用一个带有切换开关的代理函数。

相比微服务架构,多函数还有另外一个好处。例如,如果一个函数出错,因为它是无状态的(或至少应该是),所以只会影响该函数本身,不会影响到应用程序的其余部分。

如果只是简单地从微服务转向 Serverless 架构,虽然确实会给你带来一些好处,但也会错失很大一部分 Serverless 应用程序的真正价值。

从很多方面来看,微服务与 Serverless 应用程序是相背离的,虽然我们可以基于 Serverless 后端来构建微服务,但在微服务和 Serverless 之间并不存在直接的路径。

从微服务到 Serverless

那么,从微服务到 Serverless 需要经过怎样的路径?微服务已经相当普及了,那么是否存在一条简单的路径,可以直接从一方过渡到另一方?

我想,这也正是 Serverless 世界正在解决的问题。最近,Twitter 上有很多与这个话题相关的推文。这里引用其中的一条,看看社区都是怎么讨论这个话题的。

image.png

现在有很多工具声称它们会让 Serverless 应用程序的构建变得更容易,但实际上最终都是要去到它们的平台上。我不认为它们会带来额外的价值或者会让人们更好地理解什么是 Serverless 架构。

我们非常清楚地意识到,我们正在讨论的是 Serverless 架构的未来,但并没有说这会让从旧架构风格过渡到 Serverless 会变得更容易,或者断定 Serverless 是不是一个正确的选择(在某些情况下可能不是)。

这是有原因的。人的思维是不容易改变的。构建一个 Lambda 函数很容易,但构建一个真正的 Serverless 应用程序并不容易,它需要在思维上做出一系列改变,而这样做相对没有那么容易。

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
8月前
|
存储 人工智能 Serverless
微服务和 Serverless 架构-函数计算 FC 简介及应用场景
微服务和 Serverless 架构-函数计算 FC 简介及应用场景
753 0
微服务和 Serverless 架构-函数计算 FC 简介及应用场景
|
11天前
|
Serverless 云计算 Docker
SAE是全场景Serverless计算平台,深度融合微服务
【5月更文挑战第2天】SAE是全场景Serverless计算平台,深度融合微服务,提供SAE Job任务场景解决方案,具备便捷、节省、稳定、透明和省心的特点。而ECI是Serverless容器运行服务,结合云计算理念,仅需Docker镜像即可运行,支持细粒度资源计费,旨在降低成本和提升效率。SAE侧重应用管理和运营,ECI专注于优化容器资源使用。
18 0
|
5月前
|
运维 Serverless API
四大软件架构:掌握单体、分布式、微服务、Serverless 的精髓
如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面。
|
7月前
|
运维 Java Serverless
深度解析四大主流软件架构模型:单体架构、分布式应用、微服务与Serverless的优缺点及场景应用
深度解析四大主流软件架构模型:单体架构、分布式应用、微服务与Serverless的优缺点及场景应用
482 0
|
5月前
|
运维 Cloud Native Serverless
MSE Serverless 正式商用,构建低成本高弹性的微服务架构
MSE Serverless 正式商用,构建低成本高弹性的微服务架构
70484 77
|
5月前
|
运维 Serverless 微服务
Serverless 微服务
Serverless 微服务
|
6月前
|
Serverless 调度 微服务
洞悉微服务:从 PaaS 到 Serverless 的演进
洞悉微服务:从 PaaS 到 Serverless 的演进
|
8月前
|
Cloud Native Serverless 调度
微服务和 Serverless 架构-云原生架构核心技术总结
微服务和 Serverless 架构-云原生架构核心技术总结
489 0
微服务和 Serverless 架构-云原生架构核心技术总结
|
8月前
|
弹性计算 运维 Serverless
微服务和 Serverless 架构-Serverless 与微服务结合的 SAE 介绍
微服务和 Serverless 架构-Serverless 与微服务结合的 SAE 介绍
580 0
微服务和 Serverless 架构-Serverless 与微服务结合的 SAE 介绍
|
8月前
|
监控 Serverless 开发者
微服务和 Serverless 架构-FC 基本操作讲解
微服务和 Serverless 架构-FC 基本操作讲解
503 0
微服务和 Serverless 架构-FC 基本操作讲解

热门文章

最新文章

相关产品

  • 函数计算