When you create a resource in Google Cloud, you almost always have to decide where it lives. That decision, which the console presents as a simple drop-down, shapes the latency your customers suffer, the price you pay, which services are available to you, whether you comply with data protection law and what happens when a data centre fails. It is not a configuration detail: it is an architectural decision that is very costly to reverse afterwards.
In this lesson we will learn the geography of Google Cloud and what it means for a service to be zonal, regional, multi-region or global; why Google's private backbone network and its points of presence matter for latency; what criteria to use when choosing a region, applied to AlpinaShop's real decision between europe-west1 and europe-southwest1; what deploying across several zones protects against and what multi-region demands; and how responsibility is divided between Google and you depending on the type of service, including how to read SLAs and why an SLA does not promise that nothing will ever fail.
Contents
- The geography of Google Cloud
- Service scope: zonal, regional, multi-region and global
- The private backbone and the points of presence
- How to choose a region: the five criteria
- AlpinaShop's decision:
europe-west1versuseurope-southwest1 - Failure domains and availability
- The shared responsibility model
- SLAs and service credits
- The geography of Google Cloud
Google Cloud organises its physical infrastructure at three levels:
| Level | What it is | Example | Isolation against failures |
|---|---|---|---|
| Zone | A failure domain within a region. Roughly a data centre or an isolated part of one | europe-west1-b |
A power cut, a network failure or a fire affects one zone |
| Region | A set of zones (usually 3, sometimes more) in the same geographical area, connected to each other with very low latency | europe-west1 (Saint-Ghislain, Belgium) |
A natural disaster or a regional outage can affect the whole region |
| Multi-region | A broad grouping of regions for services that replicate data between them | EU, US, ASIA |
Survives the complete loss of a region |
Important details:
- The zones of a region are very close to each other, with network latencies typically below a millisecond. That allows synchronous replication between zones with no perceptible penalty: it is the basis of regional high availability.
- Zone letters are not stable across projects. The
europe-west1-bzone in your project and in another customer's may correspond to different physical hardware. Google makes this mapping deliberately in order to spread the load. - Latency between regions is significant. Between
europe-west1andeurope-southwest1there are on the order of a dozen milliseconds; between Europe and the United States, around 100 ms. Any architecture that crosses regions in the critical path of a request will notice it.
The names of the European regions most relevant to a Spanish company:
| Region | Location | Notes |
|---|---|---|
europe-west1 |
Saint-Ghislain (Belgium) | One of the oldest and most complete in Europe; good price and catalogue |
europe-southwest1 |
Madrid (Spain) | Lower latency from Spain; data on Spanish territory |
europe-west4 |
Eemshaven (Netherlands) | Very complete, popular for data and AI workloads |
europe-west9 |
Paris (France) | An alternative with residency in France |
europe-west3 |
Frankfurt (Germany) | Common for German residency requirements |
- Service scope: zonal, regional, multi-region and global
Every Google Cloud service has a scope that determines where it lives and which failures it survives. Understanding it is essential for designing any architecture.
| Scope | What it means | What happens if a zone goes down | Examples we will see in the course |
|---|---|---|---|
| Zonal | The resource exists in a single zone | The resource is lost | Compute Engine instance, zonal persistent disk, GKE node |
| Regional | The resource is replicated automatically across the zones of a region | It keeps working | Cloud SQL with high availability, regional Cloud Storage bucket, regional instance group, regional GKE cluster |
| Multi-region | Data is replicated across several regions | It keeps working even if a whole region goes down | EU multi-region Cloud Storage bucket, EU BigQuery dataset |
| Global | It has no location: the service is a single one for your whole organization | It is unaffected | IAM, Cloud DNS, VPC network, global HTTP(S) load balancer, Artifact Registry (global or regional depending on config) |
A classification of the specific services that will appear in the course:
| Service | Scope | Comment |
|---|---|---|
| Compute Engine (instance) | Zonal | To survive a zone, you need a regional instance group |
| Persistent disk | Zonal (or regional with synchronous replication) | The regional disk costs more and has slightly lower performance |
| Cloud Storage | Regional, dual-region or multi-region | It is chosen when creating the bucket and cannot be changed afterwards |
| Cloud SQL | Zonal by default; regional with high availability | HA replicates synchronously to another zone in the same region |
| GKE | Zonal or regional cluster | The regional one replicates the control plane across three zones |
| Cloud Run | Regional | It is deployed per region; the global load balancer can spread across several |
| BigQuery | Regional or multi-region | The dataset's location is immutable |
| Pub/Sub | Global with configurable regional storage | The topic is accessible globally |
| VPC | Global (subnets are regional) | A Google peculiarity: with other providers the network is regional |
| External HTTP(S) load balancer | Global | A single anycast IP serves from the PoP nearest the user |
| IAM | Global | Permissions have no location |
| Cloud DNS | Global | — |
Two cases deserve a separate comment:
- The global VPC is a real difference from AWS and Azure, where the virtual network is regional. In Google Cloud a single VPC can have subnets in Belgium, Madrid and Tokyo, and the machines in all of them communicate over private IP without configuring peering. We will study it in lesson 03-01.
- The immutability of the location in Cloud Storage and BigQuery is a detail that catches many people out: if you create the
alpinashop-catalogobucket in the wrong region, the only solution is to create another one and copy the data, paying the corresponding traffic charges.
- The private backbone and the points of presence
Google operates one of the largest private networks in the world: its own fibre plus contracted capacity linking its data centres to each other and to more than a hundred points of presence (PoPs) around the planet, Madrid included.
Why this matters in practice:
- Traffic enters Google's network early. When an AlpinaShop customer in Seville requests a page, their request reaches the nearest Google PoP (Madrid) after a few hops across the internet, and from there it travels to
europe-west1over Google fibre. The "unpredictable" part of the journey is shortened. - Less latency and, above all, less variability. The public internet has unpredictable latency spikes; a privately managed end-to-end network does not.
- It is the basis of the global load balancer. Google's external HTTP(S) load balancer uses a single anycast IP address announced from every PoP. The user connects automatically to the nearest point and from there traffic travels over Google's network to the appropriate backend. It is covered in lesson 03-02.
- It is the basis of Cloud CDN. Static content —AlpinaShop's product images, for instance— can be cached at those PoPs, served from a few milliseconds away from the customer without ever touching the bucket. Lesson 03-03.
graph LR
U1[Customer in Seville] --> P1[PoP Madrid]
U2[Customer in Berlin] --> P2[PoP Frankfurt]
P1 --> B[Global load balancer anycast IP]
P2 --> B
B --> R1[Backend in europe-west1]
P1 -.cache.-> C1[Cloud CDN]
P2 -.cache.-> C2[Cloud CDN]
One architectural consequence worth retaining right away: with a well-configured CDN and global load balancer, the region where your backend lives matters less than it seems for static content, but it is still decisive for anything that has to talk to the database.
There are also two network service tiers that affect cost and performance:
| Tier | How traffic travels | Cost | When to use it |
|---|---|---|---|
| Premium (default) | Over Google's private network end to end | Higher | Production, end users |
| Standard | It leaves for the public internet as soon as possible | Lower | Internal workloads, test environments, latency-insensitive traffic |
- How to choose a region: the five criteria
| Criterion | Question it answers | How to assess it |
|---|---|---|
| Latency | Where are my users? | Measure with per-region latency tools; rule of thumb: ~1 ms per 100 km of fibre, plus processing |
| Data residency and regulation | Where must my data legally be? | GDPR, sector-specific regulation, internal customer policies |
| Price | What does the same thing cost here and there? | Prices vary between regions; check the official calculator |
| Service availability | Does what I need exist here? | Not all regions offer every service or every machine type |
| Sustainability and proximity to other resources | What is its carbon footprint? Where is the rest of my system? | Google publishes carbon-free energy data by region |
Let us expand on the two that are most underestimated.
Data residency and the GDPR
A very widespread confusion: the GDPR does not, as a general rule, require the data of European citizens to remain in a specific country or even within the EU. What it requires is that the processing complies with the regulation and that international transfers have adequate safeguards.
That said, in practice there are solid reasons to keep data in the EU:
- It completely avoids the legal complexity of international transfers.
- Many corporate and public sector customers require it contractually, even where the law does not impose it.
- Certain sectors (healthcare, banking, public administration) do have stricter specific requirements.
Google also offers organization policies to restrict by policy the regions in which resources can be created (gcp.resourceLocations), which turns data residency into something verifiable rather than merely an intention. It is covered in lesson 07-07.
For AlpinaShop, which sells to consumers in Spain and Portugal and processes customers' personal data (name, address, order history), the decision is clear: everything inside the EU. The question is between Belgium and Madrid.
Service availability
Not all regions are the same. The oldest and largest regions have the full catalogue; the newer ones take on services progressively, and some machine types, accelerators (GPU, TPU) or data services take a while to arrive.
# See the zones of the European regions and their status
gcloud compute zones list --filter="region:(europe-west1 europe-southwest1)" \
--format="table(name, region.basename(), status)"# Check which machine types exist in a specific zone.
# Useful before deciding on a region: not all offer the same families.
gcloud compute machine-types list \
--filter="zone:europe-southwest1-a AND name~^n2-" \
--format="table(name, guestCpus, memoryMb)"The first command lists the regions with their status. The second uses --filter to keep only the two candidate regions and --format with region.basename() to show the region's short name instead of its full URL. The third combines two conditions with AND and uses ~ to express "the name matches the regular expression ^n2-", which lets you check whether a particular machine family is available before committing to a region.
- AlpinaShop's decision:
europe-west1 versus europe-southwest1
europe-west1 versus europe-southwest1Marta analyses the two candidates with the company's real data: 85 % of orders come from Spain, 10 % from Portugal and 5 % from the rest of Europe.
| Criterion | europe-west1 (Belgium) |
europe-southwest1 (Madrid) |
|---|---|---|
| Latency from Spain | ~30-40 ms | ~5-15 ms |
| Latency from Portugal | ~35-45 ms | ~15-25 ms |
| Latency from central Europe | Very good | Acceptable |
| Price | Generally cheaper | Somewhat dearer for several services |
| Service catalogue | Very complete, a mature region | Good and growing, but with less availability of some families and accelerators |
| Zones | 3 | 3 |
| Data residency | EU (Belgium) | EU and Spanish territory |
| Carbon-free energy | High | High |
The decision
AlpinaShop chooses europe-west1 as its main region for this first phase of the migration, with europe-west1-b as the default zone. The reasons:
- It is a mature region, with all the services the course and the company will need, including the data and AI ones that will come later. Starting a migration in an incomplete region forces you to discover the gaps at the worst possible moment.
- The price is lower for several of the services it will consume most.
- The latency penalty is acceptable and can be mitigated: the 20-25 ms difference is perceptible in a measurement, but it is largely neutralised by serving static content from Cloud CDN at the Madrid PoP and caching the dynamic parts. The bulk of a catalogue page is images.
- Data residency is satisfied: Belgium is European Union territory, and AlpinaShop has no sector-specific requirements demanding Spanish territory.
When Marta would revisit this decision. If AlpinaShop signed a contract with a Spanish public authority requiring data on national territory, or if the conversion analysis showed that latency is costing sales, the Cloud SQL instance alpinashop-pedidos and the alpinashop-catalogo bucket would be reconsidered in favour of europe-southwest1. That is why europe-southwest1 will appear several times in the course: it is the ever-present alternative whenever we talk about latency or data residency in Spain.
# Set the default region and zone in the gcloud configuration.
# It saves having to state them in every command and prevents mistakes
# such as carelessly creating resources in us-central1.
gcloud config set compute/region europe-west1
gcloud config set compute/zone europe-west1-bThis pair of commands is among the most profitable in the course: without them, many commands use default values or ask interactively, and it is very easy to end up with resources scattered across half the world.
- Failure domains and availability
A failure domain is the set of resources that can go down together for the same reason. Designing for availability means spreading your resources across different failure domains.
| Deployment level | Survives | Does not survive | Cost and complexity |
|---|---|---|---|
| One zone | The failure of one particular machine | The zone going down | Minimal |
| Several zones in a region | A whole zone going down | The entire region going down | Moderate |
| Several regions | A region going down | A global failure (extremely rare) or a replicated human error | High |
What each step up involves:
- Going from one zone to several zones is the step with the best cost/benefit ratio, and the one that covers the vast majority of real incidents. It usually requires: synchronous database replication (Cloud SQL with HA), several instances behind a load balancer, and regional rather than zonal storage. Latency between zones is sub-millisecond, so synchronous replication is viable.
- Going from several zones to several regions changes the nature of the problem. Latency between regions makes synchronous replication unviable without penalising writes, so you have to choose between asynchronous replication (with possible loss of recent data) or databases designed for it, such as Spanner. On top of that you have to solve traffic routing and failover.
A warning against over-enthusiasm: multi-region is not "more availability" for free. It multiplies cost, complexity and error surface, and there are incidents it replicates rather than contains (a faulty deployment or an accidental deletion spreads to every region). For AlpinaShop, the right answer at this stage is multi-zone production within europe-west1, with backups in an EU multi-region bucket as additional protection.
The concepts of SLO, RTO and RPO, and the detailed design of high availability and disaster recovery architectures, are studied in lesson 07-06.
- The shared responsibility model
Security in the cloud is always shared. Google answers for the security of the cloud; you answer for security in the cloud. Exactly where the line falls depends on the type of service.
| Layer | On-premise | IaaS (Compute Engine) | PaaS (Cloud SQL, App Engine) | Serverless (Cloud Run, BigQuery) |
|---|---|---|---|---|
| Physical facilities and hardware | You | |||
| Physical network and internal encryption in transit | You | |||
| Hypervisor and isolation | You | |||
| Operating system and patches | You | You | ||
| Runtime and dependencies | You | You | Google (engine) / You (version) | |
| Network and firewall configuration | You | You | You | You (less surface) |
| IAM and access configuration | You | You | You | You |
| Application code | You | You | You | You |
| Data and its classification | You | You | You | You |
| User identity management | You | You | You | You |
| Backups | You | You | Google runs them / You configure and verify them | Depends on the service |
What never stops being yours, in any service model:
- Your data: what you collect, how long you keep it, how you classify it, whether it is encrypted with keys you manage.
- Who accesses it: the IAM policies, identity management, credential rotation.
- Your configuration: a public bucket, a firewall rule that opens 0.0.0.0/0 to port 22 or a database with a public IP are exclusively your responsibility, and they are the cause of the vast majority of real cloud breaches.
- Your code: the vulnerabilities in your application and in your dependencies.
Applied to AlpinaShop:
| Resource | Google takes care of | Marta and Dani take care of |
|---|---|---|
| Compute Engine VM | Hardware, hypervisor, physical network, infrastructure availability | Updating the operating system, configuring the firewall, managing the SSH keys, hardening Nginx |
Cloud SQL alpinashop-pedidos |
Installing and patching PostgreSQL, running backups, failover | Choosing whether it has a public IP, defining users and passwords, deciding the backup retention, testing the restore |
Bucket alpinashop-catalogo |
Durability, replication, encryption at rest | Keeping it non-public, IAM permissions, object lifecycle |
Cloud Run alpinashop-web |
The whole runtime environment and scaling | The container image and its vulnerabilities, the environment variables, who can invoke it |
BigQuery alpinashop_analitica |
Infrastructure, availability, durability | What personal data is loaded there and who can query it |
A note that surprises many people: encryption at rest is enabled by default in every Google Cloud storage service, without you having to do anything. Google manages the keys. If you need to manage them yourself (for regulatory reasons or internal policy), there are customer-managed keys with Cloud KMS, the subject of lesson 03-06.
- SLAs and service credits
An SLA (Service Level Agreement) is the contractual availability commitment for a service. Reading them properly avoids both naivety and cynicism.
Typical orders of magnitude (always check the current figures in each service's official terms, because they change):
| Configuration | Typical SLA | Permitted unavailability per month |
|---|---|---|
| A single VM in one zone | ~99.5 % | ~3.6 hours |
| VMs across several zones in a region | ~99.99 % | ~4.4 minutes |
| Cloud SQL with high availability | ~99.95 % | ~22 minutes |
| Multi-region Cloud Storage | ~99.95 % | ~22 minutes |
| Global load balancer | ~99.99 % | ~4.4 minutes |
| Service with no SLA (preview/pre-GA) | None | No commitment |
How to read an SLA properly:
- The SLA depends on your architecture, not just on the service. Look at the table: the same VM has a very different commitment depending on whether it is alone in one zone or spread across several. Google does not guarantee you 99.99 % if you deploy in a single zone.
- An SLA is not a promise that nothing will fail. It is a financial commitment: if Google falls short, you are entitled to a service credit, that is, a discount on later months' bills.
- The credits are derisory compared with the real damage. A typical breach gives rise to a credit of 10-25 % of the affected service's bill for that period. If AlpinaShop loses an afternoon of the autumn campaign, the credit will not come close to covering the lost sales. The SLA is no substitute for designing for resilience.
- Credits have to be claimed. They are not applied automatically: you have to submit a request within a deadline, providing logs that document the unavailability. Another reason to have Cloud Monitoring properly configured (lesson 06-04).
- There are exclusions. The SLA does not cover anything caused by your own configuration, by third-party software, by exceeding quotas, or by services in preview.
The practical conclusion: use the SLA as a signal of the level of reliability Google is prepared to commit to for a given architecture, and as a criterion for choosing a configuration, not as a safety net for your business.
Common Mistakes and Tips
- Leaving the default region. Many tutorials and some defaults point at
us-central1. For AlpinaShop that would mean 100 ms of extra latency and data outside the EU. Set the region and zone withgcloud config setfrom day one. - Confusing region with zone. Creating a VM "in
europe-west1" is not possible: VMs are zonal and live ineurope-west1-b,-cor-d. - Believing that multi-zone and multi-region are the same thing. Multi-zone protects against a data centre going down and is affordable; multi-region protects against the loss of an entire region and is expensive and complex.
- Creating a bucket or a dataset in the wrong location. The location of Cloud Storage and BigQuery is immutable: the only way out is to create another one and copy the data, paying for the move.
- Assuming every region has every service. Check availability before committing, especially with GPUs, TPUs and recent services.
- Thinking that "managed" means "secure by default". The configuration is yours in every model. A public bucket is a public bucket even when the service is serverless.
- Relying on the SLA as a continuity plan. The service credit does not pay for lost sales.
- Tip: measure, do not assume. Before deciding on a region for latency reasons, measure from where your real users are.
- Tip: separate the region decision from the architecture decision. First decide where the data must live (regulation, latency) and then how the compute is deployed.
- Tip: use an organization policy to restrict regions. It is the only way to guarantee that nobody carelessly creates a resource in Iowa.
Exercises
Exercise 1: classifying by scope
For each AlpinaShop resource, state its scope (zonal, regional, multi-region or global) and what happens if the europe-west1-b zone goes down completely:
- A Compute Engine instance serving the legacy Nginx, created in
europe-west1-b. - The Cloud SQL instance
alpinashop-pedidosconfigured with high availability ineurope-west1. - The
alpinashop-catalogobucket created asEUmulti-region. - The IAM policy that gives Lucía read permission on BigQuery.
- A GKE cluster
alpinashop-clustercreated as zonal ineurope-west1-b. - The external HTTP(S) load balancer that publishes the shop.
Exercise 2: a reasoned region choice
AlpinaShop signs an agreement with a chain of sports shops in Germany: the new B2B platform will serve wholesale orders from Germany, will process German companies' data and the contract requires that the data remains on German territory. The expected volume is small and requires neither GPUs nor exotic services.
- Which region would you choose and why?
- Should the B2B data live alongside the rest in the same
tiendadatabase? Justify your answer. - What mechanism would you use to guarantee technically that nobody creates resources for that project outside Germany by mistake?
Exercise 3: shared responsibility
Analyse these five real incidents and determine, in each case, whether responsibility lies with Google or with AlpinaShop, and what specific measure would have prevented it:
- The
alpinashop-catalogobucket was left configured with public access and a search engine indexed invoices that had been uploaded there by mistake. - A zone in
europe-west1suffered a 40-minute power cut and the VM serving the shop became unreachable. - An attacker got in over SSH to the legacy VM using a weak password belonging to a system user.
- A critical vulnerability in the PostgreSQL version used by Cloud SQL was patched without anyone at AlpinaShop being involved.
- The Flask application had an SQL injection vulnerability in the product search.
Solutions
Solution 1
- Zonal. The instance is lost and with it the service, until it is recreated in another zone. The associated zonal persistent disk also becomes inaccessible.
- Regional. Cloud SQL with HA keeps a standby replica in another zone of the region and fails over automatically. There is a brief outage during the failover (on the order of tens of seconds), but the service restores itself.
- Multi-region. It is entirely unaffected: the data is replicated across several EU regions. It is the highest level of resilience of those appearing here.
- Global. IAM has no location; the policy remains in force and Lucía keeps her access.
- Zonal. The cluster's control plane and all its nodes are lost. A regional cluster would have replicated the control plane across three zones and kept the nodes in the surviving zones.
- Global. The load balancer is unaffected, but it will stop sending traffic to backends in the failed zone. If all the backends were in that zone, it has nowhere to send the traffic: the global load balancer does not create availability on its own, it distributes it.
Solution 2
europe-west3(Frankfurt), being a region on German territory with a full catalogue and a mature one at that.europe-west10(Berlin) would be another valid option on German territory; between the two, Frankfurt offers greater service availability and a better price, while Berlin might appeal on latency grounds if the customers were concentrated there. Given that the volume is small and there are no exotic requirements, maturity weighs more.- No. The German B2B data should live in its own instance and its own project, in
europe-west3. Mixing it with thetiendadatabase ineurope-west1would directly breach the contractual residency requirement, and separating it later would be far more costly. The natural structure is a new project, for examplealpinashop-de-prod, inside theproduccionfolder. - An organization policy restricting locations (
constraints/gcp.resourceLocations) applied to the project or to a folder containing it, allowing onlyin:eu-west3-locations. Unlike a rule written in a document, this policy technically prevents the creation of resources outside the permitted location, even for users with broad permissions. It is studied in lesson 07-07.
Solution 3
- AlpinaShop's responsibility. A bucket's access configuration is always the customer's. Google provides the controls; using them is your job. What would have prevented it: enabling public access prevention at organization level, using uniform bucket-level access, and not uploading documents containing personal data to a bucket intended for public catalogue images.
- Google's responsibility as far as the infrastructure is concerned: a power cut in a zone is a cloud failure. But the unavailability of the service is AlpinaShop's responsibility, because it deployed a single VM in a single zone. Google meets its zonal SLA; AlpinaShop did not design for failure. What would have prevented it: a regional managed instance group behind a load balancer, with the database in Cloud SQL with HA.
- AlpinaShop's responsibility. The operating system and its users are theirs under IaaS. What would have prevented it: disabling password authentication for SSH, using OS Login with Google identities, not exposing port 22 to the internet and connecting through Identity-Aware Proxy.
- Google's responsibility, and it is exactly the value you buy when you use a managed service: patching the database engine is theirs. AlpinaShop only has to make sure the maintenance window is configured at an acceptable time and to keep track of major version changes.
- AlpinaShop's responsibility. Application code is always the customer's, in every service model, serverless included. What would have prevented it: parameterised queries, code review, static analysis in the CI/CD pipeline and, as an additional layer, Cloud Armor rules against injection patterns (lesson 03-05).
Conclusion
We now know where AlpinaShop's resources are going to live and who answers for what. We have gone through Google Cloud's geography —zone, region and multi-region— and classified the course's services according to whether they are zonal, regional, multi-region or global, with the peculiarity that in Google Cloud the VPC is global and the location of a bucket or a dataset is immutable. We have seen why Google's private backbone and its points of presence reduce latency and make the global load balancer with an anycast IP and Cloud CDN possible. We have applied the five region selection criteria to AlpinaShop's real case and decided on europe-west1 with zone europe-west1-b, leaving europe-southwest1 as the alternative should residency requirements on Spanish territory appear or should latency start costing sales. We have understood what deploying across several zones protects against compared with what multi-region demands, and we have divided security between Google and ourselves with the rule that never changes: the data, the access, the configuration and the code are always yours. And we have learned to read an SLA for what it is: a financial commitment that depends on your architecture, not a guarantee that nothing will fail.
One last piece of the module remains, and it is the one that turns all of the above into real work. In the next lesson, Cloud Shell and the gcloud CLI, we will leave the theory behind and start typing: we will look at what Cloud Shell is and what limits it has, how to install the CLI locally, how a gcloud command is structured and how to master --format and --filter, how authentication and named configurations work for switching between alpinashop-dev and alpinashop-prod, and we will close the module with the course's first real deployment: Dani will publish an AlpinaShop "coming soon" page on the internet, end to end, from the browser.
Google Cloud Platform (GCP) Course
Module 1: Introduction to Google Cloud Platform
- What is Google Cloud Platform?
- Setting Up Your GCP Account
- A Tour of the GCP Console
- Projects, Resource Hierarchy and Billing
- Regions, Zones and the Shared Responsibility Model
- Cloud Shell and the gcloud CLI
Module 2: Core GCP Services
- Compute Engine: Virtual Machines on Google Cloud
- Cloud Storage: Object Storage
- Cloud SQL: Managed Relational Databases
- App Engine: Platform as a Service
- Google Kubernetes Engine (GKE)
- NoSQL Databases: Firestore, Bigtable and Spanner
- How to Choose the Right Compute Service
Module 3: Networking and Security
- VPC Networks
- Cloud Load Balancing
- Cloud CDN
- Identity and Access Management (IAM)
- Cloud Armor
- Secrets and Encryption: Secret Manager and Cloud KMS
- Cloud DNS, TLS Certificates and Publishing Services Securely
Module 4: Data and Analytics
- BigQuery: The Analytical Data Warehouse
- Cloud Dataflow: Batch and Streaming Data Processing
- Cloud Dataproc: Managed Spark and Hadoop
- Cloud Pub/Sub: Asynchronous Messaging
- Cloud Data Fusion: Code-Free Data Integration
- Orchestrating Pipelines with Cloud Composer and Workflows
- Data Governance and Dashboards with Dataplex and Looker Studio
Module 5: Machine Learning and AI
- Vertex AI: The Machine Learning Platform on GCP
- AutoML: Custom Models Without Writing Code
- TensorFlow on GCP: Training and Serving Models
- Natural Language API
- Vision API
- Generative AI on Vertex AI: Gemini Models and Embeddings
- MLOps: From Model to Product with Vertex AI Pipelines
Module 6: DevOps and Monitoring
- Cloud Build: Continuous Integration on GCP
- Cloud Source Repositories and Source Code Management
- Cloud Functions: Serverless Functions
- Cloud Monitoring (formerly Stackdriver): Metrics, Dashboards and Alerts
- Cloud Deployment Manager and Native Infrastructure as Code
- Cloud Logging and Cloud Trace: Logs, Traces and Diagnostics
- Terraform on GCP: Infrastructure as Code in Practice
Module 7: Advanced GCP Topics
- Hybrid and Multicloud with Anthos
- Serverless Computing with Cloud Run
- Advanced Networking: Shared VPC, Peering and Hybrid Connectivity
- Security Best Practices
- Cost Management and Optimization
- Reliability: SLOs, High Availability and Disaster Recovery
- Governance at Scale: Organization, Policies and Auditing
