Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Architecture Azure架构问题_Architecture_Azure - Fatal编程技术网

Architecture Azure架构问题

Architecture Azure架构问题,architecture,azure,Architecture,Azure,请告诉我我下面的推理是否正确 据我所知,当您构建Azure应用程序时,您是自下而上构建它的,同时考虑到云(例如,Azure应用程序中对数据库等资源的处理与旧标准应用程序中的不同) 这意味着您无法开始构建业务关键型Azure应用程序,然后出于某种原因(可能您对性能或其他方面不满意)最终决定以旧式方式托管它 我是否正确理解了这一点?在某种程度上,推理是正确的——某些云资源,如Azure表存储,在非托管世界中没有对应的功能 这就是说,Azure为您所做的大部分工作都可以通过数据库、队列(如MSMQ或T

请告诉我我下面的推理是否正确

据我所知,当您构建Azure应用程序时,您是自下而上构建它的,同时考虑到云(例如,Azure应用程序中对数据库等资源的处理与旧标准应用程序中的不同)

这意味着您无法开始构建业务关键型Azure应用程序,然后出于某种原因(可能您对性能或其他方面不满意)最终决定以旧式方式托管它


我是否正确理解了这一点?

在某种程度上,推理是正确的——某些云资源,如Azure表存储,在非托管世界中没有对应的功能

这就是说,Azure为您所做的大部分工作都可以通过数据库、队列(如MSMQ或Tibco)、网络文件系统等的组合来复制。NoSQL数据库(如MSMQ或Tibco)可以在您自己的基础设施上提供托管云的可伸缩性,但它们需要重新审视您对数据访问所做的一些假设。微软还推出了一款本地复制Azure环境的产品


最后,在云和非托管环境之间移动所涉及的工作量取决于代码的性能,特别是在数据访问和进程间通信方面。

是的,但仍然。。。例如,如果您为客户编写Azure应用程序并将其部署到云中:-如果客户后来决定自己托管该应用程序,该怎么办?(可能有很多原因:性能、安全性、非战略性供应商锁定、成本等)在这种情况下,您必须再次让开发人员参与,再次测试,等等(可能是也可能不是同一个人)。您不能通过简单地更改某一行配置参数等来切换到传统主机(当然,除非您从一开始就意外地为“双平台”构建了它,并在两个平台上测试了它,等等)

我认为Azure作为一个托管选项,在应用程序设计上感觉相当入侵

那么Web角色/工作人员角色的东西呢?这是将您进一步锁定在Azure上的东西吗?它是可以轻松移动到传统ASP.NET Web应用程序/Windows服务的东西吗


抱歉,我是如此迟钝的怀疑论者!;-)

有两种主要的方法:

  • 您可以在内部移动应用程序,而无需在Azure Appliance上运行任何更改

  • 您可以设计解决方案,这样就不会使用Azure特有的功能。例如,将数据存储在Azure SQL中,而不是存储在Azure表存储中。内置ASP.NETMVC的web前端将在Azure和IIS上运行


  • 如果您在设计业务系统时考虑到解耦和域驱动设计,那么迁移到云(Azure、Amazon等)、扩展、分发或执行任何需要的操作都将非常容易

    请记住以下几点:

    • 消息传递
    • 领域驱动设计
    • 原则

    我相信,当涉及到IaaS(操作系统、托管环境)时,迁移到内部部署可能并不困难。但如果我们大量使用不同的服务,云供应商提供的服务是PaaS的一部分,那么在迁移过程中我们将不得不面对这个负担。

    我同意Chris的观点。作为一个特别的例子,如果您的应用程序只是带有SQL Azure的ASP.NET,那么在带有SQL Server的标准IIS盒上运行它是微不足道的。+1扩展这个想法,如果您以一种面向服务的方式设计您的应用程序,使您的所有“基础结构”调用(队列、数据、文件)都能完成,您将构建一个不绑定到一个基础架构的解决方案。然后,您可以轻松地迁移到Azure、EC2、rackspace、现场私有云、虚拟化的“传统”数据中心等。最终,即使此时您无意使用云,也可以采用“云方式”进行设计,这是您可以做出的最好的未来证明决策之一。轻微更正,您提供的私有云链接实际上是针对MSFT的HyperV环境的。他们的本地版本Azure,Azure设备,正在开发中,但不要把它与hyperV的东西混淆。+1完全同意。这不仅适用于Azure,还适用于每一项软件和技术。