文件存储解决方案架构 - Azure Blob 存储

File Storage Solution Architecture - Azure Blob Storage

我有 3 个应用程序开发团队,他们都需要 store/retrieve 从 azure blob 存储中的文件到他们的应用程序。我希望他们都以一种简单、标准化的方式实现这一点。我被要求为这个问题实施一个通用的解决方案。

我会指出,访问 ABS 时还需要从不同的服务中检索配置信息。

文件大小从几 kb 到几 gb。

我有几个选择,我应该:

  1. 创建一个文件服务 rest api,它通过 http 接受来自这些客户端的请求,然后处理与 ABS (upload/download/query) 的交互。对我来说,这引入了一个不必要的中间人并增加了文件请求的开销。一个优点是隔离,另一个是为开发人员抽象掉任何复杂性。

  2. 为客户端创建一个 SDK 包装器以与 ABS 交互。优点是这是一个简单的解决方案,并且是所有团队的统一实施。缺点是我需要支持 .net 标准 2.0,因为 1 个客户端是 .NET Framework 4.8。

  3. 让车队直接用官方的ABS SDK调用ABS,我觉得已经很简单了吧?缺点是他们还需要自己调用配置服务,他们也可能会以不同的方式使用 ABS sdk = 不是业务的标准化实现。

  4. 其他

我们的首席架构师不确定哪条路是最好的。我认为选项 2 最符合我们的需求。

我很想听听您对这个问题的看法。

谢谢。

无论是实施文件服务还是创建 SDK 包装器都几乎不会增加任何价值。更有可能的是,它增加了复杂性,限制了功能并降低了性能。微软已经有人在开发优秀的 SDK。您是否计划在短期和长期内匹配该投资以提出更好的方案?

相反,我会专注于将它集成到您​​的特定环境中:

  • 您可以提供模板或少量代码,根据环境(本地、测试、生产等)获取正确的存储容器
  • 您可以提供模板、代码或说明来解决身份验证(例如,通过获取安全存储的凭据)。
  • 您可以增强 CI/CD 管道和测试环境,使每个环境都有自己的存储容器,可能还有相关的测试数据。