Monday, Aug 12, 2019
1. Intro & Activity Update
2. Community Open Mic
3. Matt Welke: “A look at Google
Cloud Functions”
4. Kudz Murefu: “Firebase Crash
Course”
5. Networking
1
ServerlessToronto.org Meetup Agenda
Why we do what we do?
2
Serverless is New Agile
Serverless Dev (gluing
other people’s APIs
and managed services)
We're obsessed
helping Startups (and
creating meaningful
MVPs & products)
We build bridges
between Serverless
Community (“Dev leg”),
and Front-end & Voice-
First folks (“UX leg”),
and empower UX
developers
Achieve agility NOT by
“sprinting” faster (like in
Scrum), but by working
smarter (by using
bigger building blocks
and less Ops)
#ServerlessTO
Sponsors
3
Manning Publications 2019 giveaways:
1. www.manning.com/books/serverless-applications-with-nodejs
2. www.manning.com/livevideo/production-ready-serverless
3. www.manning.com/livevideo/production-ready-serverless
4. www.manning.com/livevideo/serverless-applications-with-AWS
5. www.manning.com/livevideo/serverless-applications-with-AWS
6. www.manning.com/books/serverless-architectures-on-aws
7. www.manning.com/books/http2-in-action
8. www.manning.com/books/event-streams-in-action
9. www.manning.com/books/the-design-of-everyday-apis
10. www.manning.com/livevideo/graphql-in-motion
11. www.manning.com/books/voice-applications-for-alexa-and-google-assistant
12. www.manning.com/livevideo/machine-learning-for-mere-mortals
13. www.manning.com/books/classic-computer-science-problems-in-python
14. www.manning.com/books/getting-mean-with-mongo-express-angular-and-node
4Check out MEAP program from our Learning Sponsor!
Venue Sponsor
5
As Certified B Corporation, Myplanet is purpose-driven and
creates benefit for all stakeholders, not just shareholders!
Catering Sponsor
6
Also an active Serverless Community member – check out
their “Data Pipelines using Serverless Architectures” talk!
Devinity
7
Devinity… continued
8
Community Open Mic
9
10 seconds of freedom
to pitch yourself, or
your company
Future Talks
2019
10
Upcoming Serverless Toronto Meetups
11
1. September 12, 2019: Serverless Design Patterns and
Best Practices – Mike Apted, Startup SA at AWS
2. October, 2019: Serverless CI/CD pipelines with AWS
CodePipeline and CodeBuild, vs CircleCI, vs Travis, vs
Seed – Frank Wang & Jay V
3. November or December: Serverless Heroes (authors
of “Serverless Applications with Node.js”) Slobodan
Stojanović & Aleksandar Simović will be here!
4. December or January, 2020: re:Invent recap –
Jonathan Dion, Senior Technical Evangelist at AWS
Feature Talks
1. Google Cloud Functions
2. Firebase Crash Course
12
Intro to Google Cloud
Functions
Using gcloud to deploy a Node.js function with CORS support.
Google Cloud Functions
Triggers
- HTTP trigger - Respond to HTTP request
- PubSub trigger - React (asynchronously) to message
- Storage - React to object added to bucket etc
- Firebase event triggers
Stateless
- Runs on temporary container with no persistent disk.
- Cannot run background tasks after response sent
Google Cloud Functions
Scaling
- Stays at 0 running containers when not triggered
- Scales up infinitely* as requests/messages come in
- Charged per 100ms of code running per backing
container
Interacting with Google Cloud
Web Console:
- See which cloud resources you have
- Explore marketplace
gcloud:
- CLI tool that can list, create, and destroy
cloud resources
- Can be used to automate
Demo
Demo - CORS
browser server
request
Access-Control-Allow-Origin: http://localhost:8080
1
2
Demo - CORS (OPTIONS preflight)
browser server
OPTIONS preflight request
Access-Control-Allow-Origin: http://localhost:8080
Access-Control-Allow-Methods: POST
Access-Control-Allow-Headers: Content-Type
1
2
POST request
Access-Control-Allow-Origin: http://localhost:8080
3
4
AWS Lambda Comparison
Similarities
- Scale down to zero containers when not in use
- Charge per 100ms
- Only allow one request per container at a time
- Be careful with SQL connections!
- Be careful of expensive long running functions
- Support HTTP APIs and reacting to cloud events
AWS Lambda Comparison
Similarities
- Support multiple runtimes
- GCP: Node.js, Python, Go
- AWS: Node.js, Python, Ruby, Java, Go, .NET Core (C#), custom runtimes
- Allow long running tasks
- AWS: 15 minutes (30 seconds for HTTP)
- GCP: 9 minutes (HTTP + events)
AWS Lambda Comparison
API Gateway - AWS
function
API
Gateway
(configurable)
browser
AWS Lambda Comparison
API Gateway - GCP
function
API
Gateway
(non-configurable)
browser
- Parse request based on
Content-Type
- Provide HTTPS endpoint
AWS Lambda Comparison
API Gateway - GCP
functionbrowser
dev perspective
Thank you
Finished code:
https://github.com/welkie/talk-serverless-toronto-gcp-intro
LinkedIn:
https://www.linkedin.com/in/matt-welke/
Blog:
https://mattwelke.com
Email:
mattwelke@gmail.com
Serverless on Firebase
Realtime database | Cloud Hosting | Functions
Realtime Database
➔ Nosql Cloud-hosted database.
➔ Clients share one database instance.
➔ Connected clients receive updates on data changes.
➔ Scale to 100,000 concurrent connections.
Web Hosting
➔ Easily deploy static/dynamic web apps to a global CDN
➔ SSL built into Firebase Hosting
➔ Can pair with cloud functions to build microservices.
➔ Provides full versioning and release management with
one-click rollbacks.
Deploy Single page apps
Support for production grade dynamic single page apps
Firebase Storage
➔ Object storage service built for Google Cloud Storage.
➔ Robust uploads & downloads, restart where they stopped, saving your
users time and bandwidth.
➔ Built on same infrastructure powering Spotify and Google Photos.
➔ Storage scales automatically, so no need to migrate to any other provider
Firebase Cloud Functions
➔ Run backend code in response to events triggered by Firebase features and HTTPS requests.
➔ Automatically scales up computing resources to match the usage patterns of your users.
➔ As load fluctuates(+/-), Google responds by rapidly scaling the number of virtual server instances
needed to run your function.
➔ Code is in Javascript & Typescript currently
Console Overview
Firebase console dashboard
Realtime database dashboard
Firebase functions dashboard
Function console logs
Pairing Cloud Functions with
Firebase features
Realtime Database triggers
➔ A change occurs in the database and an
event is triggered.
➔ Function is invoked when the event occurs
and performs its tasks.
➔ Function receives a data object that
contains a snapshot of the data stored in the
specified document.
Event handlers
onWrite() On data create, update, or delete.
onCreate() On new data is creation.
onUpdate() On data is updated.
onDelete() On data is deleted.
Listen for specific events on the Realtime Database:
Cloud Storage triggers
➔ Upload object to storage bucket.
➔ Manipulate the object & its metadata in the function.
➔ Write object location to Realtime database.
➔ Re-upload updated object back to storage.
Demo
Pricing
Free Pay as you go
Thank you
LinkedIn:
https://www.linkedin.com/in/kudzanai-murefu-7b128886/
My latest project:
https://strma.io

Google Cloud Functions & Firebase Crash Course

  • 1.
    Monday, Aug 12,2019 1. Intro & Activity Update 2. Community Open Mic 3. Matt Welke: “A look at Google Cloud Functions” 4. Kudz Murefu: “Firebase Crash Course” 5. Networking 1 ServerlessToronto.org Meetup Agenda
  • 2.
    Why we dowhat we do? 2 Serverless is New Agile Serverless Dev (gluing other people’s APIs and managed services) We're obsessed helping Startups (and creating meaningful MVPs & products) We build bridges between Serverless Community (“Dev leg”), and Front-end & Voice- First folks (“UX leg”), and empower UX developers Achieve agility NOT by “sprinting” faster (like in Scrum), but by working smarter (by using bigger building blocks and less Ops)
  • 3.
  • 4.
    Manning Publications 2019giveaways: 1. www.manning.com/books/serverless-applications-with-nodejs 2. www.manning.com/livevideo/production-ready-serverless 3. www.manning.com/livevideo/production-ready-serverless 4. www.manning.com/livevideo/serverless-applications-with-AWS 5. www.manning.com/livevideo/serverless-applications-with-AWS 6. www.manning.com/books/serverless-architectures-on-aws 7. www.manning.com/books/http2-in-action 8. www.manning.com/books/event-streams-in-action 9. www.manning.com/books/the-design-of-everyday-apis 10. www.manning.com/livevideo/graphql-in-motion 11. www.manning.com/books/voice-applications-for-alexa-and-google-assistant 12. www.manning.com/livevideo/machine-learning-for-mere-mortals 13. www.manning.com/books/classic-computer-science-problems-in-python 14. www.manning.com/books/getting-mean-with-mongo-express-angular-and-node 4Check out MEAP program from our Learning Sponsor!
  • 5.
    Venue Sponsor 5 As CertifiedB Corporation, Myplanet is purpose-driven and creates benefit for all stakeholders, not just shareholders!
  • 6.
    Catering Sponsor 6 Also anactive Serverless Community member – check out their “Data Pipelines using Serverless Architectures” talk!
  • 7.
  • 8.
  • 9.
    Community Open Mic 9 10seconds of freedom to pitch yourself, or your company
  • 10.
  • 11.
    Upcoming Serverless TorontoMeetups 11 1. September 12, 2019: Serverless Design Patterns and Best Practices – Mike Apted, Startup SA at AWS 2. October, 2019: Serverless CI/CD pipelines with AWS CodePipeline and CodeBuild, vs CircleCI, vs Travis, vs Seed – Frank Wang & Jay V 3. November or December: Serverless Heroes (authors of “Serverless Applications with Node.js”) Slobodan Stojanović & Aleksandar Simović will be here! 4. December or January, 2020: re:Invent recap – Jonathan Dion, Senior Technical Evangelist at AWS
  • 12.
    Feature Talks 1. GoogleCloud Functions 2. Firebase Crash Course 12
  • 13.
    Intro to GoogleCloud Functions Using gcloud to deploy a Node.js function with CORS support.
  • 14.
    Google Cloud Functions Triggers -HTTP trigger - Respond to HTTP request - PubSub trigger - React (asynchronously) to message - Storage - React to object added to bucket etc - Firebase event triggers Stateless - Runs on temporary container with no persistent disk. - Cannot run background tasks after response sent
  • 15.
    Google Cloud Functions Scaling -Stays at 0 running containers when not triggered - Scales up infinitely* as requests/messages come in - Charged per 100ms of code running per backing container
  • 16.
    Interacting with GoogleCloud Web Console: - See which cloud resources you have - Explore marketplace gcloud: - CLI tool that can list, create, and destroy cloud resources - Can be used to automate
  • 17.
  • 18.
    Demo - CORS browserserver request Access-Control-Allow-Origin: http://localhost:8080 1 2
  • 19.
    Demo - CORS(OPTIONS preflight) browser server OPTIONS preflight request Access-Control-Allow-Origin: http://localhost:8080 Access-Control-Allow-Methods: POST Access-Control-Allow-Headers: Content-Type 1 2 POST request Access-Control-Allow-Origin: http://localhost:8080 3 4
  • 20.
    AWS Lambda Comparison Similarities -Scale down to zero containers when not in use - Charge per 100ms - Only allow one request per container at a time - Be careful with SQL connections! - Be careful of expensive long running functions - Support HTTP APIs and reacting to cloud events
  • 21.
    AWS Lambda Comparison Similarities -Support multiple runtimes - GCP: Node.js, Python, Go - AWS: Node.js, Python, Ruby, Java, Go, .NET Core (C#), custom runtimes - Allow long running tasks - AWS: 15 minutes (30 seconds for HTTP) - GCP: 9 minutes (HTTP + events)
  • 22.
    AWS Lambda Comparison APIGateway - AWS function API Gateway (configurable) browser
  • 23.
    AWS Lambda Comparison APIGateway - GCP function API Gateway (non-configurable) browser - Parse request based on Content-Type - Provide HTTPS endpoint
  • 24.
    AWS Lambda Comparison APIGateway - GCP functionbrowser dev perspective
  • 25.
  • 26.
    Serverless on Firebase Realtimedatabase | Cloud Hosting | Functions
  • 27.
    Realtime Database ➔ NosqlCloud-hosted database. ➔ Clients share one database instance. ➔ Connected clients receive updates on data changes. ➔ Scale to 100,000 concurrent connections.
  • 28.
    Web Hosting ➔ Easilydeploy static/dynamic web apps to a global CDN ➔ SSL built into Firebase Hosting ➔ Can pair with cloud functions to build microservices. ➔ Provides full versioning and release management with one-click rollbacks.
  • 29.
    Deploy Single pageapps Support for production grade dynamic single page apps
  • 30.
    Firebase Storage ➔ Objectstorage service built for Google Cloud Storage. ➔ Robust uploads & downloads, restart where they stopped, saving your users time and bandwidth. ➔ Built on same infrastructure powering Spotify and Google Photos. ➔ Storage scales automatically, so no need to migrate to any other provider
  • 31.
    Firebase Cloud Functions ➔Run backend code in response to events triggered by Firebase features and HTTPS requests. ➔ Automatically scales up computing resources to match the usage patterns of your users. ➔ As load fluctuates(+/-), Google responds by rapidly scaling the number of virtual server instances needed to run your function. ➔ Code is in Javascript & Typescript currently
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
    Pairing Cloud Functionswith Firebase features
  • 38.
    Realtime Database triggers ➔A change occurs in the database and an event is triggered. ➔ Function is invoked when the event occurs and performs its tasks. ➔ Function receives a data object that contains a snapshot of the data stored in the specified document.
  • 39.
    Event handlers onWrite() Ondata create, update, or delete. onCreate() On new data is creation. onUpdate() On data is updated. onDelete() On data is deleted. Listen for specific events on the Realtime Database:
  • 40.
    Cloud Storage triggers ➔Upload object to storage bucket. ➔ Manipulate the object & its metadata in the function. ➔ Write object location to Realtime database. ➔ Re-upload updated object back to storage.
  • 41.
  • 42.
  • 43.