During the last years, mobile technology has totally changed our life style by acquiring a very important role in a lot of aspects of the human life. This technology requires a robust back-end system able to both allocating services that support applications and managing very large amounts of data. This system is known as cloud computing. Thus, developers are not only concerned about programming applications, but designing and dimensioning cloud systems able to execute services that support them. The design of cloud systems is challenging and requires a certain degree of expertise in the field of distributed systems. Moreover, the complexity of this task increases when we consider aspects such as the vast range of possible configurations, pricing and energy consumption. In this paper we present a methodology for helping users to design cloud computing systems targeted to fulfil features such as performance, cost and energy-saving.