IBM's systems and technology group recently briefed me on the systems and storage the company was going to launch. After reading through the materials that described the new systems, it became very clear how difficult the task of system architect has become.
The Historical Perspective
In the past, systems could be designed for a single purpose. Although every system design is a set of compromises, it was possible to partially optimize a system design for a specific purpose. If we consider the recent trends towards the use of on- and off-premise cloud computing, system architects have been forced to try to build "do-everything-well" machines.
Systems could be developed that were optimized for tasks such as:
- Computationally intensive tasks
- Highly interactive tasks
- Database and other storage intensive tasks
As processing was increasingly virtualized, organizations began to mix and match these workloads and place them on a single computer. As these virtual tasks could be place either on local systems or elsewhere in the cloud, other factors effecting overall performance came to the forefront.
What system requires are really needed for each type of task?
Let's consider some of the different types of tasks and what is required in the system architecture of a machine designed for those tasks. This, of course, is not an exhaustive study of hardware and software engineering. It is just a collection of thoughts from an analyst having decades of industry experience.
Let's examine each of these individually.