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.