Detailed Course Outline
Module 1 - The Need for Spanner
Topics
- What is Spanner?
 - Spanner and the CAP Theorem
 - History of Spanner
 - Cloud Spanner Use Cases
 
Objectives:
- Explain the core concepts and features of Cloud Spanner.
 - Understand how Cloud Spanner fits in the CAP theorem.
 - Describe the history of Cloud Spanner.
 - Explain Cloud Spanner use cases.
 
Module 2 - Getting Started with Spanner
Topics:
- Planning Spanner Instances
 - Automating Instance Creating
 - Creating Databases in Spanner
 
Objectives:
- Architect Cloud Spanner instances based on location, capacity, availability, and cost.
 - Create Spanner instances by using the Google Cloud console, Google Cloud CLI, and Terraform.
 - Create Spanner databases by using SQL
 
Activities:
- Lab: Creating Spanner Instances and Databases (Console)
 - Lab: Creating Spanner Instances and Databases (CLI and Terraform)
 
Module 3 - Optimizing Spanner Schemas
Topics:
- Spanner Architecture
 - Choosing Primary Keys
 - Defining Database Schemas in Spanner
 - Understanding Interleaving and Foreign Keys
 - Understanding Secondary Indexes
 
Objectives:
- Optimize schemas for Spanner architecture.
 - Choose appropriate primary keys.
 - Manage relationships with primary and foreign keys and with interleaved tables
 
Activities:
- Lab: Choosing Primary Keys
 - Lab: Managing relationships with Foreign Keys and Interleaved Tables
 
Module 4 - Programming Spanner Applications, Queries, and Transactions
Topics:
- Authentication and Authorization
 - Using the Spanner Client Libraries
 - Running Queries
 - Managing Transactions
 
Objectives:
- Authenticate users and applications that access Spanner databases using Identity Access Management.
 - Program Spanner applications using Google Cloud client libraries and Python.
 - Optimize queries using strong reads, stale reads, and indexes.
 - Manage transactions in Spanner.
 
Activities:
- Lab: Programming Spanner Applications with Python
 - Lab: Running Queries and Transactions
 
Module 5 - Deploying Spanner Applications
Topics:
- Using Spanner from Applications
 - Building Data Pipelines into and out of Spanner
 
Objectives:
- Deploy Spanner applications to Google Cloud serverless runtimes.
 - Migrate data to and from Cloud Spanner by using Dataflow jobs and Apache Beam.
 
Activities:
- Lab: Deploying Spanner Applications with Cloud Functions and Cloud Run
 - Lab: Migrating Data to and from Spanner with Dataflow
 
Module 6 - Spanner Administration
Topics:
- Managing your Data in Spanner
 - Managing Change Operations
 
Objectives:
- Administer Cloud Spanner instances.
 - Backup, restore, import, and export data.
 - Modify database schemas with no downtime.
 - Monitor your Cloud Spanner databases and applications
 
Activities:
- Lab: Reconciling Account Data with Cloud Spanner Change Streams
 - Lab: Leverage the Autoscaler Tool for Cloud Spanner to Achieve Workload Elasticity
 
Module 7 - Spanner Best Practices
Topics:
- Spanner Best Practices
 - Challenge Lab
 
Objectives:
- Review best practices for using Cloud Spanner
 
Activities:
- Challenge Lab: Administering a Spanner Database