PRNG

Notes - Site Reliability Engineering (online book)

January 19, 2019

Shakespeare: A Sample Service

Request Flow

Browser sends request to shakespeare.google.com. Request goes to DNS server, which arrives at Google’s DNS server which talks to Google’s distributed Load Balancer GSLB. GSLB keeps track of requests among all FE nodes and picks best IP address to send to the user.

Browser connects to HTTP server on this IP. This IP points to Google’s reverse proxy (GFE) which terminates the TCP connection between the client and itself and looks up which service is required (maps, search etc). GFE using GSLB finds an available Shakespeare frontend server and sends that server an RPC containing the HTTP request. The Shakespeare Application FE parses the request and constructs a protobuf containing the word to look up. The Shakespeare FE server now contacts the Shakespeare BE server using GSLB to get the BNS address of a free Shakespeare Backend server. The BE server then connects to Bigtable server using GSLB to obtain requested data.

The answer is written to the reply protobuf and returned to the Shakespeare backend server. The backend hands a protobuf containing the results to the Shakespeare frontend server, which assembles the HTML and returns the answer to the user.