I'm at a company that has a number of fairly high traffic web sites. Essentially, there is a holding company that does the "IT Stuff" and there are a number of brands that we support. Problem is, all these brands want the same sort of stuff, but just slightly differently. For example, they all want a store locater, they all want to search for things by categories and attributes, they all want a movie player, new/blog service...
Historically, we'd get the request for a "rewrite" of a brand site. We'd spin up a project, start copy/pasting code from other sites and assemble a fresh new application from the pieces of the old ones.
This is good, we're at least reusing some things instead of simply recoding everything from scratch.... but, it's also bad. Why? Because we're creating independent copies of code that does the exact same thing (see copy/paste coding).
Our previous solution to this problem was to not really update anything after it's been released. Sure, we'd put some new imagery out there, but for the most part it was one for one swaps of things that where already there. In addition, if we DID decide to create a component, it was done via server integration. This meant that... sure we've got a jar file or dll that is a reusable runtime component, but we STILL needed to redeploy any updates across every site that needed it.
We've made an adjustment and are now going down a different path. We're now developing shared services that are URL addressable and can be linked into individual web pages by front-end developers (similar to google maps)
This is modeled after how google maps allows you to embed a map in your browser. This is where the big money is to be made (or saved) for enterprise cloud computing and/or Service Oriented Architectures (SOA). Extract stand-alone services out so that they can be URL addressable and enable your front end teams to assemble novel and useful applications from a grab-bag of components that are available via the net.