A simulation-optimization approach to deploy Internet services in large-scale systems with user-provided resources
Cloud computing systems can benefit from the use of personal and non-dedicated computers, which are currently employed in volunteer computing systems. Being non-dedicated, these resources show random behavior regarding the times they are online (available) and offline. Accordingly, their availability levels are lower than those of traditionally employed dedicated resources. Thus, in order to use non-dedicated resources in cloud computing environments, it is necessary first to solve the problem of how to attain high availability levels for the Internet services deployed over them. Most approaches on how to guarantee high service availability levels with non-dedicated resources are based on the introduction of high degrees of redundancy into the system. However, this praxis leads to an inefficient usage of computational resources and, therefore, to higher operational costs. Accordingly, the focus of this paper is the problem of minimizing the cost of a service deployment over non-dedicated resources while providing a high level of service availability. In order to solve this stochastic optimization problem, the paper proposes a hybrid algorithm that combines a metaheuristic component with a discrete-event simulation component. The metaheuristic component is used to search for an efficient configuration of resources. The simulation component is integrated inside the metaheuristic and used to estimate the service availability of each promising configuration. A numerical experiment section, comparing the performance of several algorithms, contributes to validating the proposed approach as well as to illustrate its potential applications.