1. A method comprising: maintaining, in a directory, data associating each logical environment of a plurality of logical environments with components of a communication service provider system that are included in the logical environment; maintaining, in the directory, data associating each of a plurality of users of the communication service provider system with a respective logical environment of the plurality of logical environments; receiving, by a router in the communication service provider system, a user service request from a first communication device; determining, by the router, an identifier of a first user of the communication service provider system associated with the first incoming service request; determining, by the router and based on the data maintained in the directory associating each of the plurality of users of the communication service provider with a respective logical environment, a logical environment for the first user, wherein the logical environment for the first user identifies a plurality of components of the communication service provider system used to process service requests associated with the first user; identifying, by the router and based on the data maintained in the directory associating each logical environment of the plurality of logical environments with components of the communication service provider system that are included in the logical environment, a first application cluster of a first version of an application identified in the logical environment for the first user; and routing, by the router, the first incoming service request for processing by the first application cluster of the first version of the application.