Slide 1

Slide 1 text

Serverless Containers with Cloud Run Mete Atamel Developer Advocate at Google @meteatamel

Slide 2

Slide 2 text

Intro

Slide 3

Slide 3 text

Operational Model Programming Model No Infra Management Managed Security Pay only for usage Service-based Event-driven Stateless Serverless

Slide 4

Slide 4 text

Containers Any language Any library Any binary Ecosystem of base images .js .rb .go .py .sh … 0 1 0 1 0 0 1 1 1

Slide 5

Slide 5 text

Containers Flexibility Serverless Velocity

Slide 6

Slide 6 text

Container to production in seconds Natively Serverless One experience, where you want it Cloud Run Bringing serverless to containers

Slide 7

Slide 7 text

Container to production in seconds Just ‘deploy’ Any stateless container Any language, any library URL in seconds

Slide 8

Slide 8 text

Natively serverless Focus on writing code Scale up fast Scale down to zero Pay for exact usage No servers to manage

Slide 9

Slide 9 text

Cloud Run Fully managed, deploy your workloads and don’t see the cluster. Cloud Run on Anthos Deploy into Anthos, run serverless side-by-side with your existing workloads. Knative Everywhere Use the same APIs and tooling anywhere you run Kubernetes with Knative. One experience, where you want it

Slide 10

Slide 10 text

Basics

Slide 11

Slide 11 text

HTTPS Endpoint Public • Website • API endpoint Private • Internal services • Async tasks • Mobile backend • Webhook

Slide 12

Slide 12 text

Container contract Listen on 0.0.0.0 on port $PORT (default 8080) HTTP server must start < 4 min (timeout → 504) Request time < 15 min (default → 5 min) Stateless (in-memory file system, doesn’t persist) Computation only within request (No background activity)

Slide 13

Slide 13 text

Container resources 1 vCPU per container instance (non-configurable) 256 MiB of memory up to a max of 2 GiB (configurable) 80 concurrent requests per container (configurable 1-80) 1000 max containers by default (configurable 1-1000) Access to a Metadata Server Sandboxed by gVisor

Slide 14

Slide 14 text

Pay per use CPU / Memory / Requests 100ms

Slide 15

Slide 15 text

Concurrency: up to 80 concurrent requests concurrency = 1 concurrency = 80

Slide 16

Slide 16 text

Billable time Instance Billable Time Request 1 Start Request 1 End Request 2 Start Request 2 End Instance Time Billable Non-billable

Slide 17

Slide 17 text

Other use cases

Slide 18

Slide 18 text

Pub/Sub triggered internal services Cloud Run Cloud Pub/Sub Queue Queue Queue

Slide 19

Slide 19 text

Scheduled services Command Line Interface (CLI) User Interface (UI) Scheduler API Cloud Run Cloud Scheduler

Slide 20

Slide 20 text

Services part of async tasks Cloud Tasks user_registration user_levelcompleted user_inapppurchase user_statechange Daily activity metrics service User profile service Payment processing service Game state service

Slide 21

Slide 21 text

Confidential & Proprietary Cloud Storage to Cloud Run via Cloud PubSub Cloud Storage Bucket Cloud PubSub Topic Cloud Run

Slide 22

Slide 22 text

@meteatamel cloud.google.com/run github.com/ahmetb/cloud-run-faq github.com/steren/awesome-cloudrun knative.dev Thank you!