A system facilitates the design and implementation of large-scale
applications, such as Internet Services and Websites, for distributed
computer systems, such as server data centers, Internet data centers
(IDCs), Web farms, and the like. The system has a modeling system and a
deployment system. The modeling system permits developers to architect
the hardware and software used to implement the applications in an
abstract manner. The modeling system defines a set of components used to
describe the functionality of an application. The model components are
arranged and interconnected to form a scale-independent logical model of
the application. Once a logical model is created, the deployment system
uses the logical model to automatically deploy various computer/software
resources to implement the application. The deployment system converts
each of the model components into one or more instances that correspond
to physical resources.