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