Computation-as-a-Service (CaaS) offerings have gained traction in the last few years due to their effectiveness in balancing between the scalability of Software-as-a-Service and the customisation possibilities of Infrastructure-as-a-Service platforms. To function effectively, a CaaS platform must have three key properties: (i) reactive assignment of individual processing tasks to available cloud instances (compute units) according to availability and predetermined time-to-completion (TTC) constraints, (ii) accurate resource prediction, (iii) efficient control of the number of cloud instances servicing workloads, in order to optimize between completing workloads in a timely fashion and reducing resource utilization costs. In this paper, we propose three approaches that satisfy these properties (respectively): (i) a service rate allocation mechanism based on proportional fairness and TTC constraints, (ii) Kalman-filter estimates for resource prediction, and (iii) the use of additive increase multiplicative decrease (AIMD) algorithms (famous for being the resource management in the transport control protocol) for the control of the number of compute units servicing workloads. The integration of our three proposals into a single CaaS platform is shown to provide for more than 27 reduction in Amazon EC2 spot instance cost against methods based on reactive resource prediction and 38 to 60 reduction of the billing cost against the current state-of-the-art in CaaS platforms (Amazon Lambda and Autoscale).
In order to provide for a viable service, a CaaS provider must be able to minimize the monetary cost incurred by the use of cloud CUs and schedule workloads to be executed in the most effective manner. To this end, there have been numerous recent proposals for cloud resource management. Gandhi propose their own version of Autoscale, which terminates servers that have been idle for more than a specified time, while consolidating jobs on less CUs to lower cost @cite_12 . Paya propose a system which expands on this by using multiple sleep states to improve performance @cite_30 . Song propose optimal allocation of CUs according to pricing and demand distributions @cite_5 . Ranjan investigate architectural elements of content-delivery networks with cloud-computing support @cite_26 . Finally, Jung propose using genetic algorithms for multi-user workload scheduling on various CUs @cite_1 .
@cite_30 @cite_26 @cite_1 @cite_5 @cite_12
1988620903 1525444182 2152942310 2051390526
The recent surge in the popularity and usage of Cloud Computing services by both the enterprise and individual consumers has necessitated efficient and proactive management of data center resources which host services having varied characteristics. One of the major issues concerning both the cloud service providers and consumers is the automatic scalability of resources (i.e., compute, storage and bandwidth) in response to the highly unpredictable demands. To this end, an opportunity exists to harness the predictive and diagnostic capabilities of machine learning approaches to incorporate dynamic scaling up and scaling down of resources without violating the Service Level Agreements (SLA) and simultaneously ensuring adequate revenue to the providers. This paper proposes, implements and evaluates a Bayesian Networks based predictive modeling framework to provide for an autonomic scaling of utility computing resources in the Cloud Computing scenario. In essence, the BN-based model captures the historical behavior of the system involving various performance metrics (indicators) and predicts the desired unknown metric (e.g. SLA parameter). Initial simulated experiments involving random demand scenarios provide insights into the feasibility and applicability of the proposed approach for improving the management of present data center facilities. There is an increasing need for cloud service performance that can be tailored to customer requirements. In the context of jobs submitted to cloud computing clusters, a crucial requirement is the specification of job completion-times. A natural way to model this specification, is through client job utility functions that are dependent on job completion-times. We present a method to allocate and schedule heterogeneous resources to jointly optimize the utilities of jobs in a cloud. Specifically: (i) we formulate a completion-time optimal resource allocation (CORA) problem to apportion cluster resources across the jobs that enforces max-min fairness among job utilities, and (ii) starting with an integer programming problem, we perform a series of steps to transform it into an equivalent linear programming problem, and (iii) we implement the proposed framework as a utility-aware resource scheduler in the widely used Hadoop data processing framework, and finally (iv) through extensive experiments with real-world datasets, we show that our prototype achieves significant performance improvement over existing resource-allocation policies. A key advantage of infrastructure-as-a-service (IaaS) clouds is providing users on-demand access to resources. To provide on-demand access, however, cloud providers must either significantly overprovision their infrastructure (and pay a high price for operating resources with low utilization) or reject a large proportion of user requests (in which case the access is no longer on-demand). At the same time, not all users require truly on-demand access to resources. Many applications and workflows are designed for recoverable systems where interruptions in service are expected. For instance, many scientists utilize high-throughput computing (HTC)-enabled resources, such as Condor, where jobs are dispatched to available resources and terminated when the resource is no longer available. We propose a cloud infrastructure that combines on-demand allocation of resources with opportunistic provisioning of cycles from idle cloud nodes to other processes by deploying backfill virtual machines (VMs). For demonstration and experimental evaluation, we extend the Nimbus cloud computing toolkit to deploy backfill VMs on idle cloud nodes for processing an HTC workload. Initial tests show an increase in IaaS cloud utilization from 37.5 to 100 during a portion of the evaluation trace but only 6.39 overhead cost for processing the HTC workload. We demonstrate that a shared infrastructure between IaaS cloud providers and an HTC job management system can be highly beneficial to both the IaaS cloud provider and HTC users by increasing the utilization of the cloud infrastructure (thereby decreasing the overall cost) and contributing cycles that would otherwise be idle to processing HTC jobs. Many web service providers use commercial cloud computing infrastructures like Amazon for flexible and reliable service deployment. For these web service providers, the cost of cloud computing usage becomes a big part of their IT department cost. Facing the diverse pricing models including on-demand, reserved, and spot instance, it is difficult for web service providers to optimize their cost. This paper introduces a new cloud brokerage service to help web service providers to minimize their cloud computing cost for deadline-constrained batch jobs, which have been a significant workload in web services. Our cloud brokerage service associates each batch job with deadline, and always tries to use cheaper reserved instances for computation to maintain a minimum cost. We achieve this with the following two steps: (1) given a set of jobs' specifications, determine the scheduling of jobs, (2) given the scheduling and pricing options, find an optimal instance renting strategy. We prove that both problems in two steps are computation intractable, and propose approximation algorithms for them. Trace-based evaluation shows that our cloud brokerage service can reduce up to 57 of the cloud computing cost.