最佳实践:Windows Azure 网站 (WAWS)
编辑人员注释:本文章由 Windows Azure
网站团队的项目经理Sunitha Muthukrishna
撰写。
Windows Azure
网站 (WAWS)
允许您在 Windows Azure
上构建可高度伸缩的网站。下面概述了 WAWS
的优势:
有效的资源利用:随着客户群增长,您的应用程序的使用率也会相应增加。您可以基于网站的流量模式主动伸缩您的网站。
基于使用率的成本计算:在按需选择基于云的策略方面,成本起着关键的作用。Azure
网站提供了基于使用率的模型(按增长付费)和 6
或 12
个月的计划以供选择。要了解详细信息,请参阅
Windows Azure
网站定价。更快的上市时间:您可以专注于应用程序,而无需担心基础结构。这样便可以赢得更多时间以释放开发人员的创造力和生产力,这反过来又缩短了应用程序的上市时间。
最佳实践
这些实践有助于您充分利用基础结构提供的 Windows Azure
网站,并为最终用户提供可靠的高性能网站。
构建可伸缩的架构
凭借 Windows Azure
网站,可以在 Azure
上构建可伸缩的解决方案,但前提是您的网站需要充分利用服务提供的可伸缩基础结构,这一点至关重要。下面介绍了设计可伸缩解决方案的几个操作:
1.
架构中的瓶颈可能导致高延迟。您应该识别当前架构中的所有主要瓶颈,其产生的原因有很多,例如,应用程序设计不佳、带宽限制。重构您的应用程序架构,以避免这些瓶颈。
2.
使用不同的规模配置(实例大小和数量的组合)对网站执行负载测试,以便了解常规负载下的正确规模配置。可以使用
Visual Studio
和
Apache Jmeter
等多种工具执行负载测试。
3.
使用 Web
分析工具(如
Google Analytics
或
WebTrends)确定流量模式和您的网站平均每秒收到的请求数。
4.
设置自动伸缩以管理意外的流量高峰。要了解详细信息,请参阅如何伸缩网站。
5.
如果您的应用程序使用数据库层,请集成使用分布式缓存解决方案(如
Azure
缓存服务)来提高性能。
设计可承受故障的架构
尽管 WAWS
提供了高标准的
SLA,但要实现业务连续性,还是要了解在使用云解决方案时存在的服务失败风险以确定减少此类事件影响的方法,这一点很重要。下面介绍了此类情况下减轻影响所必需的一些解决方案:
通过 Windows Azure SDK
或者使用第三方服务(如
Cloud Cellar)构建您自己的工具,来创建自动化备份和还原策略。至少在 2
个数据中心设置网站冗余副本,并且在这些数据中心之间实现入站流量的负载平衡。如果数据中心的服务出现故障,请使用 Global Traffic Manager
设置自动故障转移功能。在您的网站中设置内容分发网络 (CDN)
服务,以通过缓存内容提高性能,并且使网站具有高可用性。如有可能,删除您的 WAWS
网站使用的任何紧密耦合组件/服务的依赖关系。例如,如果您的网站使用了数据库,并且由于某种原因数据库服务在特定时间出现故障,将会导致您的架构出现单点故障。这里的数据库就是一个紧密耦合的组件,但无法从您的架构中删除。在此类场景下:
- 您必须跨多个数据中心进行数据库复制,并且在这些数据库之间设置自动化数据同步以减轻故障转移期间的影响。
- 您必须将您的应用程序设计为在这些情况下具有弹性。
如果您需要依赖组件,复制策略将有助于增强架构可靠性。
在移动到云之前,设计风险缓解策略以减少意外中断
创建测试环境并通过停止站点来模拟故障场景,以便评估您的网站在故障下时的性能
自动化基础结构
除了云解决方案之外,还有许多操作关系到维持网站的成功与否,这包括开发、部署以及各种其他操作。实现这些操作的自动化,可以更轻松地管理您的应用程序递交周期。使用
WAWS REST API,可以访问所有 WAWS
功能,因此自动化变得更加简单。用于管理网站的一些主要操作如下所示:
部署到网站
可以根据您的喜好使用各种部署策略(如
Web
部署、GIT、FTP
等)来向您的网站推送内容。通过Windows
Azure SDK
构建工具,可以简单实现自动化。
使用测试站点进行生产测试
WAWS
支持测试发布,该功能可以对网站的测试版本进行更新部署,并且在更新面向客户的网站之前进行生产环境测试。要了解详细信息,请参阅在
Windows Azure 网站上进行测试发布。
启用诊断日志记录
WAWS
具有内置的诊断功能,可以帮助您对应用程序进行调试。有两种类型的诊断功能:
站点诊断:可以启用详细错误日志记录、失败的请求跟踪和 Web
服务器日志记录。应用程序诊断:可以捕获 Web
应用程序产生的信息。要了解详细信息,请参阅如何在
Windows Azure 网站上启用诊断日志记录。
启用监控
WAWS
支持通过 Monitor
管理页面进行功能监控。可以设置各种指标的警报(如 CPU
时间、HTTP
客户端错误、HTTP
服务器错误等)以持续监控您的网站。要了解详细信息,请参阅如何监控
Windows Azure 网站。
安全性
WAWS
平台遵守安全性和可靠性的主要行业标准,以便为您的客户提供一个安全的平台。但是,如果您的应用程序出现安全漏洞,您的架构就可能容易受到攻击。要在 WAWS
上构建一个安全解决方案,您在构建可以抵御攻击的应用程序时必须遵循安全编码实践。要了解详细信息,请参阅如何编写安全代码。
进一步阅读
本文翻译自:
最佳实践:Windows Azure 网站 (WAWS)的更多相关文章
- 通过 HTTPS 和 SSL 确保 Windows Azure 网站 (WAWS) 安全
编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写. 随着身份盗窃和各种形式的网络犯罪迅速增多,使用安全套接字层 (SSL) 对网站进行保护变得越来越 ...
- Windows Azure 网站 (WAWS) 中的服务器端包含 (SSI)
编辑人员注释:本文章由 Windows Azure 网站团队的项目经理Erez Benari 撰写. Windows Azure 网站客户普遍关心的一个问题是关于我们对服务器端包含(Server ...
- 在 Windows Azure 网站 (WAWS) 上对 Orchard CMS 使用 Azure 缓存
编辑人员注释: 本文章由 Windows Azure 网站团队的项目经理 Sunitha Muthukrishna 撰写. 如果您当前的 OrchardCMS 网站在 Windows Azure 网站 ...
- Windows Azure 网站 (WAWS) 和中间证书
编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写. 在 Windows Azure 网站上使用 SSL 已经司空见惯.虽然向网站上传和分配证书通常简 ...
- 获取证书以用于 Windows Azure 网站 (WAWS)
编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写. 近年来,随着网络犯罪的上升,使用 SSL 保护网站逐渐成为一项备受追捧的功能,Windows A ...
- 在 Windows Azure 网站中进行纵向扩展和横向扩展
编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Byron Tardif 撰写. 当您开始一个新的 Web 项目,或者刚刚开始开发一般的网站和应用程序时,您可能希望从小处着手. ...
- 进一步探索:Windows Azure 网站中解锁的配置选项
编辑人员注释: 本文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写. 在 Windows Azure 网站 (WAWS) 中管理网站时,许多选项可使用 Azu ...
- Windows Azure 网站自愈
编辑人员注释:本文章由 Windows Azure 网站团队的项目经理Apurva Joshi 撰写. 您有多少次在半夜被叫醒去解决一个仅需重新启动网站即可解决的问题?要是可以自动检测一些状况并自动恢 ...
- Windows Azure 网站开发Stacks支持
编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Daria Grigoriu 和 Windows Azure 网站开发人员体验合作伙伴共同撰写. Windows Azure 网 ...
随机推荐
- 错误提示:在此上下文中不允许使用名称 "***"。有效表达式包括常量、 常量表达式和变量(在某些上下文中),不允许使用列名。
出现这种情况的原因,是因为在SQL语句的编写格式不正确. 事例展示: 错误: string sql = "insert into person ([name], sex, salary) v ...
- 读书笔记 - 设计模式(Head First)
设计模式让你和其他开发人员之间有共享的词汇,设计模式可以把你的思考架构的层次提高到模式层面,而不是停留在琐碎的对象上. 设计原则: 封装变化:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需 ...
- MyEclipseアンロックの手順
↓ ↓ ↓ ↓ ↓ ↓
- 《Pointers On C》读书笔记(第二章 基本概念)
1.从源代码到生成可执行程序的过程整体上可以分为两个阶段:编译和链接.其中,编译过程大致上又可分为:预处理.编译和汇编.预处理阶段主要对源代码中的预处理指令(包含宏定义指令<如 #define& ...
- Netty那点事: 概述, Netty中的buffer, Channel与Pipeline
Netty那点事(一)概述 Netty和Mina是Java世界非常知名的通讯框架.它们都出自同一个作者,Mina诞生略早,属于Apache基金会,而Netty开始在Jboss名下,后来出来自立门户ne ...
- ubuntu openstack
https://wiki.ubuntu.com/ServerTeam/CloudArchive/ sudo add-apt-repository cloud-archive:junoLong Term ...
- [ACM] POJ 2253 Frogger (最短路径变形,每条通路中的最长边的最小值)
Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 24879 Accepted: 8076 Descript ...
- 借助树的概率dp(期望)+数学-好题-hdu-4035-Maze
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4035 题目意思: 有n个房间,有n-1条通道连接这n个房间(每两个房间之间有且只有一条路,所以实际上 ...
- xcode 资源管理
我个人觉得这么理解就够了 其他的以后再说
- 关于js封装框架类库之样式操作
在js中,对样式的操作我们并不感到陌生,在很多框架中都是用极少的代码,实现更强大的功能,在这做出一些的总结.存在不足还望指出! 1.封装一个添加css的方法(这篇引用了前面的框架结构) 在 js 中 ...