App in a Box - Scaler

App in a Box is a series of applications that are prebuilt and architected to demonstrate common application architectures and share projects that can repurposed to support your needs. Each one just requires one command to run and when the process is done, a fully function version of the app is available and running, ready to use or modify.

Scaler

Scaler image directory and thumbnail maker.

  • User Facing Application
    • Container hosted API and static site - Golang - Cloud Run
    • Storage - File Storage - Cloud Storage
  • Image Processor
    • Functions as a Service - Golang - Cloud Functions
  • Deployment
    • Deployment - Cloud Build

Get Started

Click on the link below to a copy of the source code in Cloud Shell. Once there, a single command will spin up a workng copy of the application in your project.

Open in Cloud Shell

Also feel free to review the source code directly in github.

View source code

Learn More

Use the links below to get more information on the piece we used in this Application. Choose how you learn best: video, product documentation, or interactive walkthrough.

User Facing Application

Cloud Run

Cloud Run allows you to run application in a container, but in a serverless way, no having to configure number of instances, processors, or memory. Upload a container, get a url. This app uses one Cloud Run service backed by a container: a golang based API which also serves up a relatively simple HTML/JS/CSS frontend.

Cloud Storage

Cloud Storage provides file storage and public serving of images over http(s).

Image Processor

Cloud Functions

Cloud Functions is a functions a service platform that allows you to listen for Cloud Storage file uploads and run code to create thumbnails of them.

Build Tools

Cloud Build

Cloud Build is the tool that packages up the container and deploys it to be available as a Cloud Run service.

Scripts

The install script uses the gcloud and gsutil CLI tools to take an empty project and install the application in it. The output should be a working application and a url to the Cloud Run service for the front end.

./cloudbuild.yaml