Abstract:Cloud computing has been a popular computing paradigm, and more and more large-scale distributed systems are migrating or have been migrated to cloud platforms. When deploying and managing IT systems in cloud environments, system owners have to manage the low-level details of the infrastructures, or leverage the services of platforms. Managing low-level details is time consuming and error-prone, and leveraging the services is less flexible and more difficult to tailor to user requirements. To address these issues, we propose a high-level abstraction model for cloud-based systems to specify their requirements. The requirement model describes the expected system states in a declarative way, without introducing the low-level steps and details about how to reach the states. We implemented a prototype based on open source cloud platform OpenStack and configuration management tool Puppet, and the effectiveness of the requirement model is evaluated through a case study.