This paper focuses on the portability of Cloud Computing (CC) services, specifically on the problems with the portability of Infrastructure as a Service (IaaS). We analyze the current state of CC with the intention of standardizing the portability of CC solutions. CC IaaS providers often use proprietary solutions, which leads to a problem known as “vendor lock-in”. Another problem might appear during migration between two providers if huge scripts are written in a proprietary language. To solve the portability problem, we applied the Model-Driven Architecture (MDA) approach to propose the general IaaS reference architecture. Using a generic IaaS model, we are able to describe entities of the IaaS environment and then design necessary transformation rules for specific IaaS environments in a simplified but flexible way. Using this model, we continue designing transformation rules that define the transcript of IaaS services. The CC-portability problem is thus solved by transforming a specific IaaS service description from one description to another through the generic model. This approach is extensible and can be adopted for the evolution of CC services. Therefore, it can be used as a generic solution to IaaS-portability issues. Using this flexible approach, the introduction of a new CC environment requires only the design of a single transformation rule that prevents proprietary peer-to-peer full-mesh mappings. Thanks to the proposed model and the transformation rules described, we were able to experimentally confirm the functionality of the transfer of the environment description between three cloud providers.