I had one phone screen with a recruiter, one phone interview with an engineer and 5 on-site interviews.
I initially got contacted by a recruiter because I had another series of interviews with Google previously. After some discussion I've decided to apply again for an SRE job. I cannot disclose the interview questions, but I will give some general information about the process.
I had one phone screen with the recruiter where I was asked 10-15 questions with short answers. The questions covered different areas that are of interest for an SRE job. For instance, data structures, algorithms, systems, Linux basics and commands and network protocols. One day after the phone screen I got invited for a phone interview with an engineer.
During the phone interview I had a programming challenge to solve. The initial challenge started simple and as I solved it the interviewer extended the question and made it more difficult. This seems to be the common way of conducting a programming interview at Google. I solved the questions by writing code in Google Docs. 4-5 days after the interview the recruiter contacted me again and said that I am invited for a round of onsite interviews.
The trip was arranged by Google and I had 5-6 hours to spend at Google's office, including lunch. During this time I had 5 interviews with engineers, each about 45 minutes. Since I had a software engineering background, I had 3 software/programming and 2 SRE-specific interviews.
Before the lunch, I had the 3 programming interviews. These were similar to the phone interview, only difference is that you need to write code on the white board instead of Google Docs. There were no behavioral questions, and only a very short CV-related question. The rest was all about algorithms and programming. In these interviews you need a good grasp at data structures (arrays, linked lists, trees, hash tables, etc.), various algorithms (string processing, bit manipulation, graphs, etc), runtime complexity of these and your programming language. It is important to ask questions to clarify problems, explain your thought process, find efficient algorithms and write clean code.
After the third interview, I had lunch with an engineer. This is an informal chat and no feedback is given to the hiring committee. So it is a good time to relax and ask honest questions about the job.
After the lunch, I had SRE-specific interviews. The first one was about troubleshooting. The interview gives a short background of a hypothetical production problem and asks you to find the root cause of the problem. It goes interactively where you say "I will check x in y" and the response is "It turns out x is too high". The important part is your thought process and knowledge of common failures in systems. Knowing what to monitor and how to do it is very valuable.
Last interview was called "Non Abstract Large Scale System Design" interview. Here, the interviewer describes a real or hypothetical large system and asks you to design it. You start with architecture and also discuss trade-offs and make decisions. It is important to also do capacity planning for the system since it is "non abstract". For instance how much storage you need, how many data centers, how many servers, how much bandwidth, etc.
This was a quite interesting and useful experience. I don't know the outcome of the interviews at the moment, I will update when I get a response (which could take a few weeks).