Multiple production servers with different roles?

We've got an app dealing with a lot of heavy disk i/o (>1GB uploads, lots of processing, etc.). Most of the app runs great on a few frontend servers in a xen environment but disk i/o is always a bottleneck, so we're offloading all the heavy stuff to a physical asset server.

The asset server would of course serve static files (per the environment option already in Rails), but do a little more than that - the entire app stack would be there but only a handful of controllers and operations would be available in that environment. It would communicate with the same MySQL database as all the other servers.

Question is: has anyone dealt with multiple servers that have significantly different roles, and what is the best way to configure these? My first sense was to use separate environment configs (two production environments in this case), but have them share the same database.

Any feedback would be appreciated.