亚马逊云科技 Build On - 基于Serverless快速喝一杯咖啡
Serverless,一般翻译为`无服务器`,是一种云原生开发模型,可使开发人员专注构建和运行应用,无服务器方案中仍然有服务器,但它们已从应用开发中抽离了出来,云提供商负责置备、维护和扩展服务器基础架构等例行工作,简而言之,运维变得简单了。而Amazon Serverless同样也是对服务器架构进行了抽离,派生出各种各样的服务,不需要过多的了解内部实现即可方便调用。
文章目录
前言
抱着学习的心态,参加了亚马逊云科技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服务的魅力,通过一个不到两小时的实验就部署好了一个完整的应用,这对于企业来说,降低了运维成本,各种服务器设置起来更加得心应手了,但也失去了一部分可操作性。整体来说,可以达到降本增效的作用,但是还是要看具体场景。
实验感受相较于前两季活动,这次应该是最愉快的,最后得到一个完整的应用比较有成就感👍🏻。
更多推荐
所有评论(0)