|
Today, Information Technology (IT) departments are plagued by increasing complexity, poor utilization of assets, space, and high power
consumption. Further, system management in such environments is fragmented and labor-intensive requiring considerable human involvement
for mundane functions such as configuration and provisioning. Such common inefficiencies in data centers force IT managers to provision
their data centers for peak loads resulting in low average resource utilization and availability in the range of 99.99% or possibly
less. Current data center deployments tend to have strong and static binding between servers and applications, as well as between
servers and administrators, due mainly to a lack of technology to deploy otherwise.
To improve the efficiency of assets, space, and power, IT managers turned to virtualization, which provides the ability to consolidate
multiple applications onto a single server (a server could be stand-alone, rack-mounted or bladed). These servers may include advanced
technologies that support multiple logical and physical partitions within each physical machine such as virtualization, partitioning
hooks, and multiple cores. These advanced technologies have increased the cost and complexity of platforms and require that management
solutions adapt to deal with them. Unfortunately, management solutions have not kept pace.
Information Technology evolution
It is obvious that the resource consolidation currently taking place in data centers is only the first step in the evolution of IT
environments. Enterprise IT departments ultimately want to manage their computing resources and infrastructure to support business
processes and services in accordance with business objectives. This is sometimes referred to as the Service-Oriented Enterprise (SOE).
The motivation for moving to an SOE include guaranteeing service and site availability and satisfying a certain Quality of Service
(QoS), and Service Level Objectives (SLO) while optimizing across constraints such as operational expenses and business value. The
result is a reduced data center total cost of ownership.
Our vision for supporting SOE in future data centers is to make them into pools of resources that can be accessed as a utility. Such
grid-like data centers allow their resources to be dynamically allocated and deallocated based on the compute and I/O resource
requirements of running applications. Achieving such a grid vision requires a dynamic infrastructure that decouples services from
infrastructure and incorporates the ability to map applications to infrastructure adaptively. This is known as Service-Orientated
Infrastructure (SOI). In addition, treating a data center as a utility allows clients to pay only for the necessary resources to run
their services, when appropriate metering tools are applied.
Service-oriented infrastructure
As IT departments move to Service-Oriented Architecture (SOA), applications may be decomposed and common elements identified as shared,
reusable services. Services may be purchased, outsourced, or (if otherwise unavailable) created; applications that implement business
processes then evolve to use the shared common services.
There are significant advantages to executing these services in a dynamic environment. As we move to a re-factored, service-oriented
application environment, the infrastructure must be able to adjust to changing loads by creating additional service instances as needed
(as well as extinguishing them as appropriate).
A service-oriented, autonomic infrastructure can provide an environment that will assign resources as needed under given policies. Most
reviews of SOA cite the need for stateless interactions [1, 2]. When services are stateless, there generally is freedom to add
additional instances as necessary to handle load, reduce latency, or guard against equipment or facility failure (for business
continuity of disaster recovery). This freedom means that we can scale out services by adding computing resources where needed and of
the size needed. Just as a utility infrastructure may be compared to a power utility, this provides an opportunity similar to
microgeneration [3] where power can be generated close to the load being served by smaller than usual power plantsin essence, an
alternative method of scaling.
New service instances created to handle load might be automatically created alongside existing ones. Keeping an additional instance
nearby may have advantages: for example, it might ease routing and provide the ability to make local decisions based on policy. Within a
group of servers, or even within cores of a multicore implementation, a local decision can be made to scale out and/or cut back
instances, without having to refer the decision to another management entity. Creating an additional instance in a remote location could
provide a natural way to handle failover and disaster recovery, since appropriately positioned instances could take on loads that
previously had been served by failing components. Creation (or extinction) of additional service instances in the appropriate location
could take place autonomically, perhaps within a platform group, without the need for intervention from a centralized console.
|