2016-03-16 15 views
2

我有一个现有的Web API 2项目,我打算将其移至Azure Service Fabric。我正计划在Fabric中创建一个单一的无状态服务,详情如下here(主要是因为我目前不了解演员/服务!)并将API移到整个范围。将Web API移动到结构时的注意事项

我的API使用Entity Framework作为后端,使用OWIN构建个人帐户。

移动服务时我需要考虑什么(我主要认为数据库和身份验证可能是问题),还是只是将服务结构层置于顶层?

感谢

编辑

我有更多的思想关于这一点,有一些更多的问题(根据@米哈伊尔的评论)!

所以我将有很多无状态的服务,(所以我分裂我的Web API项目上),这将通过一个Web API项目(基于this

所以暴露了两个问题真的:

  1. 我需要基于个人帐户验证用户。我认为我应该在Web API前端执行此操作,以便只有经过身份验证的用户才能访问Fabric服务,但这意味着API可以访问数据库,并且它不仅仅是一次通过。这个可以吗? API是否应该调用微服务进行身份验证,然后调用它需要的服务,或者这是否过分矫枉过正?

    1. 实体框架。如果我有很多服务(和API前端)访问相同的数据库,我不得不担心并发连接/锁定,否则Entity Framework会为我处理?
+0

数据库和认证应该没有问题。要考虑的是为什么你需要SF,如果你只有Web API,但我认为这只是开始。 – Mikhail

+0

@Mikhail我已经更新了我的问题,因为我已经进行了关于Fabric的进一步调查,以及您对仅有一个API的评论。这仍然不是问题吗? – ADringer

+0

对你的问题:1.两者都OK。将身份验证分离为单独的服务可能会更简洁。 2.再次,这里没有特定的SF。如果您使用.NET的标准连接池,则不会出现并发问题。 – Mikhail

回答

-1

正如米哈伊尔说,围绕实体框架和认证问题,应该不会有什么问题,或者至少不是一个服务织物具体问题。

需要考虑的一件事就是服务结构在这里是否合适,如果您只有一个简单的API,或者Azure API app会更适合您。

如果你使用Service Fabric,你必须至少有5个虚拟机,所以你需要考虑你的应用程序是否需要5个虚拟机或者这是否是一个矫枉过正的问题。另外请记住,您需要管理这些虚拟机 - 您无法获得PaaS解决方案给您带来的魔力。您还必须处理某些API,比如自动缩放,身份验证,速率限制,与SaaS应用程序的集成等API应用程序的开箱即用。值得看看这个SO question服务结构和应用服务之间的比较。

+3

我相信这个答案有点误导。如果您在Azure中托管Service Fabric集群,则它是PaaS解决方案,您不必手动管理VM。您将能够从门户扩展集群,并且自动缩放肯定在路线图上。 – Mikhail

相关问题