为什么需要高性能和高可扩展性

发表于:2012-07-04来源:51CTO作者: billliu点击数: 标签:软件测试;性能
《构建高性能可扩展ASP.NET网站》第1章原则和方法,本章首先从性能和可扩展性的差异谈起,接着谈一谈我对高性能和高可扩展性的理解。然后我从一个较高的层次来讲解网页生成的完整过程,并且描述一些核心原则,这些原则是提升网站性能的关键原则。最后介绍一下
  《构建高性能可扩展ASP.NET网站》第1章原则和方法,本章首先从性能和可扩展性的差异谈起,接着谈一谈我对高性能和高可扩展性的理解。然后我从一个较高的层次来讲解网页生成的完整过程,并且描述一些核心原则,这些原则是提升网站性能的关键原则。最后介绍一下本书中示例所采用的环境和工具。本节为大家介绍为什么需要高性能和高可扩展性。
  AD:
  1.2 为什么需要高性能和高可扩展性
  速度和可扩展性不仅仅是Web服务器端的话题,Web开发的许多方面都能也都应该提升速度和可扩展性。所有代码都应该快速运行,不管是运行在客户端、Web层还是数据层。所有页面(而不是其中一少部分)都应该快速显示,而且变更、修正以及部署也应该够快。
  随着性能和可扩展性目标在项目中日益深入人心,一个良性互动的局面就会形成。不仅客户和用户会更满意,工程师也会更高兴并觉得更具挑战性。也许有人会不相信,其实做到这一点通常不需多少硬件,质保及运维团队也不用很多人。这就是我所说的高性能和易扩展的含义(简称高性能,易扩展则隐含其中)。
  高性能不是靠"想到哪做到哪"的编程方式实现的。如果不以一种系统化的方式开发,架构问题就会出现,通过捷径获得的短期效益也会被抵消掉。大规模软件开发项目都是马拉松式的,不是短跑式的,预先的计划和准备可以获得巨大的长期效益。
  表1-1是我归纳的高性能和易扩展方法的目标。
  表1-1 高性能和易扩展方法的目标
组件 高性能和易扩展的目标
页面 在负载下,每个页面都是可扩展的,并且响应速度快
在负载下,每个层都是可扩展的,并且运行速度快
敏捷 可以快速地响应业务需求的变化,
而且在变化时能够保持性能和可扩展性
可维护性 快速地发现和修正性能相关的bug
运维 快速地部署和扩大网站,容量规划直观且可靠
硬件 服务器在负载下被充分利用,并且尽可能少使用硬件设备
  从总体上看,构建运行速度快、可扩展的网站与制造赛车有诸多的相似性。为了达到预期目标,一开始就要考虑和设计与核心性能相关的各个方面因素。对赛车而言,需要确定参与哪种比赛或哪个俱乐部。是参加F1(Formula One,一级方程式)、普通型汽车赛、重型拉力赛、直线加速赛,或者仅仅参加小型车赛?如果只是为小型车赛设计汽车,那么你不仅不能参加F1,而且,如果想参加新等级的比赛,还要完全抛开原来的设计,然后重新开始。对于网站来说,为你自己和朋友构建网站当然与构建eBay或Yahoo那样的大型站点完全不同。适合一个网站的设计可能完全不适合另外一个网站。
  高级的赛车不仅要跑得快、换胎要快、加油要快,而且更换引擎也要快。换句话说,赛车的快是多种维度的。网站也应该在多个维度里表现得都够快。
  与设计赛车只考虑让它跑得快但没有考虑安全性一样,如果设计网站时只考虑高性能而忽略安全性的话,那后果也是不堪设想的。因此,在接下来的几章中我会时不时地讨论有关安全性的问题,这些问题与性能都是密切相关的,比如第3章中对Cookie的讨论。

原文转自:http://www.ltesting.net