【问题标题】:I don't get workflow, workflow automation or workflow orchestration我没有工作流、工作流自动化或工作流编排
【发布时间】:2020-03-13 10:33:31
【问题描述】:

为什么我们需要像 Uber 的 Cadence、Camunda 或 Activiti 这样的特殊软件?如果它只是一系列任务,那么为什么我们不能直接编写代码呢?我试图阅读 Camunda 和 Cadence 的文档,但无法进入。我公司想用。考虑过它的高级开发人员无法/似乎不会解释他为什么要使用它或在哪里使用它。

而且我发现他们设置工作流程的代码/方式非常不直观。请有人帮忙。

该项目使用 Java 和 Spring Boot 开发。

【问题讨论】:

    标签: architecture workflow activiti camunda cadence-workflow


    【解决方案1】:

    “只需​​编码”是什么意思?好的,让我们看看下面的代码:

    String r1 = task1(someArg);
    String r2 = task2(r1);
    if (r2.equals("foo")) {
       sleep(Duration.ofHours(5));
       task3(r2);
    } else {
       task4(r2);
    }
    

    现在去“只编写代码”使其具有可扩展性和容错性(例如,在执行 task2 时防止进程失败),并且对于任何这些任务实现的长时间停机都保持稳健。我敢打赌,你的代码将是一团乱七八糟的回调和数据库调用。

    Temporal Workflow 允许编写此类代码并使其具有容错性,无需任何大的修改。

    【讨论】:

      【解决方案2】:

      可能需要一本书来回答这个问题。几个方面:

      • 业务与 IT 之间的沟通
        您无法向业务展示代码,但人们理解 BPMN 图。至少基本的符号集非常直观(http://bpmn.io/https://www.omg.org/spec/BPMN/2.0/About-BPMN/#documents) .您将从哪里开始向业务分析师解释您的编码工作流程的逻辑?以及如何将有关业务规则的反馈转化为代码?
        如果需求没有很好地转化为目标系统,那么您将获得额外的迭代和努力。 BPMN图可以被流程引擎解释,因此与业务讨论的操作流程和执行的流程之间没有不匹配。

      • 灵活性/关注点分离
        流程模型反映了业务逻辑,并允许您将其与代码分开。通过不将其隐藏在代码中,业务逻辑变得更容易理解(参见上一段)和更改。它也可以独立进行版本控制。业务规则、流程逻辑和其他(例如集成)代码的生命周期通常非常不同。更快地更改 IT 系统意味着提高业务敏捷性。

      • 透明度
        工作流引擎 ootb 监控状态并收集所有(通常是强制性的)审计数据。我们在哪里执行特定的流程?为什么没有进展?谁执行了哪个步骤以及何时执行?花了多长时间?更改了哪些数据?
        根据这些数据,您可以生成报告(过去 12 个月您的银行开户流程的平均处理时间?)和分析(在某些情况下失去客户的风险?)

      • 您必须编程的标准化功能
        你会开发自己的数据库吗?不,那你为什么要开发自己的工作流管理? 状态管理、工作分配(用户、角色、组)、任务和数据的权限概念、审计信息的日志记录、错误处理、线程管理、重试、标准报告……

      我可以继续,但这应该会给你一个想法。进一步的阅读可能是:

      https://thenewstack.io/5-workflow-automation-use-cases-you-might-not-have-considered/

      https://blog.bernd-ruecker.com/the-microservice-workflow-automation-cheat-sheet-fc0a80dc25aa

      https://www.ecosia.org/search?q=why+workflow+engines

      【讨论】:

      • 感谢您对 WHY 的详尽解释,我将您的答案分享给了我们的团队,以获得额外的理解。我们目前正在构建金融科技产品。作为 MVP,我们自己编写了所有“管道”逻辑。 “构建此类应用程序的常用方法是无状态服务、数据库、cron 作业和排队系统的大杂烩……” - Cadence 网站对其进行了最好的描述。现在我们需要选择一个工作流引擎。如果您对如何选择有任何指导,我将不胜感激。
      • 考虑 blog.bernd-ruecker.com/the-process-automation-map-1abe2d79192b / blog.bernd-ruecker.com/… 从我的回复中可以看出,我非常喜欢使用 BPMN2 实现的业务 IT 一致性。如果您正在寻找可以执行流程编排轻量级、高度可扩展、使用 BPMN2 并且是开放的产品,那么您的选择范围将缩小到 2-3 个产品。
      猜你喜欢
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多