2009-07-06 46 views
3

天儿真好,是否可以将可扩展性量化为一项要求?

我正在读的项目Quantify书中“97件事每一个软件架构师应该知道”(sanitised Amazon link),它让我知道如何量化的可扩展性。

我设计了两个系统的主要英国广播公司被用于:

  1. 检测原产国传入的HTTP请求,或
  2. 确定合适的视频格式的手机屏幕几何图形和当前连接类型。

这两个设计被要求提供可扩展性。

我对两个系统的设计是可扩展的水平落后,其用于处理用于这两项服务的传入请求,并将在几个服务器实际上提供服务本身分配缓存负载平衡层。服务容量的初始增加是通过在负载平衡层后添加更多的服务器来实现的,因此称为水平可伸缩性。

有该架构然而,如果负载平衡层开始具有难度与传入请求通信应对的可扩展性限制。

那么,是不是可以量化的可扩展性?是否可以估算您可以添加多少个额外服务器来横向扩展解决方案?

回答

2

我认为在某些情况下是可能的 - 例如,Web应用程序的可扩展性可以根据用户数量,并发请求数量,响应时间的平均值和标准偏差等进行量化。您也可以进入带宽和存储的通用数字,每秒交易次数和恢复时间(用于备份和DR)。

你也可以经常给应用领域内的数字 - 假设系统支持评论,你可以量化的是评论的数量的大小,它需要能够存储的顺序。

然而值得铭记不是问题可以衡量一切,可以测量的问题不是万能的。 :-)

3

我认为这归结于什么可扩展性是指一个给定的情况下,因此答案是这取决于

我在东西根本还不存在需要看到的可扩展性。例如,一个新的贷款申请工具,特别是未来需要在iPhone和其他移动设备上工作。

我也看到了用来描述世界不同地区的多个数据中心和网络服务器的扩张潜力,以提高性能的可扩展性。

这两个例子,如果有对未来的已知的目标以上即可量化。但是,如果没有已知的目标或计划使其成为移动目标,则可扩展性可能无法量化。

+1

啊,“必须是未来的要求”! ( - : – 2009-07-06 16:19:59

1

的可扩展性(的适当措施不是简单的一个;-)是一组曲线定义资源要求(CPU,内存,存储,本地带宽,...)和性能(如延迟)交付,作为负载增长(例如,按照每秒查询数量计算,但其他度量,例如所需的总数据吞吐量也可能适用于某些应用程序)。决策者通常会要求将这些准确但复杂的测量数据归结为几个关键数字(几条曲线中的某些曲线上的特定点),但我总是试图进行更精确的谈判,而不是更简单易懂的测量。关键指标! - )

1

当我想到的可扩展性,我认为的:

  • 性能 - 应用程序如何响应需要为给定负载
  • 多大的负载应用程序可以长入并在什么单位成本(如果每台服务器包括软件,支持等)
  • 你能多快扩展你想在高峰期使用的应用起来,多少缓冲(我们可以在2-3小时内添加更多的50%的带宽,需要在计划的峰值使用情况下为30%的缓冲区)

冗余是另一回事,但也应该包括和考虑。

1

“系统应根据成本/用户比例保持X的线性关系”。