The number of providers in the cloud computing market is increasing at a rapid pace. They offer a wide range of pricing schemes, different types of instance, or even different value-added features to differ from other competitors, making the cloud market more complex. Cloud brokering enable users to choose the best cloud provider for their needs and avoid particular providers' lock in. Moreover, the use of multiple clouds offers several benefits such as scalability of services, improvement in fault tolerance, or cost reduction. However, users still find difficult the decision of where to deploy their resources as they have to handle too much information. The use of cloud brokering mechanisms is useful to reduce the complexity of using a multi-cloud environment. In this paper, we show a cloud broker architecture for deploying virtualized servers across available clouds. This architecture uses a scheduling module to obtain an optimal placement of a virtual infrastructure while making it transparent for users. We focus our investigation on dynamic cloud scenarios in terms of variable resource prices, taking into account the virtual machine migration overhead issue. We evaluate the performance of several use cases applied in real scenarios, and we show the improvement potential of using brokering mechanisms in dynamic deployments compared with static ones. Copyright © 2012 John Wiley & Sons, Ltd.