  For a cloud service provider, delivering optimal system performance while
fulfilling Quality of Service (QoS) obligations is critical for maintaining a
viably profitable business. This goal is often hard to attain given the
irregular nature of cloud computing jobs. These jobs expect high QoS on an
on-demand fashion, that is on random arrival. To optimize the response to such
client demands, cloud service providers organize the cloud computing
environment as a multi-tier architecture. Each tier executes its designated
tasks and passes the job to the next tier; in a fashion similar, but not
identical, to the traditional job-shop environments. An optimization process
must take place to schedule the appropriate tasks of the job on the resources
of the tier, so as to meet the QoS expectations of the job. Existing approaches
employ scheduling strategies that consider the performance optimization at the
individual resource level and produce optimal single-tier driven schedules. Due
to the sequential nature of the multi-tier environment, the impact of such
schedules on the performance of other resources and tiers tend to be ignored,
resulting in a less than optimal performance when measured at the multi-tier
level. In this paper, we propose a multi-tier-oriented job scheduling and
allocation technique. The scheduling and allocation process is formulated as a
problem of assigning jobs to the resource queues of the cloud computing
environment, where each resource of the environment employs a queue to hold the
jobs assigned to it. The scheduling problem is NP-hard, as such a biologically
inspired genetic algorithm is proposed. The computing resources across all
tiers of the environment are virtualized in one resource by means of a single
queue virtualization. A chromosome that mimics the sequencing and allocation of
the tasks in the proposed virtual queue is proposed.
