Course 5: Reliable Google Cloud Infrastructure: Design and Process

Week 1 – Design and Process Introduction

Coursera Study Guide

Click to Enroll in Coursera Google Cloud Architect Certificate


Welcome to the Reliable Google Cloud Infrastructure: Design and Process course. Learn about the course structure and it’s content.

Learning Objectives

  • Describe the course structure and it’s content.
  • Describe users in terms of roles and personas.
  • Write qualitative requirements with user stories.
  • Write quantitative requirements using key performance indicators (KPIs)
  • Evaluate KPIs using SLOs and SLIs.
  • Determine the quality of application requirements using SMART criteria.
  • Decompose monolithic applications into microservices.
  • Recognize appropriate microservice boundaries.
  • Architect stateful and stateless services to optimize scalability and reliability.
  • Implement services using 12-factor best practices.
  • Build loosely coupled services by implementing a well-designed REST architecture.
  • Design consistent, standard RESTful service APIs.
  • Automate service deployment using CI/CD pipelines.
  • Leverage Cloud Source Repositories for source and version control.
  • Automate builds with Cloud Build and build triggers.
  • Manage container images with Container Registry.
  • Create infrastructure with code using Terraform.
  • Choose the appropriate Google Cloud data storage service based on use case, durability, availability, scalability and cost.
  • Store binary data with Cloud Storage.
  • Store relational data using Cloud SQL and Spanner.
  • Store NoSQL data using Firestore and Cloud Bigtable.
  • Cache data for fast access using Memorystore.
  • Build a data warehouse using BigQuery.
  • Design VPC networks to optimize for cost, security, and performance.
  • Configure global and regional load balancers to provide access to services.
  • Leverage Cloud CDN to provide lower latency and decrease network egress.
  • Evaluate network architecture using the Cloud Network Intelligence Center.
  • Connect networks using peering and VPNs.
  • Create hybrid networks between Google Cloud and on-premises data centers using Cloud Interconnect.


1. Which best describes an SLO?

  • It is a measurable, time bound key performance indicator for your application.
  • It is a short, measurable description of an application feature.
  • It is a target measure you want your service to achieve. (CORRECT)
  • It is a contract with end users that guarantees service quality

Correct: an SLO is the agreed-upon target for a measurement or range of values for a service. Reliability could be one of these.

2. Using SMART criteria, which below would be the least effective KPI?

  • User sign ups per month
  • Page views per hour
  • Clicks per session
  • User experience design (CORRECT)

Correct: user experience design is not measurable or time bound and so would not make a relevant KPI.

3. Which best describes a user story?

  • It is a short description of a typical person using the system.
  • It is a requirement of the system you are developing.
  • It is a narrative that describes the sequence of steps a typical user would perform to accomplish some task or goal when using the system.
  • It is a short description of a feature written from the user’s point of view. (CORRECT)

Correct: because it describes a feature from the user’s point of view


1. You’re building a RESTful microservice. Which would be a valid data format for returning data to the client?

  • JSON
  • XML
  • HTML
  • All of the above. (CORRECT)

Correct: They have a standard Content-Type that can be set on the response header and are text-based. It is usual to use JSON, but both XML and JSON are valid.

2. You’re writing a service, and you need to handle a client sending you invalid data in the request. What should you return from the service?

  • A 400 error code (CORRECT)
  • A 200 error code
  • An XML exception
  • A 500 error code

Correct: 400 is a HTTP status code indicating that a request could not be processed due to an apparent client error.

3. Which below would violate 12-factor app best practices?

  • Explicitly declare and isolate dependencies.
  • Keep development, testing, and production as similar as possible.
  • Treat logs as event streams and aggregate logs into a single source.
  • Store configuration information in your source repository for easy versioning. (CORRECT)

Correct: Code and config should be separated, because config varies across deployments but code does not. The true test is whether the repository could be open-sourced without compromising any credentials.

4. You’ve re-architected a monolithic web application so state is not stored in memory on the web servers, but in a database instead. This has caused slow performance when retrieving user sessions though. What might be the best way to fix this?

  • Move session state back onto the web servers and use sticky sessions in the load balancer.
  • Increase the number of CPUs in the database server.
  • Make sure all web servers are in the same zone as the database.
  • Use a caching service like Redis or Memorystore. (CORRECT)

Correct: Services should be stateless, and a service like Redis or Memorystore provides a fast caching service to store state. They enable services to be stateless and support scale and high availability.


1. What Google Cloud feature would be easiest to use to automate a build in response to code being checked into your source code repository? 

  • Cloud Scheduler 
  • App Engine 
  • Cloud Functions 
  • Build triggers (CORRECT)

Correct: This answer is correct. Cloud Build triggers have been designed specifically to trigger a build automatically when changes are made to source code.

2. Which Google Cloud tools can be used to build a continuous integration pipeline? 

  • Cloud Source Repositories 
  • Cloud Build 
  • Container Registry 
  • All of these (CORRECT)

Correct: All of the options are correct. Source Repositories provides a private Git repository, Cloud Build builds containers, and Container Registry is a Docker images repository that performs vulnerability analysis. All three components are typically used in a continuous integration pipeline where on a commit, code is built and tested and an image is built and published to a registry. 


1. Currently, you are using Firestore to store information about products, reviews, and user sessions. You’d like to speed up data access in a simple, cost-effective way. What would you recommend?

  • Move the data to Spanner.
  • Cache the data using Memorystore. (CORRECT)
  • Move the data to Cloud Bigtable.
  • Move the data to BigQuery.

Correct: Memorystore provides the best fit when considering data model, performance, scale, cost, and availability.

2. You want to analyze sales trends. To help achieve this, you want to combine data from your on-premises Oracle database with Google Analytics data and your web server logs. Where might you store the data so it is both easy to query and cost-effective?

  • BigQuery (CORRECT)
  • Spanner
  • Firestore
  • Cloud SQL

Correct: BigQuery is a data warehouse used for data analytics, and so is built for this type of use case. It provides the infrastructure to ingest data from many different sources, which is a requirement too. The cost model of paying for storage and then only for queries run is attractive too.

3. You are a global financial services company with users all over the world. You need a database service that can provide low latency worldwide with strong consistency. Which service might you choose?

  • Firestore
  • Cloud SQL
  • BigQuery
  • Spanner (CORRECT)

Correct: A key feature of Spanner is scale for relational data with strong consistency, and it is globally distributed to provide low latency. The high availability and automatic replication are also strong features for financial services.

4. You need to store user preferences, product information, and reviews for a website you are building. There won’t be a huge amount of data. What would be a simple, cost-effective, managed solution?

  • Spanner
  • Cloud SQL
  • BigQuery
  • Firestore (CORRECT)

Correct: Firestore provides automatic scale ACID transactions and live synchronization and is integrated with Google Cloud and Firebase. It also has a free tier.


1. You want a secure, private connection between your network and a Google Cloud network. There is not a lot of volume, but the connection needs to be extremely reliable. Which configuration below would you choose?

  • VPN
  • VPN with high availability and Cloud Router. (CORRECT)
  • Cloud Interconnect
  • VPC peering

Correct: because this offers a secure extremely reliable connection and is more cost-effective than Cloud Interconnect.

2. You have a contract with a service provider to manage your Google VPC networks. You want to connect a network they own to your VPC. Both networks are in Google Cloud. Which Connection option should you choose?

  • VPN with high availability and Cloud Router.
  • VPC peering (CORRECT)
  • VPN
  • Cloud Interconnect

Correct: because VPC peering allows connectivity across two VPC networks regardless of whether they belong to the same project or same organization.

3. You are a large bank deploying an online banking service to Google Cloud. The service needs high volume access to mainframe data on-premises. Which connectivity option would likely be best?

  • VPN
  • Peering
  • Cloud Interconnect (CORRECT)

Correct: because Cloud Interconnect provides high bandwidth and low latency. It does need encryption at the application level.

4. You are deploying a large-scale web application with users all over the world and a lot of static content. Which load balancer configuration would likely be the best?

  • TCP load balancer with SSL configured.
  • HTTP load balancer with SSL configured and the CDN enabled.
  • UDP load balancer with SSL configured and the CDN enabled. (CORRECT)
  • HTTP load balancer with SSL configured.

Correct: because the traffic is HTTP(S), the load balancer should be external and global, and CDN enabled will help performance and cost.

Subscribe to our site

Get new content delivered directly to your inbox.