KEMBAR78
Serverless and Design Patterns In GCP | PDF
Serverless Architecture &
Design Patterns
in GCP
Oliver Fierro V.
https://www.linkedin.com/in/oliverfierro/
Presales Solutions Architect
Co-organizer GDG Cloud Santiago Chile
https://gdg.community.dev/gdg-cloud-santiago-de-chile/
Definitions
Serverless
● Without provisioning infrastructure
● Without managing infrastructure
● Without states
● Fully Managed (Autoscaling)
● Pay ($) only for use
● Cost reducing
NO OPS!!
Definitions
Definitions
Compute: Function
Compute: CloudRun
Compute: AppEngine
Serverless, only functions?
Analytics
BigQuery
BigTable
3
Computing
Functions
AppEngine Standard
CloudRun
4
Persistence
Cloud Storage
1
Processing
DataFlow
PubSub
Cloud Schedule
Cloud Tasks
2
Serverless GCP Products
Computing
● AppEngine
Storage
● Cloud Storage
DataBase
● Firestore
Data Storage
● BigQuery
Data Process
● DataFlow
Triggering
● Cloud Functions
Messaging
● Cloud Pub/Sub
Automatic Learning
● Cloud ML Engine
Container
● CloudRun
● CloudRun GKE
CI/CD Pipeline
● CloudBuild
Serverless Considerations
1.- Use Case
2.- Cloud Products
Limitations!
3.- Migration strategy
4.- Best Practices
5.- Troubleshooting
● Logging
● Monitoring
● Alerting
Serverless Architecture Solution
CloudRun
Overview
Versus GKE
Definition
Cloudrun is a serverless product in GCP that offer the capabilities to execute
applications over a container without the need to manage the infrastructure or the
cluster for your own.
Run stateless containers on a fully managed environment.
Running Mode
● CloudRun
● CloudRun for Anthos
Automatic scale
Pay for use
Automanaged platform
Advantages
Language Support
Go, Python, Java, C#, PHP, Ruby, Node.js, Shell, and others
Pay for application execution time
Cost
CloudRun versus GKE
CLOUDRUN GKE
Service YML Internal Kubernetes Recipes.
Source Code Config Cloudbuild.yaml o Cloudbuild.json deployment.yaml
Secrets No. Environment Var at config level.
Sensible data into Secret Manager.
Environment var. Sensitive values encrypted (secrets).
Exposing Services Https domain Differents kind of service exposition (LoadBalancer, NodePort,
ClusterIP)
Logging Stackdriver logging Stackdriver logging
Monitoring Metrics Dashboard Stackdriver monitoring GKE
Image pulling Container Registry or Artifact Registry Service account like a secrets to pull image from private registry.
CloudRun versus GKE
CLOUDRUN GKE
Unsupported GCP
Products
Memorystore - Filestore (NAS) - Cloud Load Balancing
Google Cloud Armor - Cloud CDN - Identity-Aware Proxy
VPC Service Controls - Cloud Asset Inventory
Infrastructure
Management
Fully managed
Serverless
Additional efforts to manage configuration and cluster (scaling,
memory, cpu, fine tuning, pod’s, service exposure)
Application
intercommunication
Synchronous: Https call
Asynchronous: Cloud Tasks or PubSub
Between pod exposed internally (tcp/udp load balancer) and/or
externally (http load balancer)
Deploy strategies Rollbacks, partial deploy, traffic management Recreate, RollingUpdate, Canary, A/B, Blue/Green
Cloud Native Microservices deployed in containers as a service Microservices deployed in a cluster
Pipeline [cloudbuild.yml]
Upload image from gitlab source to cloud repository: gcloud builds
Deploying via console or command: gcloud run deploy
[service.yml, deployment.yml, kustomization.yml]
YML Support (deployment, service)
Interchange microservices ecosystem
CloudRun metrics
CloudRun logging
CloudRun details
CloudRun yaml
CloudRun permissions
Others Configurations
Build and Deploy Image
Build:
$ gcloud builds submit --config cloudbuild.yaml
Deploy:
$ gcloud run deploy --image gcr.io/[PROJECT-ID]/[IMAGE_NAME]--platform managed
OR
Console: Select Image from Container Registry Image
Decision Tree
Serverless
Design Patterns
Design Patterns
● Publish / Subscribe
● Events & Triggering
● DataPipeline
Design Patterns
PubSub: Publisher/Subscriber
Design Patterns
PubSub: Publisher/Subscriber
Design Patterns
Function: Event & Triggering
Event
Function
trigger
GCP Product
Design Patterns
Function: Event & Triggering
Design Patterns
Function: Event & Triggering
bucket
Function
trigger
Design Patterns
Function: Event & Triggering
Cloud Storage
Design Patterns
Function: Event & Triggering
FIRESTORE
Design Patterns
DataFlow: Pipeline
Design Patterns
DataFlow: Pipeline
Use Cases
Serverless Architecture &
Design Patterns
in GCP

Serverless and Design Patterns In GCP