我工作的公司正在寻求开发一些针对云的应用程序。
- 托管在 Azure Web 角色中的 ASP.NET Web Api 应用程序。
- 托管在 Azure 辅助角色中的 Windows Server 类型的应用程序。
我们对 Web 或云开发完全陌生,想了解以下内容:
在为消费者提供服务时,是否为所有人提供相同的应用程序实例,是每个请求一个,还是创建多个角色并将其提供给消费者?
我工作的公司正在寻求开发一些针对云的应用程序。
我们对 Web 或云开发完全陌生,想了解以下内容:
在为消费者提供服务时,是否为所有人提供相同的应用程序实例,是每个请求一个,还是创建多个角色并将其提供给消费者?
向消费者提供服务时,是否向所有人提供相同的应用程序实例?
这取决于您要求 Azure 在多少个实例上运行您的应用程序。如果您只部署到 1 个实例,那么它当然是响应所有请求的同一个实例。但是,如果您部署到多个实例,请求将被负载平衡,这意味着您无法保证来自同一用户的多个请求将由同一实例处理。
当您问这个问题时,可能是因为您可能想在运行实例的机器上存储本地数据。但是,这不是一个好主意。Windows Azure 可以随时拆除您的实例并在完全不同的机器上启动您的应用程序。他们称之为“修复”,因为它通常是因为 Windows Azure 试图提供帮助并避免任何可能意味着您的实例停机的潜在问题。但是,如果您的机器由于某种原因锁定或发生其他不好的事情,也会发生这种情况。这个修复过程意味着不属于您的部署包的任何内容都将丢失。因此,例如,如果您正在登录到磁盘上的文件,那么如果 Azure “修复”您的实例,该日志将会丢失。
是每个请求一个,还是创建多个角色并提供给消费者?
我不完全确定你在这里的意思,所以我会猜测并冒险错误地解释你的问题。我的猜测是您在询问每个用户请求是否会有一个实例。不,只有您决定的实例数量。请记住,您必须为每个正在运行的实例付费,因此运行的实例数量由您决定是公平的。
当您将应用程序打包并准备好部署到 Windows Azure 时,您可以决定要运行的每个角色的实例数。您在部署包中设置此数量,以便在部署包时,Azure 将自动启动请求数量的实例。但是,您可以在部署后即时更改每个角色的运行实例数。这使您可以在几分钟内扩展更多实例。
我希望这会有所帮助,并且我正确理解了您的问题。:-)
Azure 云服务中的 Azure Web 和 Worker 角色至少部署在一个实例(托管 VM)上。Azure 允许您调整大小(内存、CPU)和缩放(实例数量)。Azure 实际上允许您动态扩展,即按需添加更多实例。您按小时为部署的实例的大小和数量付费。
例如,一个云服务可以有一个工作者角色(后台处理)实例和多个 Web 角色实例。多个实例在负载均衡器后面处理,客户端不知道它们正在使用什么实例(所有实例都是平等创建的)。
Azure 角色实例是具有某些特定负载的 VM。
例如,在您的服务中,您声明需要三个“前端”Web 角色实例和两个“后端”工作者角色实例。当 Azure 部署您的服务时,它会启动五个 VM,其中三个将运行“前端”有效负载并启动 IIS,其中两个将运行“后端”有效负载并且没有启动 IIS。
现在,除非您要求 Azure 更改该配置,否则无论收到什么请求和发生什么负载,它都会保持不变。您有五个具有 3+2 配置的 VM。要更改配置,您需要采取一些措施。
有两种方法可以更改配置。您可以使用管理门户或外部程序来更改其中一个或两个角色的“实例计数”。您还可以添加自动缩放代码,这些代码将收集指标并发出 Management API 请求以更改“实例计数”。无论哪种方式,当“实例计数”上升时,Azure 会启动更多具有相同负载的 VM,而当它下降时,它会停止一些 VM。