Modern networked computer systems such as Internet Data Centers and e- commerce systems are multi-tiered, subject to unpredictable workloads, and have a very large number of tunable parameters that affect system performance. These factors pose many challenges in ensuring the quality of service of these systems in terms of performance and availability. This talk discusses these challenges and the importance of embedding quality of service in the design process of large networked systems. The talk also discusses how autonomic computing techniques based on analytic performance models can be used to design and build self-tuning and self-managing computer systems. It is also shown how these techniques can be applied to provide dynamic resource allocation of servers in Internet Data Centers.