Scalability is the ability to add capacity to a system so the system can support additional load from existing users or from an increased user-base. Scalability usually requires the addition of resources, but should not require changes in the design of the deployment architecture or loss of service due to the time required to add additional resources.
As with availability, scalability applies more to individual services provided by a system rather than to the entire system. However, for services upon which other services depend, such as Directory Server, scalability can have system-wide impact.
You do not necessarily specify scalability requirements with QoS requirements unless projected growth of the deployment is clearly stated in the business requirements. However, during the deployment design phase of the solution life cycle, the deployment architecture should always add some tolerance for scaling the system even if no QoS requirements for scalability have been specified.
Estimating the growth of a system to determine scalability requirements involves working with projections, estimates, and guesses that might not be fulfilled. Three keys to developing requirements for a scalable system are the following.
High performance design strategy. During the specification of performance requirements, include latent capacity to handle loads that might increase over time. Also, maximize availability within budget constraints. This strategy allows you to absorb growth and better schedule milestones for scaling the system.
Incremental deployment. Incremental deployment helps with scheduling the addition of resources. Specify clear milestones for scaling the system. Milestones are typically load-based requirements coordinated with specific dates for assessing scalability.
Extensive performance monitoring. Monitoring performance helps determine when to add resources to the system. Requirements for monitoring performance can provide guidance to operators and administrators responsible for maintenance and upgrades.
The following table lists factors to consider for determining scalability requirements.
Table 3–5 Scalability Factors