This is the first, and I hope not the last, of several posts that I want to write about the activity that I consider the “state of art” for a System Administrator: the capacity planning.
As every activity that tries to define the complex systems behavior in the future, capacity planning requires deep knowledge, discipline, science, a great experience and a bit of luckiness. Is not easy to find all these stuff in just one person, especially the last. So, in every company, there are many programmers, some SA’s and just few capacity planners.
Let’s imagine you are a in charge to manage the capacity planning for a factory that produces bricks. You can bet that the technology required to make bricks will be almost the same for many years. Bricks are simple components that mankind invented long time ago. So the “brick” product can be considered almost perfect. The same we can say for the procedure we need to implement to build it. The bricks market, on another hand, has about a predictable behavior due to the time required to build homes and little excesses of production can be easily managed just finding a good place to store unsold bricks. The bricks do not require to be refrigerated and are made to stay outdoor. So a warehouse buffer to manage the (rare) unpredictable bricks market peak requests will be a cheap solution, easy to implement and maintain.
Now, please, compare the old brick Heaven with young IT hell. Information Technology was invented this morning, about 8:00 a.m.. Just try to remember how many “final solutions” you encountered in your life: BASIC, Pascal, Lisp, C (this one really was “final” for a long time), Artificial Intelligence, Expert Systems, Hierarchical Data Bases, Mainframes, Client Server Architecture, Distributed Computing, Web, desktops, laptops, Tablets, Smartphones and so on. In the same time, market requirements change quickly according to new technologies available and scenario mutation. All the systems we are building now, will be obsolete (in terms of hardware, software and maintenance procedures) in few years. Some system are going to be obsolete in months or weeks. The hardware performance/price ratio growth is crucial in making the right decision on IT systems life cycle. Why I have to worry about data storage optimization with expensive software procedures if I can buy Petabytes at the same price of two years ago Gigabytes (a typical CEO silly argument that is always difficult to face)?
So, the very basic consideration about IT Capacity Planning is that it is a damn difficult task. Do not forget if you are in charge of planning or, especially, if you are asking for a capacity plan.
In the next posts I will explain the basic procedures to
- Define the starting point (evaluate the actual behavior quality of the IT system).
- How to evaluate the needs to keep acceptable performance when the business grows using scaling points.
- How to plan new infrastructures deployment to avoid to buy useless hardware/software power or be unarmed when you need it.
- How to experimentally establish affordable ceiling values for your currently available resources.