【发布时间】:2016-10-12 10:11:58
【问题描述】:
目前我们的数据库在客户的本地网络中工作,我们在 C# 上有客户端应用程序来使用数据。由于一些业务需求,我们得到了开始将所有内容迁移到 Azure 的命令。 DB 将迁移到 Azure SQL。
我们讨论了访问数据库的问题。有两点:
- 有人说我们必须在我们的应用程序(将在最终用户 PC 上的 Azure 之外运行)和 SQL Azure 之间再添加一层。换句话说,他建议添加 API 服务,将所有请求翻译到 DB,即
app(on-premises) -> API service (on Azure)-> SQL Azure。这种方法看起来更可靠和安全,因为我们将 SQL Azure 隐藏在 API 服务的外观后面,并且应用程序只与我们的 API 服务对话。它看起来更像是一个反向代理。显然,在这个 API 之后,我们可以构建更复杂的 DB 结构。 - 另一个人建议直接连接到 DB,即
app(on-premises) -> SQL Azure。到目前为止,我们还没有计划改变数据库的结构甚至增加数据库的数量。他声称它更简单,我们可以以同样的方式保护我们的连接。拥有仅将我们的查询重新转换为 DB 并返回的附加服务似乎在浪费时间。将来,如果需要,我们会添加此 API。
你会选择和推荐什么,为什么?
几点注意事项:
- 我们将使用 Azure AD 对用户进行身份验证。
- 我们的应用程序也将迁移到 Azure,但稍后(1-2 年内),我们计划创建 REST API 并迁移到瘦客户端,而不是我们现在拥有的胖客户端。
- 良好的性能是我们的目标,我们不想添加会降低性能的额外内容,但安全性也是我们最重要的目标。
【问题讨论】:
-
好吧,说了这么多,我相信创建中间 API 是可行的方法。
标签: azure architecture azure-sql-database