了解Azure中角色应用程序的服务方式



我工作的公司希望开发一些针对云的应用程序。

  • Azure Web角色中托管的ASP.NET Web Api应用程序
  • Azure工作角色中托管的Windows Server类型应用程序

我们对网络或云开发完全陌生,希望了解以下内容:

在向使用者提供服务时,是向所有人提供相同的应用程序实例,是每个请求一个,还是创建多个角色并向使用者提供?

在向消费者提供应用程序时,是否向所有人提供相同的应用程序实例?

这取决于你要求Azure在多少个实例上运行你的应用程序。如果你只部署了一个实例,那么它当然是响应所有请求的同一个实例。但是,如果您部署到多个实例,请求将是负载平衡的,这意味着您不能保证来自同一用户的多个请求将由同一实例处理。

当你问这个问题时,可能是因为你可能会想把本地数据存储在运行实例的机器上。然而,这不是一个好主意。Windows Azure可以随时拆除您的实例,并在完全不同的计算机上启动您的应用程序。他们称之为"治愈",因为它通常是因为Windows Azure试图提供帮助,避免任何可能意味着实例停机的潜在问题。但如果你的机器因某种原因锁定或发生其他不好的事情,也会发生这种情况。这个愈合过程意味着任何不属于部署包的东西都将丢失。因此,例如,如果您正在登录到磁盘上的一个文件,那么如果Azure"修复"您的实例,则此日志将丢失。

是每个请求一个,还是创建多个角色并为消费者提供服务?

我不完全确定你在这里的意思,所以我猜一猜,冒着误解你的问题的风险。我的猜测是,您在询问每个用户请求是否会有一个实例。不,只有您决定的实例数量。请记住,您必须为每个正在运行的实例付费,因此运行的实例数量由您决定才是公平的。

当您的应用程序打包并准备部署到Windows Azure时,您可以决定每个角色要运行多少个实例。您在部署包中设置了此数字,以便在部署包时,Azure将自动启动请求数量的实例。但是,您可以在部署后随时更改每个角色的运行实例数。这使您可以在几分钟内扩展到更多实例。

我希望这能有所帮助,我能正确理解你的问题。:-)

Azure云服务中的Azure Web和Worker角色至少部署在一个实例(托管VM)上。Azure允许您调整大小(内存、CPU)和规模(实例数)。Azure实际上允许您动态扩展,即根据需要添加更多实例。你按小时支付尺寸&部署的实例数。

例如,一个云服务可以有一个工作者角色的单个实例(后台处理)和多个Web角色的实例。多个实例在负载均衡器后面处理,客户端不知道它们使用的是什么实例(所有实例都创建为相等)。

Azure角色实例是一个具有特定负载的VM。

例如,在您的服务中,您声明需要三个"前端"web角色实例和两个"后端"工作者角色实例。当Azure部署您的服务时,它会启动五个虚拟机,其中三个虚拟机将运行"前端"负载并启动IIS,其中两个虚拟机运行"后端"负载并没有启动IIS。

现在,在您要求Azure更改该配置之前,无论出现什么请求和负载,它都将保持持久性。您有五个具有3+2配置的虚拟机。要更改配置,您需要自己采取一些行动。

有两种方法可以更改配置。您可以使用管理门户或外部程序更改任一角色或两个角色的"实例计数"。您还可以添加自动缩放代码,这些代码将收集指标并发出管理API请求以更改"实例数"。无论哪种方式,当"实例计数"上升时,Azure都会启动更多具有相同负载的虚拟机,当它下降时,它会停止一些虚拟机。

相关内容

最新更新