首页 > 解决方案 > 针对 AWS 和 Azure 的应用程序的单一代码库,用于传递服务,例如服务总线、blob、SQS/SNS 等

问题描述

我有多个部署在 Microsoft Azure 中的应用程序。这些应用程序使用 Microsoft 的各种库来与 Azure Servicebus(主题和队列)、Blob 等服务进行交互。有一个新要求是这些应用程序应该在 AWS 上运行以及在 Azure 上运行。由于服务总线,blob 非常特定于 Azure。它们在 AWS 中不可用。AWS 具有等效的服务,例如 SNS/SQS、S3 存储桶等。AWS 具有不同的 SDK/库来与这些服务进行交互。

这是一个问题,因为我必须维护两个不同版本的应用程序,一个用于 Azure,另一个用于 AWS。这很难维护,我想避免。

是否有任何框架/模式/方法可以将供应商特定的细节抽象为服务总线或 blob,并使用单个代码库与 AWS 和 Azure 一起工作

标签: amazon-web-servicesazureamazon-s3cloudservicebus

解决方案


尽可能多地 Dockerize 并创建一个核心项目,在其中安装所有 Azure 和 AWS nuget 包,然后创建一个抽象层以使用核心项目中连接到 Azure 或 AWS 服务的方法。

您可以使用 Azure 和 AWS 的包创建此核心层,并根据当前配置(或正在部署的云)使用 azure 包或 AWS 包中的方法。


推荐阅读