逻辑应用程序还是 Web 应用程序?

Logic app or Web app?

我正在决定是构建逻辑应用程序还是网络应用程序。

它必须做一些我在 C# 中很舒服的事情:接收各种格式的消息(每天几千条)、翻译它们、进行 API 调用并转发它们。 None 个端点被广泛使用,因此 out-of-the-box 连接器不会带来好处。有些需要自定义 headers,其内容是使用哈希算法计算的。一些工作涉及将 Json 转换为 XML 和 vice-versa.

据我了解,Logic Apps 的主要区别之一是您无需编写任何代码。由于我们的组织实际上对代码很满意,所以感觉这实际上并没有什么好处。

我错过了什么吗?在这种情况下,是否有任何令人信服的理由说明逻辑应用程序比 Web 应用程序更好?

与仅编写代码相比,使用逻辑应用程序还有一些额外的好处,包括:

  • 开箱即用的监控。对于每次执行,您都可以通过复制您的逻辑应用程序设计视图的监视视图准确查看流程的每个步骤中发生的情况。
  • 内置故障处理。逻辑应用程序将在失败情况下自动重试调用,并且还允许您自定义重试策略或使用 do-until 模式的自定义重试策略。
  • 开箱即用警报。您可以配置警报以通知您失败。
  • 无服务器。您不必担心大小或缩放问题,您可以按消耗付费。
  • 更快的发展。逻辑应用程序允许您更快地构建解决方案,尤其是当您认为您不必为逻辑应用程序开箱即用的监控视图、警报和错误处理编写代码时。
  • 易于扩展。如果您已经在使用逻辑应用程序访问超过 125 个连接器到各种服务,那么只需很少的额外努力,就可以轻松地增加业务价值或通过将认知服务等内容添加到您的工作流程中来使其变得更智能。

出于以下原因,我决定远离逻辑应用程序:

  1. Azure 外部不支持它。我们不与任何其他提供商绑定,使用逻辑应用程序会破坏这种独立性。
  2. 我不知道使用逻辑应用程序可以轻松解决多少问题。 (看来我将解决各种问题,如果我使用 C# 就不会是问题。This article 详细说明了在使用早期版本的逻辑应用程序开发简单流程时遇到的一些问题。)
  3. 没有人提出比我上面给出的理由(尤其是第一个)更有说服力的论据,说明为什么我们应该使用它,所以这将是一场赌博得不偿失。

您可以将 Logic Apps 想象成一个编排器 - 它采用外部功能,并将工作流编织在一起。

这与您的要求无关 "writing code" - 您的代码可以是任何平台上的外部函数 - 本地、AWS、Azure、Zendesk,您的所有代码都可以使用逻辑应用程序。

无论您选择哪个平台,您仍然会遇到监控、日志记录、警报、部署等交叉问题,而逻辑应用程序非常强大地满足了所有这些要求。