This document discusses methods for understanding the evolution of open source cloud systems like OpenStack. It presents the authors' solution of using tracing techniques to analyze OpenStack's data and message flows for logical operations such as creating and deleting VMs. Key findings from tracing OpenStack releases include significant behavioral changes between releases, hundreds of database queries and AMQP messages required for operations, and the involvement of components like Keystone, Glance, Nova, and Neutron. The authors propose using their techniques to inject faults and build a knowledge base to aid future problem diagnosis.