Autonomic Computing Systems are systems which are capable of adapting themselves to changes in their working environment in order to maintain required service level agreements, protect the execution of the system from external attacks or prevent and recover from failures. Within the field of autonomic computing, autonomic systems are developed as control loops which monitor and analyze the execution of the system and then plan and execute changes if needed in order to adapt the system to its environment. This paper will present an approach for designing and building autonomic systems for cloud computing, based on an architecture previously developed which was rooted in real-time software patters. Furthermore, the paper presents an application of the autonomic management architecture to a cluster of application servers running on top of a cloud. It is thus demonstrated how the development approach can be easily reconfigured for the control and supervision of different types of autonomic computing strategies such as self-management for Web Services or self-provisioning and self-optimization for server virtualization.