我们在 Azure 上托管了多个应用程序。我们已经开始看到需求增加,并希望制定一些策略来构建/重新构建我们的应用程序以响应对 Azure 的需求。
为规模而设计并成功地扩展了数百到数千个同时用户的人:您能否提供有关如何解决这些问题的建议。您是如何发展这种专业知识的?聘请培训师?内部开发专业知识?
我们在 Azure 上托管了多个应用程序。我们已经开始看到需求增加,并希望制定一些策略来构建/重新构建我们的应用程序以响应对 Azure 的需求。
为规模而设计并成功地扩展了数百到数千个同时用户的人:您能否提供有关如何解决这些问题的建议。您是如何发展这种专业知识的?聘请培训师?内部开发专业知识?
大卫是对的;你的问题没有单一的答案。由于您专门参考了 Azure,我建议您考虑两件事。
正如 Adrian 所指出的,Azure 中的旋钮和开关会在规模问题上抛出更多的机器,并且这些可以在短期内起作用。最终,糟糕的应用程序设计将永远成为瓶颈。为此,我将研究属于通用概念的云设计模式 ( https://msdn.microsoft.com/en-us/library/dn568099.aspx ),但示例是特定于 Azure 的。总之,这两件事是你需要知道的。
实际上,您可以通过增加应用服务计划中的实例和增加定价层来扩展您的 Web 应用。您还可以配置自动缩放,以便运行 Web 应用程序的实例数量随负载自动增加。您还希望通过移动到另一个服务层并可能添加异地复制来扩展您的数据库。有关如何使用这些技术以及其他一些资源的完整概述,请参阅: https ://azure.microsoft.com/en-us/documentation/articles/web-sites-scale/
更一般的架构意义上的扩展超出了答案的范围,因为正如 David 所提到的,有各种各样的有效方法(即将应用程序功能分离到微服务中,添加缓存,使用 CDN 等)。