亚马逊云科技 Build On -轻松搭建咖啡点单系统

【前言】

1、什么是Build On?
Build On是亚马逊团队基于亚马逊云服务开发,打造的一系列可快速上手的实操性活动。通过通俗易懂的场景案例、简单快捷的开发路径,参与者可快速理解目标任务涉及的相关知识,同时对亚马逊云服务具备一定的认知。
Build On活动至今已举办至第三期,每期的形式均为理论知识介绍加实践操作,整个实验长度大约需要3~4小时,实操部分有操作手册进行指导,有助教随时进行问题解答。只要有耐心,任何新手均可快速上手。
亚马逊云科技 Build On -轻松搭建咖啡点单系统_第1张图片

2、本次的任务目标是什么?
本次活动的主题为基于Serverless快速搭建零售创新应用。实操案例采用的是快速搭建一个线上咖啡点单系统,包括用户端、商家端和商户取餐显示大屏端。
通过此次实验,参与者可以了解到如何使用亚马逊云科技中的各项服务实现Severless快速搭建零售新应用。

【背景知识】

使用事件驱动的架构(EDA)构建新应用程序

1 耦合

耦合在应用程序中无处不在,在传统架构下,由于耦合性太强,导致即使是小的任务目标的变更实现起来也相当复杂。在事件驱动的架构中,通过各个任务模块的解耦,可以减少任务任务中的耦合性,进而减少应用更新的难度。
耦合的种类:

  • 技术依赖性:Java vs C++

  • 地址依赖性: IP地址、DNS

  • 数据格式依赖性:二进制、XML、JSON、ProtoBuf、Avro

  • 数据类型依赖性:int16、int32、string、UTF-8、null、empty

  • 语义依赖性:名称、中间名、邮编

  • 时序依赖性:同步、异步

  • 交互方式依赖性:消息、RPC、查询风格(GraphQL)

  • 对话依赖性:分页、缓存、重试

2 事件驱动架构方案

事件驱动方案的主要特征有三部分:分别为解耦和分散应用程序组件、连接微服务和协调数据流。
亚马逊云科技 Build On -轻松搭建咖啡点单系统_第2张图片
事件驱动架构存在三要素分别为:

  • 事件的生产者:生产事件
  • 事件的收集者:存储和过滤,路由事件
  • 事件的消费者:处理事件

事件驱动的优势:解耦、异步和削峰。
在传统架构中,当增加新功能时,如为购物系统增加积分功能时,在传统架构中需要考虑积分服务的上下游耦合信息,在开发积分新功能的同时,需要同时变更原有系统。
亚马逊云科技 Build On -轻松搭建咖啡点单系统_第3张图片
在事件驱动型的架构中,为购物系统增加积分功能时,由于信息流的传递由总线机制进行了解耦,只需要专注于积分功能本身的开发,不会对原有系统造成影响。
亚马逊云科技 Build On -轻松搭建咖啡点单系统_第4张图片

3 基于亚马逊云服务实现事件驱动架构方案

亚马逊云服务中含有200+种服务可以生产事件,同时支持自定义事件,通过亚马逊云服务可以快速实现事件驱动架构方案。一种常用的事件驱动架构搭建方案如图。
亚马逊云科技 Build On -轻松搭建咖啡点单系统_第5张图片

【开始实验】

1 实验目标程序功能

  • 吧台上方显示器显示一个QR码,每5分钟更改一次。用户使用手机扫描此QR码进行下单。吧台的产能限制为每5分钟制作10杯饮品,一旦在5分钟内订单超过10杯,则QR码消失,防止商家被订单淹没。
  • 用户在扫描QR码进入的程序下单咖啡,后端进行订单验证,创建订单号后提供给商家。
  • 商家端显示用户的订单,商家可以修改订单的状态,指示订单的制作时间、完成时间或是否需要取消订单。
  • 客户在手机上可以看到商家的状态更新。吧台上方的显示器显示即将到来和已完成的订单状态。

2 实验流程

项目的前端程序已经部署,本次实验需要构建后端并将后端与前端程序进行连接。
前端程序包含显示应用程序、商家应用程序和订购应用程序。后端程序应用架构使用Amazon Step Functions、Amazon EventBridge、Amazon Lambda、Amazon API Gateway、Amazon S3、Amazon DynamoDB和Amazon Cognito进行搭建。
完成架构如下图:
亚马逊云科技 Build On -轻松搭建咖啡点单系统_第6张图片
在实验过程中,通过可视化模块进行流程搭建,并且每一步执行均可以从下图的流程图中查看执行进程。
亚马逊云科技 Build On -轻松搭建咖啡点单系统_第7张图片

3 实验结果

商家端:
商家页面显示订单接收详情,可以进行订单状态更改,商家开始制作时可以点击下图中的Make,则商品进入制作状态,制作完成后点击Pickup按钮,则商品进入可提货状态。
亚马逊云科技 Build On -轻松搭建咖啡点单系统_第8张图片
亚马逊云科技 Build On -轻松搭建咖啡点单系统_第9张图片
吧台大屏幕端:
吧台大屏幕正在制作的订单和可以领取的订单,左侧的二维码为点单二维码,可以扫描进行点单。
带二维码的图片发出后显示图片违规,此处不添加效果图了。实际样式参考肯德基吧台上方的点单大屏幕。
用户端:
用户扫描大屏幕上的二维码进入下图所示的程序,点击页面图标即可下单,下单后页面会进行咖啡状态更新,根据指示等待咖啡制作完成进行领取。
亚马逊云科技 Build On -轻松搭建咖啡点单系统_第10张图片
亚马逊云科技 Build On -轻松搭建咖啡点单系统_第11张图片
亚马逊云科技 Build On -轻松搭建咖啡点单系统_第12张图片

【总结】

通过本次实验可直观地感受到使用亚马逊云服务实现Serverless搭建零售创新应用的快捷性和便利性,可对微服务领域和亚马逊的相关服务形成基本的认识。
使用亚马逊云进行零售创新应用的搭建具备以下的特点:
1、模块化
系统的前端后端,前后端中的各项小功能均为独立模块,各模块的耦合性很小,能够实现单模块的改动几乎不影响其他模块的功能。任何模块开发完成后均可以自由接入系统的任何部分。
2、可视化
亚马逊云服务中内置了丰富的功能模块,并进行了可视化。整个咖啡流程点单系统均可以通过拖动模块的方式进行搭建。系统的运行流程在网页端进行可视化展现,便于随时定位程序运行问题。整个咖啡点单系统可以实现几乎0代码搭建。
3、高效性
由于模块化和可视化两条特性的存在,使得无论专业人士还是新手小白,均能够快速上手。通过类似搭积木的方式,用户可以在2~3个小时内实现整个系统的搭建调试。
同时丰富的功能模块给用户提供了自由的开发空间,极大地缩短了从idea到产品的时间。用户的任何奇思妙想,在亚马逊云服务的加持下,均能够快速地产出demo进行验证,进而使产品能够得到快速完善。

你可能感兴趣的:(活动感想,科技,java,开发语言,云原生,aws)