The automated provisioning of services in cloud computing presents many challenges. Users can request virtual machines from cloud infrastructure providers, but these machines have to be configured and managed properly. This article describes an architecture that enables the automated deployment and management of the virtual infrastructure and software of services deployed in the cloud. The architecture takes a template description of a service, which encapsulates requirements, options, as well as behavior for a collection of resources and orchestrates the provisioning of this service into a newly created set of virtual resources. The template is used for integrating the deployment and reconfiguration behavior of a service in which logical components are described along with options to scale them and appropriately change their configuration. Services are described through a set of components, which can easily be mapped and remapped to dynamically created resources, letting services take full advantage of flexible cloud resources.