前言

抱着学习的心态,参加了亚马逊云科技aws与CSDN共同组织的BuildOn第三季动手实验活动,本次活动主题是基于Amazon Serverless 构建零售创新应用,通过调用aws的各项服务快速构建(正常不到2小时)出一个包含商家端,客户端,大屏显示端的咖啡零售网页应用,在这里记录一下实验过程及感悟,想要了解整体实验可以看一下活动直播回放

一、Amazon Serverless是什么?

首先要说一下Serverless,一般翻译为无服务器,是一种云原生开发模型,可使开发人员专注构建和运行应用,无服务器方案中仍然有服务器,但它们已从应用开发中抽离了出来,云提供商负责置备、维护和扩展服务器基础架构等例行工作,简而言之,运维变得简单了。而Amazon Serverless同样也是对服务器架构进行了抽离,派生出各种各样的服务,不需要过多的了解内部实现即可方便调用。

二、零售应用介绍☕️

我们此次构建的大部分是后端逻辑,前端已经写好,我们只需要在最后设置一下部署就可以。

1. 工作流程

零售创新应用流程如下:
1、客户下单 - 头顶显示器显示一个二维码,客户扫描此二维码以使用他们的移动设备下单。
2、生成订单 - 客户扫码在客户端应用下单后。后端验证订单,创建订单,将其提供给商家。
3、商家接单并处理 - 商家看到订单出现在他们的商家端应用上,他们可以更改订单的状态。
4、客户完成订单 - 客户在其客户端应用上可看到商家更新的订单状态,头顶上的监视器会同步显示即将到来和已完成的饮料的状态,如果订单号及状态去领咖啡。

2. 整体架构

后端应用程序架构使用Amazon Step Functions、Amazon EventBridge、Amazon Lambda、Amazon API Gateway、Amazon S3、Amazon DynamoDB和Amazon Cognito。
前端应用在浏览器中执行,向使用 API Gateway 构建的后端 API 发送和接收数据。DynamoDB 提供 API 使用的持久性数据存储层。使用 Amazon IoT Core 和 Lambda 将事件路由回前端应用程序。
应用架构

三、实验记录

1. 设置实验环境

第一步设置实验环境,这一部分很简单,自动创建yyds,点击活动给的链接进入CloudFormation,设置几下就创建好了,等几分钟就好。
自动创建环境

2. 构建 Step Functions 工作流程

这是耗时最长也是最核心的一部分,但幸好实验手册里里写的很详细,这里夸一下实验手册,为了照顾小白,写的面面俱到,丝丝入扣😄,堪称保姆级手册。
总体的构建流程基本就是围绕商家端,客户端,大屏显示端的逻辑交互与数据处理,整个流程大部分都在Step Functions中的可视化工作台中操作,我几乎没有写一行代码。
可视化

在工作台中,我们就可以完成数据库,后端事件,api输入输出,报错监控等服务之间的配合及设置。可以看出,在这里我们不需要去关注内部如何实现,只需要关注具体的业务实现就可以了,实验中使用了大量的Events事件对各模块进行解构,来达到更好的逻辑分离及可扩展性。在事件中,可以携带具体的订单及各种配置信息。
事件信息

应用生成的数据也完全不需要担心,数据由Amazon DynamoDB服务管理,实验中已经把对应的表结构生成,我们只需要填充数据进行验证即可,
特别提一句,官方提供的实验手册在每个小步骤后面,都会提供这一步的验证,避免实验中间出错。

2. 使用事件在不同的微服务之间进行通信

这一步我们主要会使用Amazon EventBridge服务控制来自亚马逊云科技服务、自定义应用程序、软件即服务应用程序和微服务的事件。这里我们会创建几个EventBridge规则,来实现诸如监控服务开启、创建新订单等流程的事件联动。
四个事件

通过某个规则的执行,可以完成Step Functions中构建的对应的工作流程,例如创建新订单
新订单

对应的工作流程会同步进行,更新已经进行的工作进度
工作流程

3. 配置前端生成应用

如果前面验证都正确,这一步基本就没什么悬念了,前端已经写好了,我们只需要配置一下部署到环境中就好,
刚开始说过,应用包含商家端,客户端,大屏显示端。所以这里我们需要分别配置,其中商家端,大屏显示端在pc端设置,客户端在移动设备扫码设置,配置好三端效果如下,可以愉快的买咖啡了☕️。

大屏显示端(左) 商家端(右)

- 大屏显示端(左) 商家端(右) -

客户端

- 客户端 -

总结

完成此次实验,使我充分感受到了Serverless服务的魅力,通过一个不到两小时的实验就部署好了一个完整的应用,这对于企业来说,降低了运维成本,各种服务器设置起来更加得心应手了,但也失去了一部分可操作性。整体来说,可以达到降本增效的作用,但是还是要看具体场景。
实验感受相较于前两季活动,这次应该是最愉快的,最后得到一个完整的应用比较有成就感👍🏻。

Logo

亚马逊云科技开发者 Build On 是由亚马逊团队策划、开发者社区联合打造的动手实操系列活动。

更多推荐