This is the code for the Pic-a-daily, an application to upload, analyse and share pictures using Google Cloud serverless solutions, namely Cloud Functions, App Engine, and Cloud Run.
There are 2 versions of the app:
- Choreographed version using events from Cloud Functions, Pub/Sub, Eventarc.
- Orchestrated version using Workflows.
There is a workshop you can follow to build the app:
- Lab 1 — Store and analyse pictures
- Lab 2 — Create thumbnails of big pictures
- Lab 3 — Run containers on a schedule
- Lab 4 — Create a web frontend
- Lab 5 — Image garbage collector
- Lab 6 — Orchestration with Workflows
There's a presentation that accompanies the workshop.
There are shell scripts and terraform configs to setup each lab.
The app uses the following solutions:
Compute:
- Cloud Functions — functions as a service
- App Engine — application as a service
- Cloud Run — container as a service
Data:
- Cloud Storage — for storing file blobs (images)
- Cloud Firestore — for structured data
Services:
- Eventarc - to receive events from various Google Cloud sources.
- Vision API — to analyze pictures
- Cloud Logging — to track interesting events
- Cloud Scheduler — to run workloads on a schedule
- Cloud Pub/Sub — for publish/subscribe-type messaging
- Cloud Shell — for developing online, in the cloud
- Workflows - to orchestrate services
This is not an official Google product.