关于Azure的问题。
是的,我大致了解Azure和云计算。我会这样说的:
说,以正常方式,我构建了一个侦听TCP端口的程序。我在服务器中运行此服务器程序。我还构建了一个客户端程序,它通过指定的端口连接到服务器。连接客户端后,我的服务器程序将计算一些东西并返回给客户端。
以上是正常模型,或者说我的程序模型。
现在我想使用Azure。我想用,因为我的客户太多了,比方说每天100万。我不想租用1000台服务器并维护它们。 (只是假设客户数量)
我查看了Azure定价计划。它说关于CPU并谈论小型,中位数,大型实例。
我不知道他们的意思。例如,在我上面假设的情况下,我需要多少个实例?或者至多我可以从azure获得额外的大(8个小实例?)
Azure如何扩展我的程序?如果我选择小实例(我的服务器程序很少,只计算一些数据并返回客户端),Azure会为我扩展吗?或者Azure只给了我一台真正的服务器并让它超载?
请仅考虑CPU,而不是存储或网络流量。
答案 0 :(得分:3)
您选择两件事:要运行的VM大小(小,中,大)以及要运行的VM数量。这意味着您可以选择一个小型VM(单处理器)并运行100个“实例”(100个VM),或者您可以选择一个大型VM(同一服务器上的八个处理器)并运行10个VM实例(10个VM)
今天,Windows Azure不会自动调整您的规模,因此您可以根据需要增加使用Web门户或Service Management API来增加实例数。
答案 1 :(得分:0)
要考虑的一个因素是,您的应用程序是否可以利用多核环境 - 多线程,共享内存等来提高其规模。如果可以的话,使用5个2x核心(即中型)VM而不是10个1x核心(小型)VM可能更好。在某些情况下,您可能会发现2个4x核心VM的性能优于5个2核。
如果你的应用不是并行/多核,那么你可以只做一些'x'个小型虚拟机。无论如何,费用都是线性的 - 即2核VM是单核的成本的两倍。
其他因素包括暂存盘大小& VM中可用的内存。
另一个建议 - 您可能需要考虑利用Azure队列(即将客户端发布到队列中,然后工作人员从那里开始)。这将允许您透明地(对客户端)增加/减少工作人员而不用担心连接等。此外,如果处理步骤失败并且使您的实例崩溃,则消息将持续存在并被其他人接收。
答案 2 :(得分:0)
我建议您同时监控,评估和完善Azure配置的结果。
对于“在Windows Azure中监控应用程序”(和性能),请参阅 http://channel9.msdn.com/learn/courses/Azure/Deployment/DeployingApplicationsinWindowsAzure/Exercise-3-Monitoring-Applications-in-Windows-Azure/
还有一篇名为“可视化Windows Azure诊断数据”的博客文章
答案 3 :(得分:0)
查看http://www.paraleap.com - 简单服务,根据需求自动调整您拥有的实例数。