Google Cloud Certification Notes
course: Cloud Fundamentals
course: Cloud Fundamentals + Securing and Integrating Components of your Application
<service>.<resource>.<verb>
= collections of permissions
flowchart TD
1((User)) --> 2((IAP))
2 --> 3(Google_Authentication)
3 --> 4(IAM_Authorization)
4 --> 5(Access)
course: Cloud Fundamentals + Getting Started With Application Development + Application Development with Cloud Run
secure, individual, private cloud-computing model hosted in a public cloud
web
= 80,443 IN allow)flowchart TD
1(Application) --> 2(Cloud SQL Auth Proxy Client)
2 -- SA access token --> 3(Cloud SQL Auth Proxy Server)
3 --> 4(IAM)
4 --> 5(Cloud SQL Database Server)
managed, serverless
NoSQL, document oriented (key-value)
Documents organized into collections
horizontally scalable
offer multi-regional access
can be accessed from multiregional backend services
Usage: mobile and web apps, web and server development
Datastore:
Firestore in Datastore mode
Native Firestore Features cannot be used with datastore mode
Usage: Server Applications
Objects are called "Entities"
Group of Entities are called "Kind"
Entities have a unique key: unique identifier of (Namespace, Kind, Id, optional:Ancestor Path)
Values / Fields of Entities are called Properties
Indexes
For complex queries on large (non indexed) datasets, use BigQuery
Do not index Properties with monotonically increasing values (such as timestamp)
Queries are more restrictive that relational databases (like joins)
Naming based on UTF-8 Characters
Usage:
Features\Mode | Native Mode | Datastore Mode |
---|---|---|
mobile and web client libraries | ✔️ | ❌ |
real-time and offline features | ✔️ | ❌ |
ideal for: | mobile, web, IoT, real-time applications (no heavy writes) | Server Apps (heavy read/write) |
kubectl
cli: kubectl
[command]
[type]
[name]
[flags]
Pod definition explained:
apiVersion: v1 #kubernetes api version
kind: Pod #object
metadata: # identifier object name, unique id and optional namespace
name: nginx #unique string per namespace
#uid: 4dd... #generated by kubernetes
labels: #key value pairs that tag objects
app: nginx
env: dev
Example Deployment Configuration for 3 nginx pods
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3 #scale
selector:
matchLabels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
GKE Autopilot
(fully managed kubernetes with even less operational effort)
course: Hybrid Cloud Modernizing Applications with Anthos
Write Code
-> Build Image
-> Run Image from Artifact Registry (GCR)
gcloud beta code dev
INTERNAL
: only allows requests from VPC (does not allow requests from e.g. pubsub as those do not run in the VPC)INTERNAL AND LOAD BALANCING
: additionally to internal, it allows requests from GLBALLOW ALL
(default): no restrictionspack
is a command line toolcourse: Securing and Integrating Components of your Application
course: Getting Started With Application Development
Repository
-> Build (and Test) System
-> Deployment System
-> Test/Production Environment
course: App Deployment, Debugging, and Performance + Application Development with Cloud Run
Code
-> Build
-> Deploy (stage)
-> Test
-> Release (production)
-> Monitor
Google Cloud Source
, GitHub
, BitBucket
etc.Google Cloud Build
, Jenkins
, GitHub Actions
, Gitlab CI
, CircleCI
etc.Terraform
, Ansible
, Puppet
, Chef
etc.3 options:
course: Getting Started With Application Development + Application Development with Cloud Run
"Collecting, Processing, Aggregating and displaying real-time quantitative data [...]" e.g. Query counts, Error counts, Processing times, Server lifetimes Reference: Google's Site Reliability Engineering Book
Monitoring Metric, measuring one aspect of service's reliability
Combines SLI with target reliability
Commitments made to your customers