超越本地工具管理Azure开发

日期: 2014-05-25 作者:Dan Sullivan翻译:滕晓龙 来源:TechTarget中国 英文

在很多方面,可靠的开发实践通常是不拘泥于特定编程语言、平台以及应用程序的,但是在某些情况下,技术比其他因素是更有用的。而为云计算应用进行开发就是这样的一个情况。尤其是在为微软公司的Windows Azure开发应用程序时,谨记以下三点将是大有裨益的:一是使用专为该平台设计的工具,二是针对分布式处理应用进行设计开发以及为提升性能而进行计划。 使用Windows Azure的专用工具 毫不奇怪,微软公司的旗舰开发工具Visual Studio拥有一套专供Windows Azure开发使用的工具。

你可以使用Visual Studio中的Windows Azure工具;具体的应用步骤随版本不同而不同。……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

在很多方面,可靠的开发实践通常是不拘泥于特定编程语言、平台以及应用程序的,但是在某些情况下,技术比其他因素是更有用的。而为云计算应用进行开发就是这样的一个情况。
尤其是在为微软公司的Windows Azure开发应用程序时,谨记以下三点将是大有裨益的:一是使用专为该平台设计的工具,二是针对分布式处理应用进行设计开发以及为提升性能而进行计划。

使用Windows Azure的专用工具

毫不奇怪,微软公司的旗舰开发工具Visual Studio拥有一套专供Windows Azure开发使用的工具。你可以使用Visual Studio中的Windows Azure工具;具体的应用步骤随版本不同而不同。当你在开发一个新项目时,你将能够选择一个Windows Azure Project并在你的项目中添加Web和worker角色。Web角色是用于运行微软IIS实例的;而worker角色则是禁用微软IIS的Windows虚拟机。一旦你已创建了你的角色,那么你就可以添加应用程序的特定代码。

Visual Studio允许你设置服务配置参数,例如实例数量、虚拟机大小、是使用HTTP还是HTTPS,以及诊断报告等级等等。在通常情况下,它有助于开发人员开发初期在本地对应用程序代码进行调试。与在Windows Azure中运行应用程序相比,在本地运行你的应用程序可能更需要不同的配置设置,但是Visual Studio可允许使用多个配置文件。你将只需要为每个环境选择一个合适的配置文件。

这个工具包包括了Windows Azure计算仿真器,这个工具可支持查看诊断日志和存储仿真。

如果缺少一个让你能够发布你的应用程序至云计算的过程更流程化的工具,这样的Windows Azure工具将是不完整的。这样的一个发布功能会允许你指定一个配置和环境(例如生产的环境)以及一些高级功能,例如启用剖析和IntelliTrace ——后者是一个收集关于应用程序执行等详细事件信息的调试工具,它可允许开发人员查看应用程序在执行过程中的状态变化。

针对分布式处理进行设计开发

当开发和部署代码时,Visual Studio的Windows Azure工具将是有一定帮助作用的。在此之前,时刻记得开发的代码是针对云计算环境的,尤其是为分布式环境而开发的,那是非常有益的。以下的提示将有助于防止导致糟糕性能和漫长调试与运行时分析等潜在问题的发生。

为云计算环境(以及其他网络应用程序)开发分布式应用程序的一个基本原则就是不要在网络服务器存储状态信息。确保你的应用程序与网络服务器层是非状态相关的,做到这一点可实现更灵活可变的应用程序。你可以在可变数量服务器前部署一个负载平衡器,而且这样做并不会中断应用程序的运行。如果你计划利用Windows Azure改变所部署服务器数量的功能,那么这一做法是特别重要的。这一配置还有助于打补丁。例如,每次需要对一台服务器执行打补丁操作时,我们可以在其他服务器继续运行的情况下进行,这样也就保持了你的应用程序的可用性。

即便是在分布式应用程序中,还是存在着对性能产生不利影响的瓶颈问题。例如,你的应用程序的多个实例可能会同时对一个数据库执行查询操作。如果查询调用是同步执行的,那么就完全有可能消耗完一台服务器上的所有可用线程。C# 和 VB这两种编程语言都支持异步调用,而这种调用方式将有助于降低资源阻塞风险的出现概率。

为优化的性能进行计划

在云计算中维持足够性能的关键在于为扩展你所运行的服务器数量以及分割你的数据与工作负载而进行设计开发。诸如无状态会话这样的设计功能将有助于实现这样的分割和扩展功能。避免(或者至少是最小化)跨多个工作负载的全局数据结构将会降低在你的工作流中出现瓶颈问题的风险。

如果你计划把一个SQL服务器应用程序迁移至Windows Azure,那么你就应当评估如何能够最好地利用云计算不同存储类型的优势。例如,在你的SQL服务器数据库中存储博客数据结构可能是有意义的,但是在Windows Azure云计算中,这可能会降低存储成本而无需对你应用程序代码做出显著重写。如果你使用的是高度非归一化的数据模型而不是利用SQL服务器的关系型业务的优势(例如连接和过滤),那么表存储将是你应用程序的一个更为经济的选项。

作者

Dan Sullivan
Dan Sullivan

Dan Sullivan是一名作家、系统架构师和顾问,拥有超过20年关于先进的分析、系统架构、数据库设计、企业安全、商业智能的IT从业经验。他的从业范围广泛,包括金融服务业、制造业、医药、软件开发、政府、零售、天然气和石油生产、发电、生命科学和教育。

相关推荐