什麼是工作流程?
描述人如何從頭到尾完成工作的工作流程。由程序中步驟與狀態組成的工作流程。Workflow 可以作為一系列的步驟顯示在檢查清單中,或者以圖表的方式顯示步驟。
以下是簡單支援工作流程的範例:
- 客戶 Carl 啟動支援請求。
- 開放案例已指派給支援代表 Sasha。
- Sasha 收到指派的案例,並請求 Carl 提供資訊。在等待回覆時,案例的狀態為「待處理」。
- Carl 提供請求的資訊後,Sasha 回覆解決方案,然後將案例的狀態更新為「已解決」。
- Carl 收到答案以及一個問卷調查連結,他可以在其中提供有關其支援請求的意見回饋。他對 Sasha 的快速回應感到滿意,並在問卷調查中給出了很高的評價。案例的狀態會更新為「已關閉」。
在此工作流程中,步驟為「開始」、「指派」、「解決」和「關閉」。狀態為「開啟」、「已指派」、「待處理」、「已解決」和「已關閉」。隨著流程的行進,步驟會從一個狀態移動到另一個狀態,直到工作流程完成為止。
使用工作流程的好處有哪些?
工作流程提供了一組可重複的步驟和工作,您可予以啟動、排程和監控。
您可以視覺化工作流程,以進行觀察、驗證工作流程的正確性,以及監控工作流程中的作業。
藉助工作流程,企業可以改善分散式應用程式的可靠性水準,而不會增加其程式碼的複雜性。您可以在精細等級上自動化、最佳化及擴展工作流程。
工作流程為應用程式架構帶來了什麼?
工作流程將任務的逐步邏輯控制流程與包含唯一商業邏輯的實際工作單位加以區隔。藉助此部門,您可以從核心商業邏輯分別管理、維護和調整應用程式的狀態結構。
您可以隨業務要求的變化輕鬆地變更應用程式邏輯,不必變更基礎狀態結構、任務分派和流程控制。
工作流程服務如何改善應用程式架構?
可靠性
分離狀態追蹤和任務處理可為以雲端為基礎的架構提供可靠性。使用工作流程服務,您可以將任務派遣到應用程式元件、追蹤其進度,以及了解系統的最新狀態。
簡易性
工作流程取代了複雜的自訂程式碼自製解決方案和程序自動化程式碼。
推進處理步驟的任務可能會長時間執行,且可能出現故障、逾時或需要重新開始。而它們完成時的輸送量和延遲通常也不相同。在所有這些情況下,追蹤和檢視任務不僅非常困難,而且是毫無差別的工作。
使用工作流程服務,開發人員可以避免管理程序自動化的基礎設施連接。因此,他們可以全神貫注在開發應用程式的獨特功能。
可擴展性
工作流程服務旨在根據您的應用程式使用情況無縫擴展。當應用程式加入更多工作流程或增加工作流程的複雜性時,您可以自動化管理工作流程服務。
靈活性
開發人員可以使用工作流程服務,以各種程式設計語言建立應用程式元件和協調邏輯。然後,開發人員可以專注在差異化的應用程式邏輯。
常見的工作流程使用案例有哪些?
工作流程可協助處理能分成一系列步驟的任何運算問題或業務流程。工作流程可利用相依性簡化任務的管理。常用案例包括:
- 應用程式協同運作 – 透過實踐通訊協調鬆耦合微型服務,其中每個微型服務都在自己的進程中執行及獨立部署。結合無伺服器函數,建置具有非同步的人工核准步驟的 Web 應用程式。如需使用案例範例的詳細資訊,請參閱 AWS Step Functions 開發人員指南中的微型服務協同運作。
- 資料處理 – 將來自多個資料庫的資料整合到統一報告中,將大型資料集細化並減少為有用的格式,或協調多步驟分析和機器學習工作流程。如需使用案例範例的詳細資訊,請參閱 AWS Step Functions 開發人員指南中的資料處理。
- DevOps 和 IT 自動化 – 建立用於持續整合和部署的工具,或建立自動回應基礎設施變化的事件驅動應用程式。如需使用案例範例的詳細資訊,請參閱 AWS Step Functions 開發人員指南中的IT 和安全自動化。
- 電子商務 – 自動化關鍵任務業務流程,例如訂單填寫和庫存追蹤。
- Web 應用程式 – 實作健全的使用者註冊流程和身分驗證,選擇性地整合稽核和增強安全性的步驟。
- 機器學習 – 執行擷取、轉換和載入 (ETL) 任務,以建立、訓練和部署機器學習模型。例如,收集和處理影像資料以偵測影片串流中的物件、新增週框方塊,或提供用於資料編目的視覺化和中繼資料資訊。如需使用案例範例的詳細資訊,請參閱 AWS Step Functions 開發人員指南中的機器學習。
- 安全自動化 – 由受管資源事件啟動的排程分析或安全事件回應,其中具有可根據業務規則叫用稽核和通知步驟的自訂工作流程。
- 媒體處理 – 從 PDF 文檔文件或影像中擷取資料以進行處理。使用大規模平行化對影片進行分割和轉碼。如需使用案例範例的詳細資訊,請參閱 AWS Step Functions 使用案例中的媒體處理。
如何建立工作流程?
開發人員最初可建置自訂程式碼解決方案和流程自動化程式碼。這些解決方案一開始很簡單,但隨著時間的推移和發展,往往會變得越來越複雜且容易出錯。更新商業邏輯所需的工作量增加,並且隨著時間的推移,變更速度逐漸減慢。
您可以採用工作流程特定的程式庫,進而減輕自製解決方案的一些複雜性。但是,設定這些工具可以為該流程新增新的複雜性。工作流程步驟和狀態可能仍難以視覺化。
工作流程的進階建立與監控需要視覺化工具來排列工作流程狀態和步驟。在這些工具中,商業邏輯規則可用於管理和更新。使用圖形工具可以提高開發人員的生產力和工作流程可見性,並且可以減少發生錯誤的可能性。
如需使用視覺化工作流程設計器 Workflow Studio 的實作教學,請參閱 AWS 開發人員中心的如何建立無伺服器工作流程。
常見的工作流程模式有哪些?
使用工作流程,您可以專注於定義元件互動,而不必撰寫可使互動運作的軟體。
工作流程可協調微型服務和容器。工作流程的常見模式包括微型服務鏈結、非同步或同步回應、人際互動、容器協同運作與編排、分支及錯誤處理。
AWS 提供哪些工作流程服務?
AWS Step Functions 是一種低程式碼的視覺化工作流程服務,用於協調 AWS 服務、自動化業務流程和建置無伺服器應用程式。Step Functions 包括 Workflow Studio,這是一種拖放式的低程式碼視覺化工作流程設計器。此工具會以 Amazon States Language 自動產生您的函數和組態,這是一種用於定義狀態機器的 JSON 型結構化語言。您可以在 Step Functions 主控台中使用 Amazon States Language,或將其匯出及進行編輯。
Amazon Managed Workflows for Apache Airflow (Amazon MWAA) 提供相同的開放原始碼 Apache Airflow 體驗,但可作為全受管服務。使用 Amazon MWAA 將現有的內部部署解決方案移至雲端,以降低營運成本及大規模部署。開發人員可以繼續用 Python 撰寫有向無環圖 (DAG) 模型,宣告任務的相依性,同時與其他 AWS 服務整合。
我們建議為所有新應用程式使用 AWS Step Functions,因為它提供更具生產力和更靈活的方法,利用視覺化工作流程來協調應用程式元件。如需同時使用 Step Functions Workflow Studio 和 Amazon States Language 的實作教學,請參閱 AWS 開發人員中心的如何建立無伺服器工作流程。