Serverless 架构下的事件驱动架构

阅读时长 6 分钟读完

随着云计算技术的快速发展,Serverless 架构在最近几年间成为了很热门的话题。Serverless 架构的优点包括快速上线、高可扩展性、低成本等方面,它为开发者提供了全新的开发方式以及对传统架构的巨大改变。Serverless 架构在有集成功能的同时也可以添加更多的移动性以及更快的响应能力。而事件驱动的 Serverless 架构则是 Serverless 架构的一种应用,它可以帮助开发者快速应对多种事件,包括跨系统的 API 调用、数据库变更、端点变更、消息队列、并完成各种语言的任务。

什么是事件驱动 Serverless 架构

事件驱动 Serverless 架构是采用事件驱动的编程模式集成的 Serverless 框架。其中事件是指一系列状况发生,比如用户提交一个订单,或者文件发生变更。当事件触发时,Serverless 平台进行相应的处理及返回反馈(可自动生成电子邮件,发送 discord 消息,甚至触发更多的微服务)。

Serverless 架构中,使用的是 BaaS(Backend as a Service)提供商的服务,开发者将不再关注服务器架构及运维细节,而是更好地聚焦应用开发。相对于传统的云计算架构,Serverless 架构摆脱了服务器基础架构的束缚,节约了运维部署资源,让开发者更方便地快速部署应用,实现 Serverless 操作。

事件驱动 Serverless 架构的优点

1. 提供更快的应用场景响应能力

事件驱动的Serverless架构可以立即回应变更,可以通过云科技更快地响应事件。使用异步事件驱动的办法是一种解决问题的方法,在微服务中更好的协调,同时也让开发者更方便地分担任务,大幅度地提高了应用的稳定性 。

2. 节省成本

随着事件驱动 Serverless框架下,需要使用的资源大量减少,这对于在云端工作的应用程序而言是非常有利的。在使用 Serverless 架构下,开发者可以大大减少前期开发与部署所需要的时间以及成本。

3. 更高的可扩展性

事件驱动 Serverless 架构是云应用的一个严密结构,它能够将应用程序划分为一系列的微服务,并通过 Serverless 方式进行进行调用。在进行应用程序构建的过程中,开发者不需要考虑代码层面的问题,甚至不需要去考虑预测未来可能遇到的问题,而是将应用程序看做一系列的无状态的微服务。最后,所有的微服务会组合成一个完整的应用程序,非常方便我们进行扩展。

使用 Serverless 框架构建事件驱动程序

接下来,我们将采用 Serverless 框架来快速构建出一个事件驱动程序。本次实战案例为编写一个「商品销售」的消息通知系统,该系统将根据订单提交情况,通过邮件或短信的方式通知客户信息。

1.前提条件

在构建事件驱动 Serverless 应用之前,我们需要有以下基础条件:

  • Node.js 开发环境

  • Serverless Framework 以及相关组件

  • AWS 账号登录信息获取

2. 配置 serverless.yml

我们使用的是 Serverless Framework 上的 AWS Lambda 服务。serverless.yml 文件是 Serverless Framework 的配置文件,建立一个事件驱动程序前,我们首先需要设置该配置文件。

-- -------------------- ---- -------
-------- -------------------------

---------
  ----- ---
  -------- ----------
  ----------- --- - -- ------ ---------
  ------ --- - -- ---------- ------
  ------- -------------- - ------- --- ----

----------
  -------------------
    -------- -------------------- - -----------
    -------
      - --------- ------ ------- - ----

--------
  - ----------------------------

3. 配置 Lambda 函数处理程序

我们初次构建了一个 Serverless 存储桶以及对应的事件触发机制。那么,我们下一步要做的,是建立一个相对应的 Lambda 函数来对该存储桶对应的事件进行现场处理。如下所示:

-- -------------------- ---- -------
----- ------ - -------------------------------------------------
----- --- - -------------------
----- ---------- - ----------------------

---------------------- - ----- ------- -- -
  ----- ---------- - ------------------------------------------------

  ----- ---------------- - ------------------------------
  ----- ------- - -------- ----- ------------ -------
  ----- ------- - -------- ----- ------ -- ----------------

  ----- ----------- - ----------------------------
    ---- --- ---------
      ----------- -------------
      ------- -----------------------
    ---
  ---

  ----- ----------- - -
    ----- -------------------------------
    --- -----------------
    -------- --------
    ----- --------
  --

  ----- --------------------------------- ----- ----- -- -
    -- ----- -
      ------------------ -------- - - -----
    - ---- -
      ------------------ --------
    -
  ---
--

这个 Lambda 函数处理程序很简单。当事件触发后,我们对返回的内容进行处理,根据具体的应用条件,执行相对应的操作。

4. 进行部署、管理、调度

当 Serverless Framework 界面上已经准备好了需要使用的相关组件后,便可以成功地执行 Serverless 应用的部署、管理、调度等其他工作。此时,我们可以非常方便地管理相关应用。

总结

在这篇文章中,我们学习了什么是事件驱动 Serverless 架构,并使用 AWS Serverless 架构设计一个简单的服务。在 Serverless 的时代里,开发者们将不再需要基础架构、部署和管理工作等现状,可以专注于业务逻辑的实现,不必过于担心部署、管理架构问题。本案例简明明了事件驱动 Serverless 架构极致稳定的运行,有效地提升了开发者对于应用架构的开发效率。

通过使用 Serverless Framework 可以非常方便地快速构建出相关应用。在这里,我们分享了基本的内容以及应用操作流程,并希望开发者们可以在实际过程中,根据自己的需求构建出相对应、符合自己业务的 Serverless 应用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e01cc8f6b2d6eab3b370e2

纠错
反馈