2.3 Windows Azure平台成本及性能案例分析
目前,Windows Azure还是一个全新的平台,网上已经有很多国外公司的案例分析和访谈。不过这里作者想基于本人经历的几个项目,展示一下使用Windows Azure平台之后对于成本和性能两方面的总结。
2.3.1 北欧某健康资讯网站
· 项目背景:此项目是微软在全球首批商用项目之一,访问量中等。
· 项目目标:项目分为两期,第一期是构建一个传统本地部署的网站,第二期是迁移到Windows Azure平台。
· 使用技术:ASP.NET 3.5、Windows Azure、SQL Azure。
· 人力成本
■ 第一期:4名开发人员8个月时间。
■ 第二期:2名开发人员2周时间。
■ 可以看出,对于现有基于ASP.NET开发的网站迁移到Windows Azure平台来说,实施起来还是比较方便、快速的。这也是微软Windows Azure平台开发一致性优势的体现。
· 运维成本:图2-7反映了随着访问量的增加,传统的部署方式和Windows Azure平台的部署方式在运维上的投入情况对比。可以看出在项目初期基于Windows Azure平台部署仅需非常小的IT投入,而且访问量增加之后由于Windows Azure的易扩展性,运维成本也低于普通部署的方式。
图2-7 基于传统部署和Windows Azure部署的运维成本对比
· 性能测试:由于本项目相对较早地使用了Windows Azure平台,开发团队对在挪威普通部署的网站和Windows Azure部署的网站进行了简单的压力测试。如图2-8所示,从测试结果看,在访问量和并发较小的情况下,普通服务器部署和Windows Azure部署并无太大的性能差别。但是随着并发量的增加,Windows Azure部署方式仍能获得较快的响应速度,而普通服务器在400并发的情况下已经出现了无法访问的情况。
图2-8 基于传统部署和Windows Azure部署的性能对比
2.3.2 挪威某零售业管理系统
· 项目背景:此项目是为挪威某知名零售业管理系统供应商开发的一套分布式零售、库存管理系统。按照传统的软件包形式发售,分布式系统的服务端部署在客户的服务器上或第三方服务器供应商,客户自己承担运维工作。
· 项目目标:将原本部署在客户或第三方服务器供应商的服务端部署到Windows Azure平台,并且使之支持多租户模式。将现行的软件包发售形式逐步转变为SaaS(软件即服务)模式。
· 使用技术:ASP.NET 4.0、WCF、Windows Azure、SQL Azure、Windows Azure AppFabric。
· 人力成本
■ 人力投入:1名Azure咨询师,2名开发人员,1名项目经理。
■ 估算时间:1周设计时间,1.5个月开发和部署时间。
· 运维成本估算(表2-4):
表2-4 运维成本估算
此项目是一个比较典型的传统项目向Windows Azure平台迁移的例子。Windows Azure平台不仅可以从现有系统平滑过渡,而且由于Windows Azure和SQL Azure的易于部署和基于使用量付费的特性,非常适合构建SaaS产品。
2.3.3 某企业应用平台
· 项目背景:一个面向企业同时支持本地部署和Windows Azure部署的应用程序平台,为部署到该平台的应用程序提供了社会化网络(SNS)的消息推送机制、数据建模和通用数据访问层,同时提供缓存、多租户模型和统一的界面元素。
· 项目目标:平台和应用代码无须修改即可同时支持本地和Windows Azure部署。
· 使用技术:.NET 4.0、WCF、Windows Azure、SQL Azure。
· 人力成本
■ 项目开发:3名架构师,2个月完成第一个版本。
■ Windows Azure部署确认:1名开发人员2天时间。
这个项目是Windows Azure平台推出以后的一个,既要照顾普通部署又要照顾Windows Azure部署的典型项目。从人力成本可以看出,如果在项目的设计阶段就意识到Windows Azure平台部署的话,后期的迁移成本几乎没有。
目前为止,我们已经简单地介绍了Windows Azure平台的功能特性、组成内容、各自特点、计费模式和案例分析。从下一章开始,本书将会深入Windows Azure平台的每个部分,通过一个贯穿全书的例子,介绍具体功能、使用方式以及注意事项。