Study Notes - Step Functions

栏目: 后端 · 发布时间: 5年前

内容简介:分散式系統架構的事件驅動模式不外乎本文整理 Step Function 的學習筆記。

分散式系統架構的事件驅動模式不外乎 同步 (Sync) 、與 非同步 (Async) 兩大類。同步指的是發出請求的客戶端,會等待處理端的回覆;非同步則是客戶端發出請求後,不會等待服務端回覆。非同步作業架構需要有以下幾種基礎架構:

  1. 訊息仲介 (Message Broker)訊息佇列 (Message Queue) 、或者 Pub/Sub :儲存處理的訊息資料,是大量非同步處理的核心架構,著名的實踐有 SQS、RabbitMQ、Kafka、Pub/Sub …
  2. 工作流程 (Workflow) : 主要的流程控制器、輸出輸入處理、異常處理、執行單元 … 等
  3. 批次工作 (BatchJob) :負責執行運算的運算單元。
  4. 資源分配策略 : 為了讓資源更有效地利用,或者滿足一些特定的運算需求 (例如 GPU、I/O Bound),所需要的資源分配策略。
    • 資源調度的實踐有:容器編排器 (Kubernetes)、AWS ECS 的 AWS ECS Task Placement Strategies。

Step Functions 是 AWS 的 工作流程 服務,其核心概念是狀態機。透過狀態機,可以彈性的客製工作流程,同時與其他 AWS 服務整合。

本文整理 Step Function 的學習筆記。

核心概念:狀態機

整理 Step Functions 之前,先用一個例子來說明其核心概念,也就是狀 狀態機 (State Machine) 。主要是整個流程狀態概念有:

  • 狀態 (States) :通常是名詞、形容詞、一句話,重點不是動詞。
  • 轉換 (Transition) :從 狀態A變成狀態B的轉換過程稱為 過渡 (transition)
  • 開始與結束 (Start / End) :狀態機本身必須要有

為了方便說明,用下面這張圖當例子。這是一個專案管理中 Bug 的工作流程圖。圖源自『 協同合作系統建制與導入 - 以 Redmine 為例 』一文的介紹。

以及過往在實作 Test Framework and Architecture 時,應用到了 Message Queue、Workflow、BatchJob、資源分配策略等,也包含了本文的 Workflow 概念。

下圖是文章的 Bug 工作流程:

  1. 每個點都代表 狀態 (State)
  2. 每個狀態的 轉換 (Transition) 代表 動作 (Action)
  3. 狀態有 開始結束 ,這個設計也包含在 Redmine 的狀態定義裡。

Study Notes - Step Functions

基礎功能

Step Functions 最重要的核心概念,這些概念都圍繞在狀態機,其主要核心概念分類如下:

  • 程序控制器 (Flow Controller)
    • 循序 (Sequence)
    • 平行 (Parallel)
    • 條件式判斷 (Condition)
    • 時間控制 (Duration、Timeout)
  • 出輸入處理 (Input / Output) :包含輸入的資料處理、輸出的資料結果、Log … 等
  • 異常處理 (Error Handling)
    • 執行單元的異常處理器 …
    • Retry 機制
  • 執行單元 (Resource) :實際處理的運算單元,主要支援 Activity、AWS Lambda、AWS Services。

Amazon States Language

AWS 為了實作狀態機,以 JSON-based 定義一套 DSL (Domain Specific Language) ,稱為 Amazon States Language (ASL) 。這個資料結構主要在描述多個 State 的類型 (Type)、起始點、結束點、狀態的下一步 (Next)、以及相關的資源 (Resource)。資料結構支援以下 Fields:

  • Required:
    StartAt
    States
    
  • Optional:
    • Comment
    • TimeoutSeconds : 最大可以執行的時間,最大值為一年,回覆狀態為: States.Timeout ,在 CloudWatch metric 增加 `
    • Version : 預設 1.0

底下是基本的結構:

{
  "Comment": "Bug Flow",
  "StartAt": "HelloWorld",
  "States": {
    "State1": {
      "Type": " ... ",
    },
    "State2": {
      "Type": " ... ",
    },
  }
}

以上所述就是小编给大家介绍的《Study Notes - Step Functions》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深度学习核心技术与实践

深度学习核心技术与实践

猿辅导研究团队 / 电子工业出版社 / 2018-2 / 119.00元

《深度学习核心技术与实践》主要介绍深度学习的核心算法,以及在计算机视觉、语音识别、自然语言处理中的相关应用。《深度学习核心技术与实践》的作者们都是业界一线的深度学习从业者,所以书中所写内容和业界联系紧密,所涵盖的深度学习相关知识点比较全面。《深度学习核心技术与实践》主要讲解原理,较少贴代码。 《深度学习核心技术与实践》适合深度学习从业人士或者相关研究生作为参考资料,也可以作为入门教程来大致了......一起来看看 《深度学习核心技术与实践》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

html转js在线工具
html转js在线工具

html转js在线工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具