I use DP Engine Degreaser and a nylon brush. The cleaner is especially efficient and doesn't require a ton of product to be used to get excellent results. It is safe for use on plastics, rubber, metal, paint, and even clear coat.
I've never had a problem with spraying the engine down, however, do this at your own risk. Make sure the engine is cool and use a regular water hose. There are a lot of electrical components under the hood. These components were designed to survive in the harsh underhood environment, but I don't think they were designed to survive repeated blasts with a jet stream of water. Just use common sense and know what you're spraying. If in doubt, cover it up.