  According to the pay-per-use model adopted in clouds, the more the resources
consumed by an application running in a cloud computing environment, the
greater the amount of money the owner of the corresponding application will be
charged. Therefore, applying intelligent solutions to minimize the resource
consumption is of great importance. Because centralized solutions are deemed
unsuitable for large-distributed systems or large-scale applications, we
propose a fully distributed algorithm (called DRA) to overcome the scalability
issues. Specifically, DRA migrates the inter-communicating components of an
application, such as processes or virtual machines, close to each other to
minimize the total resource consumption. The migration decisions are made in a
dynamic way and based only on local information. We prove that DRA achieves
convergence and results always in the optimal solution.
