You wouldn’t begin mixing concrete before you know what you’re building. Similarly, you shouldn’t begin planning for capacity before you determine the requirements for performance, availability, and reliability of a site or mobile app. As Chapter 1 mentions, the requirements change as the end user’s expectations evolve. The requirements are also a function of the technology; for example, use of virtual machines (VMs) versus use of containers. Consequently, capacity planning is not a one-time process, but a continuous one.
Capacity planning involves a lot of assumptions related to why your enterprise needs the capacity. Some of these assumptions are obvious, whereas others are not. For example, if you don’t know that you should be serving the pages in less than three seconds, you’re going to have a tough time determining how many servers will be needed to satisfy that requirement. More important, it will be even tougher to determine how many servers you would need to add as the traffic grows.
Common sense, right? Yes, but it’s amazing how many organizations don’t take the time to assemble a rudimentary list of operational requirements. Waiting until users complain about slow responses or time-outs isn’t a good strategy.
Establishing the acceptable speed or reliability of each part of the site can be a considerable undertaking, but it will ...