写点什么

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

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

关注

评论

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

运维智能体(SRE Agent)技术分级能力要求

乘云数字DataBuff

可观测 #运维 运维智能体

国产算力,正在AI工作站里“生根”

脑极体

AI

好用!4种真免费的AI接口整理!

王磊

理想照进现实:零碳园区面临的挑战与破局之道

西格电力

绿色低碳 新能源 碳实践 零碳园区 低碳转型

AI刷新赛事体验,PAI-ArtLab支撑“我的NBA AI手办”互动

阿里云大数据AI技术

人工智能 阿里云 PAI NBA

云防护栏理论:应对云配置错误的安全防护策略

qife122

azure 云安全

反射型XSS与自反型XSS深度解析

qife122

网络安全 漏洞挖掘

体育视频直播全球分发系统

ggscoreLynne

veDB-Search:AI 混合检索,懂 SQL 就行

字节跳动数据库

向量数据库 rag 混合搜索 火山引擎数据库 veDB

java操作hbase报错:KeeperErrorCode=NoNode for /hbase-unsecure/master

刘大猫

人工智能 云计算 大数据 算法 物联网

Voice Agent 开发者第一课:成为进阶语音 AI 玩家,你需要了解这些丨Convo AI&RTE2025

RTE开发者社区

如何基于阿里云 ECS 一键部署 AskTable?实现数据智能洞察

察言观数 AskTable

数据洞察力 智能 BI AskTable 阿里云 ECS AI 问数

组合为什么优于继承:从工程实践到数学本质

canonical

面向对象 组合 可逆计算

驳“AI 泡沫论”:一场被误读的、正在进行中的产业结构性调整

Baihai IDP

人工智能 AI AIGC LLM AI泡沫

三面阿里,四面京东,终拿大厂offer!Java还是有机会的!

程序员高级码农

Java 面试

会议日程新鲜出炉!2025 Altair 数字孪生技术会议火热报名中

Altair RapidMiner

AI 数字孪生 仿真 高性能计算 CAE

连锁餐饮拓展微信业务:试错 3 个月,终于找到靠谱方案

微擎应用市场

20个低代码开发平台全景解析与多维对比

优秀

低代码 低代码开发平台 低代码平台

【技术解决方案】联邦学习中遇到的Non-IID问题——隐语SecretFlow

隐语SecretFlow

联邦学习

行业分享丨重庆望变电气如何利用AI X 变压器空载损耗快速预测

Altair RapidMiner

人工智能 AI 汽车 仿真 CAE

AI质检与MES系统深度融合:构建智能制造质量管控新模式

万界星空科技

mes 万界星空科技mes 智能化MES AI智能化MES AI质检

ToDesk/向日葵/UU/AnyDesk远程安全与连接能力PK,谁才是真稳如老狗?

小喵子

远程 远程控制 向日葵 ToDesk AnyDesk

融云:用 AI 提升应用活跃度,6 个实用玩法亲测有效

融云 RongCloud

SaaS 系统越来越多,为什么需要一个 iPaaS 来统一管理?

谷云科技RestCloud

SaaS 数据处理 数据传输 集成平台 ipaas

VMware停服在即,运维焦虑?青云云易捷提供“终身”保障!

智驱前线

双活中心建设方案

金陵老街

信息安全 双活中心

Goroutine间的“灵魂管道”:Channel如何实现数据同步与因果传递?

poemyang

golang 并发编程

超越环保:零碳园区的经济与社会价值论

西格电力

绿色低碳 新能源 能源经济 零碳园区 低碳转型

企业日志管理终极指南:3步实现自动化收集、低成本存储与智能分析

运维有小邓

实时 Web 日志分析器 日志管理 日志管理工具 #日志分析 日志管理软件

AI前沿|政务大模型部署指引印发、北京市人工智能标委会成立

Fabarta

字节开源 MineContext:截屏+理解上下文;OpenAI 宣布自研 AI 芯片丨日报

RTE开发者社区

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