1. A computer implemented method of supporting multiple deployment models for enterprise business applications, the method comprising: designating pillars associated with an enterprise business application, each of the pillars including application units, wherein the pillars comprise logical groupings for the application units to be used in an enterprise business application; utilizing a single database schema which is used for each deployment model, wherein the single database schema allows for an optimized implementation by having each of the pillars running within a single database instance; determining which of the application units are dependent to more than one of the pillars; based on uptime data and performance requirements of the pillars, determining which replication interface and service interfaces to use to resolve the dependencies; based on the determinations, generating deployment code associated with the dependent application units which is configured to be deployment model independent; receiving, at deployment time, a deployment model designation indicating the deployment model selected to be used for the enterprise business application; building pillar deployment model templates configured to each possible customer deployment scenario, wherein each possible customer deployment scenario includes a single instance database model or multi-instance database model; at deployment time, choosing one of the deployment model templates; and based on the chosen deployment model template, deploying the enterprise business application according to the designated deployment model using the generated deployment code.