This is a one hour technical talk by @wescpy on serverless computing with Google Cloud (Platform). It starts with a review of all of cloud computing then dives into serverless computing, demonstrates multiple products, and shows inspirational examples of apps built using these technologies. There is a bonus section covering serverless in-practice featuring how to think about app development, common use cases, flexibility, best practices, and local dev & testing.
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Â
Serverless computing with Google Cloud
1. Serverless computing
with Google Cloud
Wesley Chun - @wescpy
Developer Advocate, Google
Developer Advocate, Google Cloud
â Mission: enable current and future
developers everywhere to be
successful using Google Cloud and
other Google developer tools & APIs
â Focus: GCP serverless (App Engine,
Cloud Functions, Cloud Run); higher
education, Google Workspace, GCP
AI/ML APIs; multi-product use cases
â Content: speak to developers globally;
make videos, create code samples,
produce codelabs (free, self-paced,
hands-on tutorials), publish blog posts
About the speaker
Previous experience / background
â Software engineer & architect for 20+ years
â Yahoo!, Sun, HP, Cisco, EMC, Xilinx
â Original Yahoo!Mail engineer/SWE
â Technical trainer, teacher, instructor
â Taught Math, Linux, Python since 1983
â Private corporate trainer
â Adjunct CS Faculty at local SV college
â Python community member
â Popular Core Python series author
â Python Software Foundation Fellow
â AB (Math/CS) & CMP (Music/Piano), UC
Berkeley and MSCS, UC Santa Barbara
â Adjunct Computer Science Faculty, Foothill
College (Silicon Valley)
2. Serverless: why & agenda
1
Cloud computing
review
2
Introduction to
Google Cloud
3
Serverless
platforms
4
Inspiration
5
Summary
â Cloud computing has taken industry by storm (all?)
â App modernization top priority at many enterprises
â Containerizing apps, getting them on VMs, moving to the cloud
â We can give you lots of VMs & big disk, but why serverless?
â Serverless lets you focus on your solutions not what they run on
â Help prep next-generation (cloud-ready) workforce
01
Cloud computing
review
All you need to know about the
cloud
3. What is cloud computing?
spar
Google Compute Engine, Google Cloud Storage
AWS EC2 & S3; Rackspace; Joyent
Cloud service levels/"pillars"
SaaS
Software as a Service
PaaS
Platform as a Service
IaaS
Infrastructure as a Service
Google BigQuery, Cloud SQL,
Cloud Datastore, NL, Vision, Pub/Sub
AWS Kinesis, RDS; Windows Azure SQL, Docker
Google Apps Script
Salesforce1/force.com
Google Workspace (was G Suite/Google Apps)
Yahoo!Mail, Hotmail, Salesforce, Netsuite, OïŹce 365
Google App Engine, Cloud Functions
Heroku, Cloud Foundry, Engine Yard, AWS Lambda
4. Summary of responsibility
SaaS
Software as a Service
Applications
Data
Runtime
Middleware
OS
Virtualization
Servers
Storage
Networking
Applications
Data
Runtime
Middleware
OS
Virtualization
Servers
Storage
Networking
IaaS
Infrastructure as a Service
Applications
Data
Runtime
Middleware
OS
Virtualization
Servers
Storage
Networking
PaaS
Platform as a Service
Managed by YOU Managed by cloud vendor
Applications
Data
Runtime
Middleware
OS
Virtualization
Servers
Storage
Networking
on-prem
all you, no cloud
02
Introduction to
Google Cloud
GCP & Google Workspace
(formerly G Suite & Google Apps)
6. formerly
( )
Google Workspace
Top-level documentation and comprehensive developers
overview video at developers.google.com/gsuite
(formerly G Suite and Google Apps)
APIs
7. Google Compute Engine, Google Cloud Storage
AWS EC2 & S3; Rackspace; Joyent
SaaS
Software as a Service
PaaS
Platform as a Service
IaaS
Infrastructure as a Service
Google Apps Script
Salesforce1/force.com
Google Workspace (was G Suite/Google Apps)
Yahoo!Mail, Hotmail, Salesforce, Netsuite, OïŹce 365
Google App Engine, Cloud Functions
Heroku, Cloud Foundry, Engine Yard, AWS Lambda
Google BigQuery, Cloud SQL,
Cloud Datastore, NL, Vision, Pub/Sub
AWS Kinesis, RDS; Windows Azure SQL, Docker
Google Cloud Platform vs. Google Workspace
Workspace
APIs
GCP
APIs
cloud.google.com/hosting-options#hosting-options
GCP compute option spectrum
Compute
Engine
Kubernetes
Engine (GKE)
Cloud Run
on Anthos
Cloud Run
(fully-mgd)
App Engine
(Flexible)
App Engine
(Standard)
Cloud
Functions
8. 03
Google Cloud
serverless compute
GCP and Google Workspace
(formerly G Suite & Google Apps)
> Google Compute Engine configurable
VMs of all shapes & sizes, from
"micro" to 416 vCPUs, 11.776 TB
RAM, 256 TB HDD/SSD plus Google
Cloud Storage for data lake "blobs"
(Debian, CentOS, CoreOS, SUSE, Red Hat Enterprise Linux,
Ubuntu, FreeBSD; Windows Server 2008 R2, 2012 R2, 2016, 1803,
1809, 1903/2019, 1909)
cloud.google.com/compute
cloud.google.com/storage
Yeah, we got VMs & big disk⊠but why*?
9. Serverless: what & why
â What is serverless?
â Misnomer (a "PMM") :-)
â "No worries"
â Developers focus on writing code & solving business problems*
â Why serverless?
â Fastest growing segment of cloud... per analyst research*:
â $1.9B (2016) and $4.25B (2018) â $7.7B (2021) and $14.93B (2023)
â What if you go viral? Autoscaling: your new best friend
â What if you don't? Code not running? You're not paying.
* in USD; source:Forbes (May 2018), MarketsandMarketsâą & CB Insights (Aug 2018)
Google Compute Engine, Google Cloud Storage
AWS EC2 & S3; Rackspace; Joyent
SaaS
Software as a Service
PaaS
Platform as a Service
IaaS
Infrastructure as a Service
Google Workspace (was G Suite/Google Apps)
Yahoo!Mail, Hotmail, Salesforce, Netsuite, OïŹce 365
Google App Engine, Cloud Functions
Heroku, Cloud Foundry, Engine Yard, AWS Lambda
Google BigQuery, Cloud SQL,
Cloud Datastore, NL, Vision, Pub/Sub
AWS Kinesis, RDS; Windows Azure SQL, Docker
Serverless: PaaS-y compute/processing
Google Apps Script
Salesforce1/force.com
10. Google App Engine
App-hosting in the cloud
Why does App Engine exist?
â Focus on app not DevOps
â Web app
â Mobile backend
â Cloud service
â Enhance productivity
â Deploy globally
â Fully-managed
â Auto-scaling
â Pay-per-use
â Familiar languages
â Test w/local dev server
11. Hello World (Python "MVP")
app.yaml
runtime: python38
main.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello World!'
requirements.txt
Flask>=1.1.2
Deploy:
$ gcloud app deploy
Access globally:
PROJECT_ID.appspot.com
cloud.google.com/appengine/docs/standard/python3/quickstart
Not all apps user-facing or web-based!!
â Need backend processing? Want to build your own?
â No UI required... just need HTTP
â Optimal for user info (high scores, contacts, levels/badges, etc.)
â Better UI: move user data off phone so it's universally available
12. Popular App Engine Use Cases
â Mobile/Tablet
â App backends
â Cloud persistence
â Social/Mobile Games
â Speed, scale
â API integrations
â Personals/dating
â Consumer Web Apps
â Unpredictable traffic
â Scale (up or down)
â Apps in Academia
â Any course where students
build web or mobile apps
â Research projects
â IT/Operational apps
â Business Apps
â Enterprise
â Java runtime
â IT/Operational apps
â Web or Mobile
App Engine: product update
â Original App Engine runtimes execute on legacy platform (2008-today)
â Platform comes with bundled services
â Runtimes: Python 2.7, Java 8, Go 1.11, PHP 5 (all community-deprecated)
â Google Cloud committed to supporting them long-term
â 2nd generation service supports newer runtimes (2018-today)
â Platform no longer has bundled services
â Runtimes: Python 3.7+, Java 11, Go 1.12+, PHP 7, Node.js 10+, Ruby 2.5+
â Less restrictions, richer/fuller, more idiomatic developer experience
â "Copying"/self-bundling 3P libraries requirement lifted
â No more proprietary services means apps more portable, less lock-in
â Opens door to more options: GAE, GCF, GCR; GKE, GCE; on-prem
13. Google Cloud Functions
Function-hosting in the cloud
Why does Cloud Functions exist?
â Don't have entire app?
â No framework "overhead" (LAMP, MEAN...)
â Deploy microservices
â Event-driven
â Triggered via HTTP or background events
â Pub/Sub, Cloud Storage, Firebase, etc.
â Auto-scaling & highly-available; pay per use
â Flexible development environment
â Cmd-line or developer console (in-browser)
â Develop/test locally with Functions Framework
â Cloud Functions for Firebase
â Mobile app use-cases
â Available runtimes
â JS/Node.js 8, 10, 12, 14
â Python 3.7, 3.8, 3.9
â Go 1.11, 1.13
â Java 11
â Ruby 2.6, 2.7
â .NET Core 3.1
14. main.py
def hello_world(request):
return 'Hello World!'
Deploy:
$ gcloud functions deploy hello --runtime python38 --trigger-http
Access globally (curl):
$ curl REGION-PROJECT_ID.cloudfunctions.net/hello
Access globally (browser):
https://REGION-PROJECT_ID.cloudfunctions.net/hello
Hello World (Python "MVP")
cloud.google.com/functions/docs/quickstart-python
Google Cloud Run
Container-hosting in the cloud
15. The rise of containers... â Any language
â Any library
â Any binary
â Ecosystem of base images
â Industry standard
FLEXIBILITY
âWe canât be locked in.â
âHow can we use
existing binaries?â
âWhy do I have to choose between
containers and serverless?â
âCan you support language _______ ?â
Serverless inaccessible for some...
CONVENIENCE
16. Cloud Run: code, build, deploy
.js .rb .go
.sh
.py ...
â Any language, library, binary
â HTTP port, stateless
â Bundle into container
â Build w/Docker OR
â Google Cloud Build
â Image â Container Registry
â Deploy to Cloud Run (managed or GKE)
â GitOps: (CI/)CD Push-to-deploy from Git
State
HTTP
Hello World (Python "MVP")
main.py
import os
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=int(os.environ.get('PORT', 8080)))
cloud.google.com/run/docs/quickstarts/build-and-deploy
requirements.txt
Flask==1.1.2
17. Hello World (Python "MVP")
Dockerfile
FROM python:3-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "main.py"]
.dockerignore
Dockerfile
README.md
*.pyc
*.pyo
.git/
__pycache__
Build (think docker build and docker push) then deploy (think docker run):
$ gcloud builds submit --tag gcr.io/PROJ_ID/IMG_NAME
$ gcloud run deploy SVC_NAME --image gcr.io/PROJ_ID/IMG_NAME
OR⊠Build and Deploy (1-line combination of above commands):
$ gcloud run deploy SVC_NAME --source .
Access globally:
SVC_NAME-HASH-REG_ABBR.a.run.app
Docker &
Dockerfile
OPTIONAL!!
â Build containers easily & securely without creating/managing Dockerfiles
â Open source, open standard; based on CNCF Buildpacks spec v3
â Used by GCF Functions Framework to deploy locally-developed functions
â Supports most common development tools
â Go 1.10+
â Node.js 10+
â Python 3.7+
â Java 8 & 11
â .NET Core 3.1+
â Blog posts
â cloud.google.com/blog/products/containers-kubernetes/google-cloud-now-supports-buildpacks and
cloud.google.com/blog/products/serverless/build-and-deploy-an-app-to-cloud-run-with-a-single-command
Deploy to Cloud Run with Buildpacks
github.com/GoogleCloudPlatform/buildpacks
$ ls
index.js package.json
$ gcloud run deploy myapp --source .
$ ls
app.py requirements.txt
$ gcloud run deploy myapp --source .
18. Google Apps Script
Customized serverless JS runtime for automation, and extension
and integration with Google Workspace (formerly G Suite) and
other Google & external services
âHello World!â in Apps Script
20. Accessing maps from
spreadsheets?!?
goo.gl/oAzBN9
This⊠with help from Google Maps & Gmail
function sendMap() {
var sheet = SpreadsheetApp.getActiveSheet();
var address = sheet.getRange("A2").getValue();
var map = Maps.newStaticMap().addMarker(address);
GmailApp.sendEmail('friend@example.com', 'Map',
'See below.', {attachments:[map]});
}
JS
g.co/codelabs/apps-script-intro
21. 04
In-practice
Use cases, nebulousness &
flexibility, best practices,
local development & testing
Serverless common use cases App Engine Cloud Run
Cloud
Functions
Web services
Web app hosting/custom domains â â
HTTP services â â â
Container hosting â
APIs
Web & mobile backends â â
Internal APIs and services â â
Data processing â â
Automation
Workflow & orchestration â â
Event-driven automation â â
Common use cases
22. Flexibility in options
Cloud
Functions
App
Engine
Cloud
Run
local
server
Cloud
Translation
My "Google Translate" MVP
goo.gle/2Y0ph5q
â "Nebulous" sample web app
â Flask/Python app
â Python 2 & 3 compatible
â Uses Cloud Translation API
â Deployable to on-prem server
â Also GCP serverless compute
â App Engine
â Cloud Functions
â Cloud Run
â With only config changes
â No changes to app code
Serverless best practices
â Use the right tool for the job (GAE, GCF, or GCR)
â One top priority: latency
â SOA demands fast response from components
â Second top priority: architecture
â Breakup larger computing into components
â Microservices, each with low latency
â Uncouple components keeping state
23. BPs: Tools (know your platforms)
â Google App Engine â gives users the ability to deploy
source-based web applications or mobile backends to the cloud
without the concerns of servers or autoscaling (PaaS).
â Cloud Functions â for scenarios where you may not have an
entire app; great for microservices, one-off utilities, or event-driven
functions (FaaS/PaaS).
â Cloud Run â provides the flexibility of containers (any language,
library, binary) along with the convenience of serverless; use with
Docker or "containerless" with Cloud Buildpacks. (CaaS)
BPs: Latency
â Keep responses as short as possible (say <250ms)
â Can't respond immediately? Split out longer jobs
â Cloud Tasks, Cloud Pub/Sub, Cloud Scheduler (cron)
â Cache common objects, queries, output, etc.
â Avoid repeated compute or database fetches
â App Engine Memcache, Cloud Memorystore (Redis)
â Profile your code to find (and remove) bottlenecks
â Cloud Profiler, Cloud Trace: low overhead insightful tools
â Consider moving some processing to client-side
â Firebase/Cloud Firestore security rules, use edge-cache JS libs
24. BPs: More on latency
â Pagespeed tools to analyze & optimize your web apps
â developers.google.com/speed
â How to think about speed tools
â developers.google.com/web/fundamentals/performance/speed-tools
â Why speed matters post
â web.dev/why-speed-matters
â 250ms too general? More specifics:
â developers.google.com/speed/docs/insights/v5/about#categories
BPs: Still more on latency
â What about non-UI workloads > 250ms?
â App Engine autoscaling timeout: 1 min (Gen1), 10 mins (Gen2)
â App Engine basic & manual scaling timeout: 24 hrs (Gen1/Gen2)
â GAE cron & task queue timeout: 10 mins (Gen1-AS), 24 hrs (Gen1-B/MS)
â Cloud Tasks HTTP targets: 10 mins (default), 30 mins (max); App Engine
(Gen2) targets: same as GAE Std Gen1 task queue timeouts (10m/24h)
â Cloud Scheduler HTTP targets: from 15 secs to 30 mins, App Engine
targets: from 15 secs to 24 hrs
â Cloud Functions extended timeout: 1 min (default), 9 mins (max)
â Cloud Run extended timeout: 5 mins (default), 1 hr (max)
â Cloud Run Jobs (preview): tasks (1 hr each), jobs (>=1 tasks): 24 hrs
25. BPs: Architecture
â Going "stateless" is key
â Get a request, perform a service, then return response
â Cache common objects, queries, output, etc.
â Cache sessions elsewhere (cache, not in app); framework-provided?
â Use database external to app (Cloud Datastore/Firestore; Cloud SQL)
â Breakup monoliths into multiple microservices
â Loosely-coupled code elements; shared caching & database
â Change monitoring scenery
â Focus on user, business, app metrics; not HW (CPU, RAM) or networking
BPs: More on stateless (architecture)
â Going "stateless" may be a large architectural change
â Requires somewhat of a "mental reset"
â Receiving duplicate or retry requests? Logic should be idempotent.
â This means neither side effects nor data corruption
â What about job interruption and restarts? Same thing.
â Create repeatable logic exhibiting same behavior for given set of input
regardless of how often repeated
â Save output to different location than input, leaving input data intact
â If job runs again, should result in identical processing & same output
26. BPs: Even more on stateless
â Create unique ID for output to confirm work completed & avoid duplication
â Duplicate data represents "collection-level" corruption; downstream
systems possibly affected if they assume unique records
â When/where possible, checkpoint long-running jobs, soâŠ
â Periodically write partial results to persistent storage, e.g., DB, GCS, etc.
â Failure restarts/retries can pick up where it left off (vs. from beginning)
â Speeds up jobs and minimizes unnecessary costs
â Consider breaking-up larger workloads
â Especially those large enough not easily "checkpointable"
â Creates smaller tasks more likely to complete (granted more tasks)
BPs: Development
â Prototype rapidly
â Use favorite language and get something up-and-going
â Serverless platforms each come w/default service accounts
â When ready for production, switch to user-managed service accounts
â Follows best practice of "least privileges"
â Create separate projects for dev, test, stage, and prod
â Helps keep developers, testers, operators isolated to own sandbox
â Can share via IAM roles/permissions (shared buckets, databases, etc.)
â Local development and testing
â Running locally tests functionality, not scaling
â Typically can use local web framework server, SDK, or Docker
27. BPs: Local development/testing
â App Engine â local or framework devserver
â Local devserver (Gen1 or Gen2) and local unit testing (Gen1)
â Testing and deploying your application: running locally (Gen2)
â Cloud Functions â Functions Framework
â Functions Framework (local dev/testing; bundle function for Cloud Run)
â Cloud Functions local development
â Cloud Functions testing overview
â Codelab: Local development with Cloud Functions (Node.js) using VSC
â Cloud Run â run Docker containers locally
â Testing a Cloud Run service locally
â Tutorial: Local troubleshooting of a Cloud Run service
BPs: Local testing Cloud emulators
â Cloud Datastore
â Datastore emulator (non-App Engine or App Engine [Gen2])
â App Engine Datastore emulator (Gen1 [or Gen2]; migrate to above)
â Firebase/Cloud Firestore
â Firebase Emulator Suite (multiple product emulators; unit testing video)
â Cloud Firestore emulator (w/in Firebase Emulator Suite; ex: React Native)
â Cloud Storage emulator (w/in Firebase Emulator Suite; ex: React Native)
â Other Google Cloud emulators
â Cloud Pub/Sub, Cloud Spanner, Cloud BigTable
â Others: Google Cloud Java test tools; BigQuery test kit (non-Google)
28. BPs: Best practices reading library
â Automated tracing & performance analysis to find app bottlenecks (GAE, Feb 2016)
â Best practices for coldstarts/startup time (GAE, Jun 2017)
â Profile your app's performance in production (GAE, Jun 2019)
â Managing serverless cost & reliability (all, Apr 2020)
â Serverless optimizations & efficiency (all, Jun 2020)
â Global load balancer and CDN for serverless (all, Jul 2020)
â Creating effective services with good response times (GCR, Node.js, Nov 2020)
â Cloud Run "min instances" to reduce coldstarts (GCR, Dec 2020)
â Running effective Node.js Cloud Functions (GCF, Node.js, Dec 2020)
â GCR container lifecycle (GCR, Jan 2021)
â Overall architecture best practices (GCR, Java, Apr 2021)
â Zero effort performance insights with tracing (all, Aug 2021)
â Cloud Functions "min instances" to reduce coldstarts (GCF, Aug 2021)
05
Inspirational Ideas
Build with ALL of Google
30. Gmail message processing with GCP
Gmail
Cloud
Pub/Sub
Cloud
Functions
Cloud
Vision
Workspace
(formerly G Suite)
GCP
Star
message
Message
notification
Trigger
function
Extract
images
Categorize
images
Inbox augmented with Cloud Function
31. â Gmail API: sets up notification forwarding to Cloud Pub/Sub
â developers.google.com/gmail/api/guides/push
â Pub/Sub: triggers logic hosted by Cloud Functions
â cloud.google.com/functions/docs/calling/pubsub
â Cloud Functions: "orchestrator" accessing GCP (and Google Workspace/G Suite) APIs
â Combine all of the above to add custom intelligence to Gmail
â Deep dive code blog post
â cloud.google.com/blog/products/application-development/
adding-custom-intelligence-to-gmail-with-serverless-on-gcp
â Application source code
â github.com/GoogleCloudPlatform/cloud-functions-gmail-nodejs
App summary
Big data analysis to slide presentation
Access GCP tools from Google Workspace (formerly G Suite)
35. Supercharge Workspace (G Suite) with GCP
Workspace (G Suite) GCP
BigQuery
Apps Script
Slides Sheets
Application
request
Big data
analytics
App summary
â Leverage GCP and build the "final mile" with Google Workspace (formerly G Suite)
â Driven by Google Apps Script
â Google BigQuery for data analysis
â Google Sheets for visualization
â Google Slides for presentable results
â "Glued" together w/Google Workspace (formerly G Suite) serverless
â Build this app (codelab): g.co/codelabs/bigquery-sheets-slides
â Video and blog post: bit.ly/2OcptaG
â Application source code: github.com/googlecodelabs/bigquery-sheets-slides
â Presented at Google Cloud NEXT (Jul 2018 [DEV229] & Apr 2019 [DEV212])
â cloud.withgoogle.com/next18/sf/sessions/session/156878
â cloud.withgoogle.com/next/sf/sessions?session=DEV212
36. 06
Summary
Online resources &
references
Cost of Google Cloud serverless tools
â What is free in Google Cloud overall?
â Free Trial (credit card required; expires)
â $300USD credit good for first 90 days
â Always Free tier (credit card required; no expiration; subject to change)
â Independent of Free Trial & education grants (more below)
â Some GCP products free up to usage limits
â Learn about both programs at cloud.google.com/free
â Serverless Always Free tier (daily or monthly quotas)
â App Engine (28 [or 9] hours, 1GB storage & 1GB egress) per day
â Cloud Run (2M reqs, 350k GB-secs, 180k vCPU-secs, 1GB egress) per month
â Cloud Functions (2M calls, 400k GB-secs, 200k vCPU-secs, 5GB egress) per month
â Higher education (teaching & research) grants
â cloud.google.com/edu (credit card NOT required; expires)
â Provides "free" usage for coursework and initial research
$$ FREE $$
37. Cloud/serverless session summary
â Why go cloud?
â Cloud computing has taken the world by storm
â You're behind if you're not already using it⊠it's not too late!
â Help train the next generation cloud-ready workforce!
â Google Cloud and why serverless?
â Many features: compute, storage, AI/ML, NW, data processing, etc.
â Modernization more than moving VMs to the cloud
â Serverless lets users focus on just their logic (apps or functions)
â Interesting possibilities using all of Google Cloud (GCP + Workspace)
â Documentation
â GCP: cloud.google.com/{docs,appengine,functions,run,vision,automl,translate,language,
speech,texttospeech,video-intelligence,firestore,bigquery,compute,storage,gpu,tpu}
â G Suite: developers.google.com/{workspace,drive,calendar,docs,sheets,slides,apps-script}
â Introductory "codelabs" (free, online, self-paced, hands-on tutorials [Python])
â App Engine: codelabs.developers.google.com/codelabs/cloud-app-engine-python
â Cloud Functions: codelabs.developers.google.com/codelabs/cloud-starting-cloudfunctions
â Cloud Run: codelabs.developers.google.com/codelabs/cloud-run-hello-python3
â Apps Script: g.co/codelabs/apps-script-intro
â Others: gcplab.me (GCP) & codelabs.developers.google.com/?cat=googleworkspace (Workspace)
â Videos: youtube.com/GoogleCloudPlatform (GCP) and goo.gl/JpBQ40 (Workspace)
â Samples: github.com/GoogleCloudPlatform (GCP) and github.com/googleworkspace (Workspace)
â Know AWS/Azure? Compare w/GCP at cloud.google.com/docs/compare/{aws,azure}
â Google Cloud serverless products: cloud.google.com/serverless
Google Cloud references
38. Other Google APIs & platforms
â Google Workspace (G Suite) (code Gmail, Drive, Docs, Sheets, Slides!)
â developers.google.com/gsuite
â Firebase (mobile development platform and RT DB plus ML-Kit)
â firebase.google.com and firebase.google.com/docs/ml-kit
â Google Data Studio (data visualization, dashboards, etc.)
â datastudio.google.com/overview
â goo.gle/datastudio-course
â Actions on Google/Assistant/DialogFlow (voice apps)
â developers.google.com/actions
â YouTube (Data, Analytics, and Livestreaming APIs)
â developers.google.com/youtube
â Google Maps (Maps, Routes, and Places APIs)
â developers.google.com/maps
â Flutter (native apps [Android, iOS, web] w/1 code base[!])
â flutter.dev
Thank you! Questions?
Wesley Chun
@wescpy
Video: youtu.be/nOj8y_gjSWI?t=1170
Progress bars: goo.gl/69EJVw