10 月 23 - 25 日,QCon 上海站即将召开,现在大会已开始正式报名,可以享受 8 折优惠 了解详情
写点什么

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:371158
用户头像

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

关注

评论

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

没有微服务项目经验,就别去面试官那里送人头了

小谈

Java 架构 面试 微服务 SpringCloud

对mysql事务的认识,再不懂我就捶死我自己!

你是人间四月天

MySQL 面试 mysql事务

这是什么神仙面试宝典?半月看完25大专题,居然斩获阿里P7offer

码哥小胖

Java spring 面试

架构师训练营作业 (第五周)

王海

极客大学架构师训练营

架构师训练营第5周-一致性hash算法总结及作业

傻傻的帅

极客大学架构师训练营

超级专家术语学习机

程李文华

解决死锁的4种基本方法(建议收藏)

小吴选手

Java 死锁

架构师训练营第 5 周——学习总结

在野

极客大学架构师训练营

你那么追捧的 SpringBoot,到底替你做了什么?

爱java爱自己

spring

k6简单入门

风中之心

性能测试

Cordova项目使用Android Studio真机调试

麦洛

android Android Studio 真机调试

深入理解ThreadLocal:拨开迷雾,探究本质

itlemon

源码分析 ThreadLocal

Hash一致性算法的Java实现

wei

写给大忙人看的内存管理

苹果看辽宁体育

后端 操作系统

因为我的一个低级错误,生产数据库崩溃了将近半个小时

鄙人薛某

Java MySQL 数据库 故障定位

工业4.0|振动分析能做到预防性维护吗?

清水河路人甲

计算机操作系统基础(十三)---线程同步之读写锁

书旅

php laravel 线程 操作系统 进程

IDEA 不为人知的 5 个骚技巧!真香!

王磊

Java 工具 IDEA

游戏夜读 | 跟风说一说爬虫

game1night

「架构师训练营」第 5 周作业 - 一致性哈希算法

guoguo 👻

极客大学架构师训练营

hash一致性算法与优化

Mr.Monkey

数酒瓶童谣:从99数到0

程李文华

架构师训练营 一致性Hash算法Java实现

Cloud.

架构师训练营第五周 - 总结

Eric

极客大学架构师训练营

熟悉JVM吗?为什么新生代内存需要有两个Survivor区?

南南

Java 面试 深入理解JVM JVM原理

如何通过调试学习 nginx ?

张小方

c++ nginx 后端 高性能 服务器端开发

面试官:反射都不会,还敢说自己会Java?

码农月半

Java 面试 反射 java反射

架构师课程第五周 作业

杉松壁

阿里P7岗位面试,面试官问我:为什么HashMap底层树化的标准元素个数是8

鄙人薛某

Java 面试 hashmap 哈希

老是自以为JVM懂了,那你知道 i = i++和 i = ++i 的区别吗?

小谈

Java 面试 编程语言 JVM 程序

面试官80%会问的分布式事务中的“最大努力通知”事务

无予且行

Java MySQL 面试 事务

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