Analyzing how today's data center evolved provides some clues as to how these problems came about. The data center is at the heart of enterprise computing, and it is the evolution of enterprise computing that defines today's data center. The history of enterprise computing can be viewed from two perspectives:
Applications, now generally thought of as services, have evolved to deliver greater and greater value, changing from simple stand-alone batch workloads, to interactive terminal sessions, to client-server applications, and finally to web services. As they have evolved, their implementation has grown ever more complex. But, at the same time, they have evolved from being a simple tool or mechanism to being the core of the business itself as more and more business process is realized within these services. The infrastructure on which these services run has evolved in a similar fashion. It has evolved from relatively simple monolithic computers or mainframes; to minicomputers; to networks of servers and desktop clients; to a complex web of interconnected networks, servers, storage, mainframes, desktops, and client devices.
However, there is one big difference between the two parallel and interrelated evolutions. The evolution of the service has been typified by the use of abstraction in which complexity within an implementation is hidden by new layers of software. The leap from programming in hexadecimal or assembly language to building Java™ 2 Platform, Enterprise Edition (J2EE™ platform)-based web services using service-oriented architectures is a huge leap in terms of developer productivity, flexibility, and value delivered. These services now mirror the business itself.
The underlying platform on which these services are deployed has likewise grown in complexity, not only in terms of the variety and sheer number of computers, networks, and storage devices, but also in the many ways in which these devices can be connected or combined. Having a hundred or more servers to manage does not mean a hundred times increase in complexity. It might mean a thousand- or ten thousand-fold increase.
Today, most data centers are still focused on individually managing these low-level components (that is, servers, disk arrays, and network switches). This approach simply does not scale. It is this lack of abstraction in managing data center infrastructure that lies at the core of today's data center problems.