How it works…

While defining the requirements, each requirement should be clearly stated and specified. Define requirements individually; multiple requirements should not be combined into a single requirement.

During the discovery process, the following information about the current size of the existing environment is identified:

  • Currently, there are 100 physical servers, each hosting a single application. Each application services 10 customers.
  • Not more than 20 application servers or 200 customers should be affected by a hardware failure.
  • Consolidate physical servers to reduce the hardware costs associated with maintaining and refreshing the hardware of the existing application servers.

One of the goals of the project is to consolidate the physical servers to reduce hardware costs. An example design requirement to support this might be as follows: consolidate existing physical servers.

This requirement is vague and with the information that's available from the discovery, the requirement should be more specific. Based on the number of existing physical servers and the maximum number of customers that should be impacted during a hardware failure, a better requirement example may be as follows: consolidate the existing 100 physical application servers down to five servers.

Information about the expected growth of the environment was also discovered:

  • The business expects to add 50 new customers each year
  • The solution must support growth over the next 5 years

Based on this information, there is a requirement that the environment must be designed to provide the capacity that's necessary to support future growth. An example requirement to support this might be as follows: provide sufficient capacity to support growth.

Again, this requirement is very vague and does not provide any information about how much the growth will be or over what period of time is growth expected. From the discovery, it is known that the business expects to add 50 new customers over the next year. Each server hosts a single application, which will provide service for 10 customers. The solution should support growth over the next 5 years.

Using this information, a requirement that specifies the growth that should be supported and the time period over which this growth is expected is as follows: provide capacity to support growth for 25 additional application servers over the next 5 years.

The architect can also determine the availability of requirements for hardware maintenance and application resiliency:

  • The solution must allow a 1-hour maintenance window each month for application and hardware maintenance. Hardware maintenance is currently a challenge. Since hardware and application maintenance cannot be performed at the same time, the maintenance window does not typically provide the time required to perform both application and hardware maintenance.
  • Application uptime and accessibility is very important.
  • Not more than 20 application servers or 200 customers should be affected by a hardware failure.

From this information, the requirement that might be identified is that the server hardware maintenance should not affect application uptime, and redundancy should be maintained during hardware maintenance operations.

The problem with this requirement is that it includes two separate requirements; one requirement is for application uptime, and another requirement is for redundancy. These requirements should be split into two individual requirements.

Server hardware maintenance should not affect application uptime. Provide N+2 redundancy to support a hardware failure during normal and maintenance operations.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset