The Google interview process typically includes a phone interview or two as well as an on-site, in a process that takes a couple of weeks to a month. I had a pending offer from another company, so they expedited my interview (skipped the phone), and expedited the hiring committee review. I got flight info for two days later, flew out, interviewed the next day (Friday), and had an offer by Monday.
At the on-site interview, they put you up in a pretty nice hotel and provide a rental car. GPS is recommended, as the Mountain View / Sunnyvale suburbs can be difficult to navigate.
The Google campus is simply spectacular. They have dozens of buildings, with bikes for transportation between bulidings, buses in and out of different neighborhoods, multiple dining cafes, multiple gyms, etc. Google is also located all over the country (and world) - you can actually pick your location if MV suburbia isn't your cup of tea. Projects/teams are distributed across separate offices.
As for the actual interview:
5 separate 45 minute interviews with other Software Engineers. The interviewers come from a wide background (infrastructure, front end, etc). Questions were all technical in nature, mostly coding oriented. They did ask pointed questions about previous experience, projects, general resume stuff, etc.
The interview questions were well thought out and relatively innovative. The interviewers presented them clearly, and were very helpful in discussing solution possibilities. Some of the questions were pretty straightforward, but the trickier ones were excellent - we were able to devise solutions and optimize them multiple times, discussing what was better about different approaches.
Everyone I talked to was very upbeat, intelligent, and nice. The last interviewer I had seemed a bit surly at first, but quickly warmed up and became very affable.
The hiring process was very informative. The recruiters gave loads of information when asked, and were very up front about a lot of aspects of the company. The interviewers themselves were able to answer many questions about the gritty details of working at Google.
The hiring itself is actually done by a separate group of people from the interviewers, and is decided somewhat up the chain of command.