写点什么

AWS Step Functions:使用可视化工作流协调分布式应用程序和微服务

  • 2017-01-09
  • 本文字数:1499 字

    阅读完需:约 5 分钟

Amazon Web Services 推出了 AWS Step Functions ,该服务让用户可以使用可视化工作流协调分布式应用程序和微服务。AWS Step Functions 控制台支持定义状态机的 JSON 规范,从而在应用程序内执行“步骤(steps)”,例如,调用外部的 AWS Lambda 函数或者运行在 AWS EC2 容器服务(ECS)上的容器化应用程序。

通过 AWS Step Function 服务创建的每一个状态机都定义了一组状态以及状态之间的转换。状态可以顺序或并行激活,该服务可以确保所有并行的状态都运行完毕再进行下一步操作。状态会执行任务、作出决定,并通过状态机控制这个过程。每个状态机的多个副本可以同时独立地运行;每个副本称为一个“执行(execution)”。按照 AWS 博客的说法,AWS Step Functions 服务允许并发运行数以千计的执行。

AWS Step Function 状态机承担的所有工作都是由“任务(tasks)”负责处理。一项任务可以是:

  • AWS Lambda 函数:完全基于云的任务,在 Lambda 服务上运行。Lambda 函数可以使用 JavaScript(可以使用 AWS 管理控制台编写,也可以上传到 AWS Lambda 服务)、Java 或 Python(必须上传到 AWS 服务)编写。
  • 一个活动:这个概念是指由“worker”应用程序或者托管在类似 AWS EC2 或 AWS ECS 这样的平台上的微服务执行的一项任务。
    • Worker 可以使用任何能够调用 AWS Step Functions API 的语言实现。
    • Worker 必须调用 API “GetActivityTask”和“SendTask*”轮询 AWS Step Functions。据 AWS 博客介绍,最基本的,一项活动甚至可以是一项“人工任务”,等待某个人来执行一些动作,然后继续。
    • 如果一项活动有心跳超时时间,则实现这项活动的 worker 必须使用“SendTaskHeartbeat”动作发送心跳更新。
    • 活动没有版本控制,它们应该总是向后兼容。如果必须对一项活动的定义做向后不兼容的修改,那么就应该借助 Step Functions 使用一个唯一的名称新建一项活动。

错误处理行为和重试逻辑可以作为状态机的一部分在 JSON 规范中指定。这让你可以构建“健壮的多步骤应用程序”,即使应用程序的一部分瞬时出现了问题,导致了短暂的故障,它仍然可以成功运行。

在创建状态机规范时,可以使用 AWS Labs 新推出的 Ruby gem “ statelint ”验证手动或机器生成的 JSON,从而发现常见的错误,包括状态不可达和遗漏终端状态。

任何状态机的设计都可以在 AWS Step Functions 控制台上以可视化的方式进行,而在执行过程中,可以启用一个彩色的图表来审查状态机内的当前进展(步骤成功 / 失败):

虽然 AWS Step Functions 最近才刚刚发布,但 Leading Edge Forum 研究人员 Simon Wardley 指出,该服务和类似 AWS Lambda 这样的“无服务器”功能可以支持未来“编码化(codification)”业务运作方式,这是为了提高灵活性而开始创建业务流程执行语言(BPEL)的早期尝试。

当你考虑 AWS Lambda、AWS Step Functions 等等服务时,你需要以一个自动化基本原则的角度来考虑,也就是说,不只是说或者编码到地图和相关系统中,而是要随处嵌入。大规模地,以我希望我们能够达到的竞争速度,那么,这是必须的。

AWS 博客介绍,AWS Step Functions 当前的可用区域包括美国东部(北弗吉尼亚)、美国东部(俄亥俄州)、美国西部(俄勒冈州)、欧洲(爱尔兰)及亚太(东京)。作为 AWS 免费试用方案的一部分,用户每月最多可以免费运行 4000 次状态转换。除了免费使用方案外,每 1000 次状态转换的费用为 0.025 美元。

要了解更多信息,请查看 AWS Step Functions 的产品页面、 AWS 博客以及在 YouTube 上观看 AWS 最近举办的在线研讨会“ AWS Step Functions 发布”。

查看英文原文: AWS Step Functions: Coordinating Distributed Applications and Microservices Using Visual Workflows

2017-01-09 18:008553
用户头像

发布了 1008 篇内容, 共 388.2 次阅读, 收获喜欢 344 次。

关注

评论

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

天呐!我真的没想到推特GIF动图保存到手机相册竟然简单几步就能完成!

frank

twitter

Split to Be Slim: 论文复现

华为云开发者联盟

人工智能 华为云 论文 华为云开发者联盟 企业号 4 月 PK 榜

常用工具

流火

从零学习SDK(9)SDK的局限

MobTech袤博科技

Rust、Go 和 Swift 在性能和并发性方面有何差异?

非凸科技

Go swift 性能 编程语言 高并发

华为云GaussDB坚持技术引领,以数字化转型激活金融科技新动能

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

【FAQ】统一扫码服务常见问题及解答

HarmonyOS SDK

HMS Core

手语识别:解锁语言交流的新时代

来自四九城儿

Go 语言快速入门指南:GET 和 POST 方法

宇宙之一粟

Go HTTP post GET 三周年连更

生物计算大模型技术在药物研发领域的应用

Baidu AICLOUD

生命科学 PaddleHelix

如何通过C#/VB.NET代码将PowerPoint转换为HTML

在下毛毛雨

html PowerPoint 文档转换

Apple 的 plist 编辑器入门指南:基础操作与高级功能详解

雪奈椰子

浅析低代码开发的典型应用构建场景

力软低代码开发平台

为什么说网络安全行业是IT行业最后的红利?

网络安全学海

网络安全 安全 信息安全 渗透测试 WEB安全

技术干货|如何利用 ChunJun 实现数据实时同步?

袋鼠云数栈

开源 数据采集

赋能开发者,开放原子全球开源峰会期待你的声音!

开放原子开源基金会

大数据 开源 开源软件

AI数字人产品“世优BOTA”发布会落幕,世优科技纪智辉演讲回顾

联营汇聚

2023云数据库技术沙龙MySQL x ClickHouse专场成功举办

NineData

MySQL 腾讯云 阿里云 云数据库 技术沙龙

有道CEO周枫:当我们谈论大模型时,应该关注哪些新能力?

有道技术团队

中国边缘云公有云服务市场 Top2,百度智能云让智算无处不在

Baidu AICLOUD

分布式云

上海首个大模型产业发展研讨会圆满落幕,众顶尖专家共探大模型产业

NLP资深玩家

文本搜索工具ack与grep

坚果

Linux 三周年连更

为开发者搭建创新舞台 OpenHarmony创新赛正式启动

最新动态

ChatGPT及大模型专题研讨会在蓉成功举办共探前沿技术与产业发展

NLP资深玩家

GPU 加速药物研发与基因组学分析

Baidu AICLOUD

生命科学

大语言模型时代狂飙以来,到底是谁在让你失业|社区征文

小诚信驿站

三周年征文

如何雇佣一名全民开发者?

草料二维码

开发者 低代码 无代码开发 无代码 无代码微信小程序

终于有人把动态规划、冒泡排序、二叉树、链表、栈全部讲清楚了

架构师之道

算法

没有主机跑开源软件?速来牧云助手免费领一台!

百川云开发者

云计算 开源 云主机 教程 免费

Apache Flink ML 2.2.0 发布公告

Apache Flink

大数据 flink 实时计算

AWS Step Functions:使用可视化工作流协调分布式应用程序和微服务_语言 & 开发_Daniel Bryant_InfoQ精选文章