知识卡片
运行工作流引擎的部署形态选择需匹配现有技术栈
内容
决定架构落地时最重要、最先要回答的问题是”工作流引擎本身怎么跑”——是托管服务、与微服务并排运行的Docker容器,还是内嵌进应用程序的库?这个选择不该脱离现状拍脑袋决定,而要顺着已有技术栈走:构建无服务器应用自然该找托管服务;构建云原生应用时对Kubernetes的支持可能是决定性因素;主要运行人工任务相关流程时,独立的工作流服务器可能是最简单的选项;构建单体架构时,嵌入式库往往效果不错——这与[[模块化单体架构嵌入工作流引擎与解构单体的渐进路径]]描述的思路一致。除了部署形态本身,还要考察工具在当前环境中是否易于配置、运行需要哪些额外资源(如数据库或应用服务器),以及工具的灵活程度——有些云服务只绑定特定公有云厂商、内部工作机制不透明,而另一些工具支持多种分发方式(开源自编译、独立发行版、Docker镜像、云托管服务并存),这种灵活性能应对需求随时间演变的不确定性。最容易被忽视但同样关键的是团队经验:如果团队从未接触过Kubernetes或Docker,就不该仅仅为了用上流程自动化而强行引入这些技术——工具选择要服务于团队现状,而不是反过来强迫团队适应工具。
参考来源
- 位置:《流程自动化实战:系统架构和软件开发视角》第6章《解决方案架构》"6.2.1 运行工作流引擎"(源文件:_epub-src/EPUB/xhtml/Section0001_0010.xhtml)
- 结论依据:原文列举无服务器、云原生、人工任务为主、单体架构四种场景下对应的部署形态选择,并强调工具灵活性和团队既有经验对决策的约束,直接支撑本卡片结论。
- 原始内容:如果你正在构建无服务器应用程序,你当然会去找托管服务……如果团队从未接触过Kubernetes或Docker,请不要仅仅为了利用流程自动化而强行引入它们。