Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.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
在我的本地计算机上创建azure VM_Azure_Azure Web Roles_Azure Virtual Machine_Azure Vm Role - Fatal编程技术网

在我的本地计算机上创建azure VM

在我的本地计算机上创建azure VM,azure,azure-web-roles,azure-virtual-machine,azure-vm-role,Azure,Azure Web Roles,Azure Virtual Machine,Azure Vm Role,是否可以在我的本地计算机上创建一个或多个azure VM?我想创建一个web应用程序并在本地对其进行负载测试,而无需将其放入云中。我在考虑以下场景:我有一个本地虚拟机运行一个IIS服务器和我的web应用程序;我使用一个工具来产生大量的负载;我需要部署第二个VM,它包含与第一个VM相同的内容。web应用程序的停机时间应等于0(希望如此) 澄清(更新): 我想实现以下目标:创建一个web应用程序和一个监控应用程序(CPU、内存),并将它们部署到一个VM上。在负载测试中,如果虚拟机无法处理它(例如CP

是否可以在我的本地计算机上创建一个或多个azure VM?我想创建一个web应用程序并在本地对其进行负载测试,而无需将其放入云中。我在考虑以下场景:我有一个本地虚拟机运行一个IIS服务器和我的web应用程序;我使用一个工具来产生大量的负载;我需要部署第二个VM,它包含与第一个VM相同的内容。web应用程序的停机时间应等于0(希望如此)

澄清(更新):
我想实现以下目标:创建一个web应用程序和一个监控应用程序(CPU、内存),并将它们部署到一个VM上。在负载测试中,如果虚拟机无法处理它(例如CPU超过80%),我希望以编程方式部署一个新的虚拟机(具有相同的配置,同时具有web应用程序和监控应用程序),这样就不会发生停机。

Azure有几种方法可以让您托管站点

  • 虚拟机只是普通的虚拟机。您可以在本地创建并上传它们,但一切都取决于您,包括如何处理升级。如果这是你需要做的,那么我不知道你将如何在没有停机时间的情况下处理升级;不过,您可以将多个VM添加到负载平衡器中,然后一次升级一个VM
  • 听起来你真正想探索的是云服务。您可以在emulator中本地运行一个或多个虚拟机,在云中进行升级而无需停机,实现自动缩放(您必须使用工具或编写一些代码)
  • 或者,您可能希望查看Azure网站,但这是一个完全不同的概念,您无法以相同的方式在本地测试负载和负载平衡
根据您的陈述,您基本上希望自动扩展您的应用程序,您希望查看具有自动扩展功能的云服务。但是,您不能在云仿真程序中完全测试这一点,但是您可以测试您的逻辑

背景 Azure云服务就是为这种事情而设计的;您并没有以您可能习惯的方式真正使用VM,而是创建了一个包,Azure然后将其部署到任意数量的服务器上。一旦启动并运行,您可以手动进入管理控制台,只需移动滑块即可增加或减少活动服务器的数量。当然,您希望自动执行此操作,因此您有几个选项

有一个管理API可用于更改服务器的数量。因此,在WebRole.Start的另一个线程中编写一段代码并启动,这将是非常简单的,它只需安装并监视机器上的CPU,然后在CPU超过某个树级时调用管理API来启动新的服务器实例。好的,在本地,您只能测试对管理API的调用是否已完成,您实际上不会看到新服务器即将出现。但是,如果你抓到Azure的免费试用版,只要试一下,你就会发现你真的不需要测试那部分——它就可以工作了

然而,在实践中,自动缩放还有很多工作要做。以下是你需要考虑的一些事情;
  • 即使是相对空闲的web服务器也会短暂地达到100%,所以仅仅拥有一个简单的treshold是不够的;在启动另一个服务器实例之前,您需要决定服务器需要在某个树上运行多长时间
  • 当您有多台服务器时会发生什么情况?而且,在Azure上,您应该始终至少有两台服务器,以确保您具有弹性。请注意,云服务的想法实际上是拥有许多小型服务器,而不是几个大型服务器。您按核心付费,而不是按服务器数量付费。
    • 假设您当前有三台服务器,其中一台由于某种原因非常繁忙,另两台处于空闲状态。你想启动第四台服务器吗
    • 假设您当前有两台服务器,它们都很忙。您真的希望他们都启动一个新服务器,这样您就可以运行四台服务器了吗
有几种方法可以应对这些挑战。对于初学者来说,与其让监控程序在每台服务器上本地运行,不如将监控转移到外部;Azure能够以您选择的任何时间间隔将性能指标转储到表存储。然后,您可以运行一个外部程序,从当前所有服务器检索性能数据,然后在决定启动或关闭其他服务器之前对总体工作负载进行分析。现在,您当然可以在每个WebRole上的单独线程中托管该外部监控程序,以增强监控弹性,但关键是监控程序不会监控其运行的服务器,而是监控所有服务器。当然,您仍然需要处理从所有启动和停止服务器停止多个监控程序实例的问题。一种方法是将停止/启动命令放在Azure“消息队列”(有几种不同类型)上,并使用内置的“重复数据消除器”,它将自动删除在特定时间窗口内放在队列上的相同命令(我太简单了,但你明白了)

实际答案 不过,你真的想看看能帮你解决大部分问题的方法。我想这才是你问题的真正答案,但我想先提供一点背景。
再一次,我承认你问过如何在本地测试这个问题,但我相信这个问题在Azure环境中没有真正意义,我希望上面的信息能有所帮助。

我很确定你不能这样做,而且无论如何也没有意义。如果您想要进行负载测试,您需要在尽可能类似于生产环境的环境中运行负载测试,这意味着您必须在Azure云上运行应用程序。否则,您怎么知道加载实际上会在real cloud上得到很好的处理?

谢谢您的回答。我想实现以下目标:创建一个web应用程序和