Aja*_*jay 3 architecture hosting azure
我目前正在为我的新项目设计架构.这有ASP.Net MVC Web客户端和WCF Web服务,用于第三方集成作为前端.
目前,我们将在数据中心租用机架空间托管此应用程序,但将来我们可能会将其移至Microsoft Azure.
我是否必须在我的架构中对Azure进行具体规划?或者我目前的架构有IIS,MSMQ,SQL Server,Velocity等将在Azure中工作而没有太多问题?由于缺乏可用时间,我一直忽视Azure,但需要确保我能够获得适合未来需求的架构.
我需要注意哪些事项?
感谢和问候,
阿贾伊
Mic*_*art 10
这取决于你是否认真考虑转移到Azure以及多久.如果你是,那我就说是的.
不幸的是,能够写一次在任何地方运行的想法是一个梦想.如果平台限制了您的架构选择 - 几乎每个平台都可以做到,那么抽象一切的概念就不起作用了.例如,即使您可以选择数据持久性技术,也几乎可以保证在某些时候遇到阻抗不匹配问题会影响您的设计.
因此,在Azure的情况下,您需要考虑许多问题.
首先,在这个阶段没有MSMQ或Velocity.Azure有它自己的排队组件,它有更多的被动模型(轮询消息,没有路由等),所以你可以使用它,但它不像MSMQ那样是事务性的,你需要它确保所有消息都是幂等的.分布式缓存是我认为的方式,但它还没有(可能不是Velocity).
其次,您可以选择Azure的表存储或SQL Azure数据库来实现类似表的持久性.您选择哪一个可能取决于您在哪里缩放疼痛点.最简单的选择是使用SQL路由,但是在数据库大小方面存在某些限制,并且您将无法使用SQL Server周围的许多服务,例如作业代理,依赖项(用于缓存回调),如果你遇到SQL Server没有扩展的问题,那么在云中运行不太可能有太多帮助,只是因为它仍然是一个RDBMS.如果你想要一个更具伸缩性的解决方案,那么Azure表存储就是你的人 - 但它是非关系型的,你需要修改你的架构以适应它支持的更有限的事务范围 - 以及它的固有局限性.查询REST-HTTP架构的机制和延迟.想想BASE,而不是ACID.
第三,您需要以不同的方式考虑文件存储.由于每个实例的虚拟机运行时,当虚拟机关闭任何本地存储消失,所以长期坚持,你需要使用Azure的Blob存储和设计的App牢记这一点.
第四,您可以选择两种类型的角色 - Web角色,运行IIS(您目前无法控制,在调整IIS参数方面)和工作角色,这更像是Windows服务.并且没有机制让您的角色彼此了解 - 因此从Web到工作人员的通信通过队列或表/ blob存储进行.所以你也需要牢记这一点.
因此,所有起来,大量的设计决策需要做出,如果你想要移动到Azure的 - 该平台,通过它的本性,你可以使用什么样的技术限制,因此,什么样的设计方案是向你敞开.如果您考虑使用Azure进行设计,那么您最终将拥有一个更具固有性的可扩展系统,但是在此过程中需要做出某些决策 - 有些可能是交易破坏者.
[编辑:我应该补充一点,这个答案更多的是考虑将整个应用程序移动到Azure.当然,这不是唯一的选择 - 您可能只希望将某些组件移动到云端并将其余组件保留在本地,例如使用Azure .NET Service Bus进行交互]
| 归档时间: |
|
| 查看次数: |
439 次 |
| 最近记录: |