Currently many service providers offer their services using a private and proprietary hard- and software infrastructure. These infrastructures often share many similarities. Hence we believe a generic service delivery architecture, that allows service providers to offer a large array of different services on a shared infrastructure, would provide many advantages over current silo-based approaches. In this paper we propose the first step towards such an architecture, namely several algorithms for dynamically allocating server and network resources to a set of services and selecting a suitable service instance for each client. Service instances are placed on a set of servers, taking into account network resources (available bandwidth), server resources (CPU and memory) and service Quality of Service (QoS) demands (maximum transmission delay and bandwidth requirements). The optimization goal is to maximize the percentage of satisfied demand (answered requests) and minimize the total numb...