写点什么

AWS Step Functions 让您事事顺利

  • 2019-10-11
  • 本文字数:1436 字

    阅读完需:约 5 分钟

AWS Step Functions 让您事事顺利

我经常进行有关 Amazon 创新文化的演讲,通常,开场幻灯片都会引用 Amazon 创始人 Jeff Bezos 一句发人深省的话:



我喜欢和客户坐在一起,听他们讲述我们如何帮助他们释放了创造力,让他们能够追寻梦想。今年早些时候,我与可口可乐公司的 Patrick 聊天,想了解他们如何使用 AWS Step Functions 和其他 AWS 服务支持 Coke.com Vending Pass 计划。此计划包括,在支持使用可口可乐 Vending Pass 进行移动支付的自动贩售机上购买产品可以赢得饮品奖励。参与者可轻扫已启用 NFC 的手机,完成 Apple Pay 或 Android Pay 购买,同时向自动贩售机表明身份,并赢取积分,将来即可在自动贩售机上免费获得饮品


轻扫之后,SNS 主题和 AWS Lambda 函数的组合会对部分现有后端代码启动两次调用,以计算贩售点数并更新参与者的记录。遗憾的是,后端代码响应太慢,还有一些计时依赖性,从而导致漏掉更新,并有可能使 Vending Pass 参与者觉得很困惑。解决这个问题的最初方案非常简单:修改 Lambda 代码,在两次调用之间加入 90 秒延迟。这样确实可以解决问题,但平白消耗了处理时间 (对 Lambda 函数的使用计费取决于请求的持续时间,以 100 毫秒为间隔)。


为了使解决方案更加经济高效,团队转而使用 AWS Step Functions,并构建了非常简单的状态机。我在之前的一篇博文中介绍过,Step Functions 能够使用易于构建的可视化工作流,大规模协调分布式应用程序的组件和微服务。


可口可乐构建了非常简单的状态机来简化业务逻辑并降低成本。您的状态机也可以同样简单,还可以利用其他 Step Function 功能,例如顺序执行和并行执行,以及做出决策和选择备用状态的能力。可口可乐状态机如下图所示:



FirstState 和 SecondState 状态 (Task 状态) 会调用相应的 Lambda 函数,同时 Step Functions 会实施 90 秒的延迟 (Wait 状态)。这种修改可以简化逻辑并降低成本。下图说明了这些功能是如何结合在一起的:



下一步工作


首战告捷让他们进一步调研了无服务器计算,并打算在其他项目中进行应用。Patrick 告诉我,他们已经看到了工作效率的大幅提高,开发人员也很开心。开发人员不用再等待服务器进行预置,借用 Jeff 的话来说,他们现在可以释放创造力,追寻梦想。他们希望使用 Step Functions 改善应用程序的扩展能力、功能和可靠性,这已远远超出最初的可口可乐 Vending Pass 方面的用途。例如,可口可乐已使用 Lambda、Step Functions 和 API Gateway 构建了无服务器解决方案,用于向他们的食品服务合作伙伴发布营养信息。


Patrick 和他的团队现在正在试验机器学习和人工智能。他们构建了一个原型应用程序,用于分析 Instagram 的照片流,并提取品味和风味方面的趋势。这个应用程序是一天就构建完成的快速原型,利用了 Lambda、Amazon DynamoDB、Amazon API Gateway 和 Amazon Rekognition,用 Patrick 的话来说,这是一个“巨大的成功,将发挥重要作用”。


为了更快地构建无服务器应用程序,开发团队已在无服务器应用程序框架的基础上创建了内部 CI/CD 参考架构。这种架构包括无服务器导览,以及一些用于访问内部服务和资产的样板文件代码。Patrick 告诉我,他们使用这种模型可以轻松地将有前景的项目从“一人一电脑”扩展到整个开发团队。


Patrick 将参加 AWS re:Invent,在我的同事 Tim Bray 之后发表演说。要亲眼目睹他们的风采,请参加 SRV306 – 狂野状态机!客户如何使用 AWS Step Functions。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/things-go-better-with-step-functions/


2019-10-11 13:371174
用户头像

发布了 1929 篇内容, 共 158.8 次阅读, 收获喜欢 81 次。

关注

评论

发布
暂无评论
发现更多内容

深入理解 Linux 的 epoll 机制及epoll原理

Linux服务器开发

网络编程 epoll Linux服务器开发 IO多路复用 Linux后台开发

牛掰!阿里大佬刷了四年LeetCode才总结出来的数据结构和算法手册

Java 编程 架构 面试 程序人生

无敌!肝完这套Alibaba面试全能小册,百万年薪在向你招手!

Java 阿里巴巴 编程 面试 程序人生

TDSQL交付要求和挑战: 快速、灵活、安全

腾讯云数据库

数据库 tdsql

TDSQL原创技术的出发点

腾讯云数据库

数据库 tdsql

在云中确保安全的五个技巧

云计算

TDSQL自动交付方案: 全球灵活部署,最快9分钟

腾讯云数据库

数据库 tdsql

12年技术老兵整理的Alibaba“MySQL 学习笔记”带你轻松拿捏MySQL

Java 编程 架构 面试 程序人生

使用PaddleNLP打造精准文献检索系统,看万方系统升级放大招!

百度大脑

人工智能 nlp 飞桨

在?来说点儿程序员Style的金句吧【话题讨论】

气气

话题讨论

什么是CPython

林十二XII

拓路前行-TDSQL追求极致体验的这一路

腾讯云数据库

数据库 tdsql

如何实现 iOS 短视频跨页面的无痕续播?

阿里云CloudImagine

ios 阿里云 Video播放器 视频云

JVM专题01-类加载机制详解

JustRunning

javacore JVM 深入理解JVM Java类加载

阿里菜鸟+腾讯IEG面经(阿里5面,腾讯8面)无限秽土转生

Java 程序员 架构 面试 计算机

高能预警!Alibaba最新出版的JDK源码剖析手册(究极奥义版)开源

Java 程序员 架构 面试 Alibaba

拯救你的算法!GitHub上神仙项目手把手带你刷算法,Star数已破110k

Java 编程 架构 面试 程序人生

TDSQL多集群下的自动化和交付

腾讯云数据库

数据库 tdsql

T-TDSQL的核心技术

腾讯云数据库

数据库 tdsql

T-TDSQL的典型应用

腾讯云数据库

数据库 tdsql

多线程环境下,程序运行真是危机四伏

Java 架构 面试 后端 多线程

不是吧 阿sir!都21年了还有人不会算法?赠你份字节内部算法手册吧

Java 编程 架构 面试 架构师

使用DEM和矢量数据绘制地图

gisbook

GIS map DEM

工信部整治平台网址屏蔽问题,打击互联网行业垄断任重道远

石头IT视角

T-TDSQL的核心理念,为数据赋能

腾讯云数据库

数据库 tdsql

大奖花落谁家,TDSQL他来了

腾讯云数据库

数据库 tdsql

面试官:你说说限流的原理?

艾小仙

面试

理解RESTful API

林十二XII

腾讯云分布式数据库TDSQL的十年自主可控之路

腾讯云数据库

数据库 tdsql

云原生架构下的持续交付实践

百度Geek说

架构 云原生 后端

自助售货机主板要注意哪几个方面?

双赞工控

安卓主板

AWS Step Functions 让您事事顺利_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章